curl --request DELETE \
--url https://api.platform.dakota.xyz/signers/{public_key} \
--header 'x-api-key: <api-key>'const options = {method: 'DELETE', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.platform.dakota.xyz/signers/{public_key}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.platform.dakota.xyz/signers/{public_key}"
headers = {"x-api-key": "<api-key>"}
response = requests.delete(url, headers=headers)
print(response.text)package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.platform.dakota.xyz/signers/{public_key}"
req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"type": "https://docs.dakota.xyz/api-reference/errors#invalid-request",
"title": "Bad request - invalid public key",
"status": 400,
"detail": "Bad request - invalid public key",
"instance": "https://api.platform.dakota.xyz/signers/example-id",
"request_id": "req_01hzy6y7v8w9x0y1z2a3b4c5d6"
}{
"type": "https://docs.dakota.xyz/api-reference/errors#authentication-error",
"title": "Unauthorized",
"status": 401,
"detail": "Unauthorized",
"instance": "https://api.platform.dakota.xyz/signers/example-id",
"request_id": "req_01hzy6y7v8w9x0y1z2a3b4c5d6"
}{
"type": "https://docs.dakota.xyz/api-reference/errors#forbidden",
"title": "Forbidden - lacks DeleteSigner permission",
"status": 403,
"detail": "Forbidden - lacks DeleteSigner permission",
"instance": "https://api.platform.dakota.xyz/signers/example-id",
"request_id": "req_01hzy6y7v8w9x0y1z2a3b4c5d6"
}{
"type": "https://docs.dakota.xyz/api-reference/errors#not-found",
"title": "Signer not found",
"status": 404,
"detail": "Signer not found",
"instance": "https://api.platform.dakota.xyz/signers/example-id",
"request_id": "req_01hzy6y7v8w9x0y1z2a3b4c5d6"
}{
"type": "https://docs.dakota.xyz/api-reference/errors#conflict",
"title": "Conflict - signer is in an active signer group",
"status": 409,
"detail": "Conflict - signer is in an active signer group",
"instance": "https://api.platform.dakota.xyz/signers/example-id",
"request_id": "req_01hzy6y7v8w9x0y1z2a3b4c5d6"
}{
"type": "https://docs.dakota.xyz/api-reference/errors#internal-error",
"title": "Internal server error",
"status": 500,
"detail": "Internal server error",
"instance": "https://api.platform.dakota.xyz/signers/example-id",
"request_id": "req_01hzy6y7v8w9x0y1z2a3b4c5d6"
}Delete a signer by public key
Soft-deletes your signer with the given public key. Only the signer’s owner can delete it, so a public key belonging to another organization is reported as 404 exactly like one that does not exist — including when that key is a platform-managed settlement signer.
Ownership is resolved first, so the responses below describe only keys you hold. Returns 404 when you have no signer for the given public key, 403 when the key is one of your platform-managed settlement signers, which is retired only through platform-internal offboarding, and 409 when the signer is still a member of an active signer group.
A signer is matched on the exact public key string you registered. Another encoding of the same key names no signer you hold and is reported as 404.
curl --request DELETE \
--url https://api.platform.dakota.xyz/signers/{public_key} \
--header 'x-api-key: <api-key>'const options = {method: 'DELETE', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.platform.dakota.xyz/signers/{public_key}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.platform.dakota.xyz/signers/{public_key}"
headers = {"x-api-key": "<api-key>"}
response = requests.delete(url, headers=headers)
print(response.text)package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.platform.dakota.xyz/signers/{public_key}"
req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"type": "https://docs.dakota.xyz/api-reference/errors#invalid-request",
"title": "Bad request - invalid public key",
"status": 400,
"detail": "Bad request - invalid public key",
"instance": "https://api.platform.dakota.xyz/signers/example-id",
"request_id": "req_01hzy6y7v8w9x0y1z2a3b4c5d6"
}{
"type": "https://docs.dakota.xyz/api-reference/errors#authentication-error",
"title": "Unauthorized",
"status": 401,
"detail": "Unauthorized",
"instance": "https://api.platform.dakota.xyz/signers/example-id",
"request_id": "req_01hzy6y7v8w9x0y1z2a3b4c5d6"
}{
"type": "https://docs.dakota.xyz/api-reference/errors#forbidden",
"title": "Forbidden - lacks DeleteSigner permission",
"status": 403,
"detail": "Forbidden - lacks DeleteSigner permission",
"instance": "https://api.platform.dakota.xyz/signers/example-id",
"request_id": "req_01hzy6y7v8w9x0y1z2a3b4c5d6"
}{
"type": "https://docs.dakota.xyz/api-reference/errors#not-found",
"title": "Signer not found",
"status": 404,
"detail": "Signer not found",
"instance": "https://api.platform.dakota.xyz/signers/example-id",
"request_id": "req_01hzy6y7v8w9x0y1z2a3b4c5d6"
}{
"type": "https://docs.dakota.xyz/api-reference/errors#conflict",
"title": "Conflict - signer is in an active signer group",
"status": 409,
"detail": "Conflict - signer is in an active signer group",
"instance": "https://api.platform.dakota.xyz/signers/example-id",
"request_id": "req_01hzy6y7v8w9x0y1z2a3b4c5d6"
}{
"type": "https://docs.dakota.xyz/api-reference/errors#internal-error",
"title": "Internal server error",
"status": 500,
"detail": "Internal server error",
"instance": "https://api.platform.dakota.xyz/signers/example-id",
"request_id": "req_01hzy6y7v8w9x0y1z2a3b4c5d6"
}Was this page helpful?

