Skip to main content

POST /v2/keyshare/backup

Saves encrypted client keyshares for future recovery. Supports multiple keys (e.g., both ECDSA and EdDSA) in a single request.

Used in flow: After keygen, to enable recovery if keyshare is lost

Prerequisite: Face must be registered before saving backup

Authentication: JWT (Access Token)

Request

Authorization: Bearer <access_token>
Content-Type: application/json
{
"keyshares": [
{
"key_id": "wallet_identifier_ecdsa",
"encrypted_keyshare": "base64_encoded_encrypted_data_ecdsa"
},
{
"key_id": "wallet_identifier_eddsa",
"encrypted_keyshare": "base64_encoded_encrypted_data_eddsa"
}
]
}
FieldTypeRequiredDescription
keysharesarrayYesArray of keyshare backup objects
keyshares[].key_idstringYesMPC key/wallet identifier
keyshares[].encrypted_keysharestringYesBase64-encoded AES-encrypted keyshare

Response

200 OK
{
"success": true,
"message": "Backups saved successfully",
"results": [
{ "key_id": "wallet_identifier_ecdsa", "success": true },
{ "key_id": "wallet_identifier_eddsa", "success": true }
]
}
207 Multi-Status — partial success
{
"success": false,
"message": "Some backups failed",
"results": [
{ "key_id": "wallet_identifier_ecdsa", "success": true },
{
"key_id": "wallet_identifier_eddsa",
"success": false,
"error": { "code": 100601, "message": "Wallet already has a backup" }
}
]
}
403 — face not registered
{
"error": {
"code": 100703,
"message": "Face registration required before saving backup"
}
}