IBExWalletAPI
AuthenticationSign in

Recover encrypted wallet backup (wallet=email)

wallet=email recovery bootstrap.

1) GET /sign-in?wallet=email&externalUserId=... → sends one-shot email OTP (30s)

2) POST /email/recover with {externalUserId, emailOtp} → returns encrypted backup (C+salt) + challenge

3) Client decrypts locally with user secret, derives publicKey, signs canonical challenge, then POST /sign-in (wallet=email).

POST
/v1.2/auth/email/recover

Request Body

application/jsonRequired
externalUserIdRequiredstring
emailOtpRequiredstring
[key: string]any
curl -X POST "https://passkeys-testnet.ibex.fi/v1.2/auth/email/recover" \
  -H "Content-Type: application/json" \
  -d '{
    "externalUserId": "string",
    "emailOtp": "string"
  }'

Default Response

{
  "externalUserId": "string",
  "wallet": "string",
  "encryptedPrivateKey": "string",
  "backupSalt": "string",
  "backupKdf": {},
  "challenge": "string",
  "challengeExpiresAt": "string",
  "serverSignature": "string",
  "serverKeyId": "string"
}