Recoveries
Start recovery
POST
Requires scope recoveries:create.
ApiKeyheader
AuthorizationBearer <sk_test_ or sk_live_ key>Your sk_live_ / sk_test_ API key
Idempotency-Key?stringIdempotency key for safe start retries (keyed with walletId)
application/json- body
walletId*stringFormat
uuidaddress*stringMatch
^0x[0-9a-fA-F]{40}$chains*array<>Items
1 <= itemsnewPasskey*verification?A business attestation over the recovery.
recoveryToken?stringA single-use token from POST /v1/recoveries/challenge/verify, proving the customer holds the recovery code.
Length
1 <= lengthrecoveryContact?stringThe customer's recovery email address, recorded for future recoveries.
Format
emailLength
length <= 320Response Body
201application/json
Recovery started
TypeScript Definitions
Use the response body type in TypeScript.
data*
status*number
success*boolean
401application/json
The Authorization header is missing, malformed, or the API key is unknown or revoked
TypeScript Definitions
Use the response body type in TypeScript.
data*
status*number
success*boolean
429application/json
The API key exceeded its request budget for the window
TypeScript Definitions
Use the response body type in TypeScript.
data*
status*number
success*boolean
Language
curl -X POST 'https://api.pilot.shiga.io/v1/recoveries' \ -H 'Authorization: Bearer sk_test_...' \ -H 'Content-Type: application/json' \ -d '{ "walletId": "0ecad4a2-3549-43fb-807e-9ff033247480", "address": "string", "chains": [ "ethereum" ], "newPasskey": { "x": "string", "y": "string", "credentialId": "string", "credentialPublicKey": "string", "rpId": "string", "origins": [ "string" ] }}'Example Response
{ "data": { "walletId": "0ecad4a2-3549-43fb-807e-9ff033247480", "address": "string", "chains": [ "ethereum" ], "newPasskey": { "x": "string", "y": "string", "credentialId": "string", "passkeyBlob": "string", "credentialPublicKey": "string", "rpId": "string", "origins": [ "string" ], "counter": 0, "transports": [ "string" ] }, "verification": { "payload": { "businessId": "string", "customerId": "string", "walletId": "string", "newSignerAddress": "string", "chains": [ "string" ], "intent": "recovery", "nonce": "string", "issuedAt": 0, "expiresAt": 0 }, "signatureB64": "string" }, "recoveryToken": "string", "recoveryContact": "user@example.com" }, "status": 201, "success": true}