Keystore
Page number (default: 1)
1Number of items per page (default: 10)
10Sort field and order. Use - prefix for descending. Example: -createdAt, createdAt
-createdAtFields to select (comma separated). Use + prefix to include hidden fields. Example: name,status,+holders
Relations to populate (comma separated). Example: wallet,token
No content
GET /api/keystore HTTP/1.1
Host: api.bound.exchange
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
No content
No content
GET /api/keystore/passkey/{email}/credentialIds HTTP/1.1
Host: api.bound.exchange
Accept: */*
No content
Email of the account Device B wants to link to
Device B ephemeral ECDH public key (base64 or hex)
No content
POST /api/keystore/passkey/request-link HTTP/1.1
Host: api.bound.exchange
Content-Type: application/json
Accept: */*
Content-Length: 33
{
"email": "text",
"pubKeyB": "text"
}No content
OTP from the request-link session
AES-GCM encrypted mnemonic, key derived via ECDH (base64)
Device A ephemeral ECDH public key (base64 or hex)
No content
POST /api/keystore/passkey/approve-link HTTP/1.1
Host: api.bound.exchange
Content-Type: application/json
Accept: */*
Content-Length: 54
{
"otp": "text",
"encryptedForB": "text",
"pubKeyA": "text"
}No content
OTP from the request-link session
Email address — used to resolve the account for the relay key
No content
GET /api/keystore/passkey/relay?otp=text&email=text HTTP/1.1
Host: api.bound.exchange
Accept: */*
No content
OTP from the request-link session
Email address — must match the account that owns the OTP session
Challenge ID from GET /auth/webauthn/challenge
WebAuthn credential ID
DER/SPKI public key (base64)
CBOR attestation object (base64)
WebAuthn clientDataJSON (base64)
WebAuthn authenticatorData (base64)
Keystore blob encrypted with Device B derived key
Human-readable device label (e.g. "Work Laptop")
No content
POST /api/keystore/passkey/confirm-link HTTP/1.1
Host: api.bound.exchange
Content-Type: application/json
Accept: */*
Content-Length: 214
{
"otp": "text",
"email": "text",
"challengeId": "text",
"credentialId": "text",
"webauthnPublicKey": "text",
"attestation": "text",
"clientDataJson": "text",
"authenticatorData": "text",
"encryptedBlob": "text",
"deviceName": "text"
}No content
Email address of the account to send the password hint to
No content
POST /api/keystore/srp/password-hint HTTP/1.1
Host: api.bound.exchange
Content-Type: application/json
Accept: */*
Content-Length: 16
{
"email": "text"
}No content
Last updated