Add account auth key
POST/account/auth-keys
Registers another Ed25519 public key for the authenticated account. Use it to rotate keys: register the new key, switch your integration to it, then disable the old key with DELETE /v2/account/auth-keys/{id}.
To prove you own the new key, sign your account ID string with the new key's secret key and send the hex signature as signature.
An account can have up to 5 active keys. This endpoint is rate limited to 5 requests per minute.
Requires authentication: sign the request (see Authentication) or send the legacy x-sideshift-secret header.
Request
Header Parameters
Your Ed25519 public key, hex encoded. Required when signing the request. See Authentication.
Current Unix time in milliseconds, the same value used in the signed message. Must be within 60 seconds of server time. Required when signing the request.
Ed25519 signature of timestamp + METHOD + path + body, hex encoded. Required when signing the request. See Authentication.
Legacy account secret. Not needed when the request is signed with the x-sideshift-key, x-sideshift-timestamp and x-sideshift-signature headers. See Authentication.
- application/json
Body
required
The new Ed25519 public key, 32 bytes hex encoded.
Ed25519 signature of your account ID string, made with the new key's secret key. 64 bytes hex encoded.
Responses
- 201
- 400
- 403
- 429
- application/json
- Schema
- Example
Schema
The auth key ID. Used to disable the key.
The public key, hex encoded.
The key type. Currently always ed25519.
When the key was disabled. Absent for active keys.
{
"id": "3f9c1d2e-8b7a-4c6d-9e5f-1a2b3c4d5e6f",
"pubKey": "033658ded9f327661cb5069122c9e0be02339d6dbe824a9d335e465030ba64b2",
"type": "ed25519",
"createdAt": "2026-10-01T09:14:11.874Z"
}
- application/json
- Schema
- Invalid signature
- Key already registered
Schema
error object
{
"error": {
"message": "Invalid signature",
"code": "BAD_USER_INPUT"
}
}
{
"error": {
"message": "Public key already registered",
"code": "BAD_USER_INPUT"
}
}
- application/json
- Schema
- Example
Schema
error object
{
"error": {
"message": "Authentication required: sign the request or send the x-sideshift-secret header",
"code": "FORBIDDEN"
}
}
- application/json
- Schema
- Example
Schema
error object
{
"error": {
"message": "Rate limit exceeded.",
"code": "APPLICATION_ERROR"
}
}