Scope
Wallet APIs manage user wallet registration, PIN validation, key export, and pricing helpers. Native custodial sends now sign on the server.Endpoint map (in OpenAPI)
- Wallet lifecycle:
/api/wallets(GET/POST/DELETE) - Security flows:
/api/wallets/set-pin,/api/wallets/verify-pin,/api/wallets/private-key - Prices:
/api/wallets/coin-prices,/api/crypto-prices
Custodial signing
Prefer these over returning raw keys to the client:POST /api/wallets/{address}/sign-transaction— PIN-gated server-side sign and sendPOST /api/wallets/{address}/export— PIN-gated seed/recovery-phrase reveal
POST /api/wallets/private-key is deprecated in OpenAPI. It still requires a verified 6-digit PIN and remains only until native finishes migrating off it. New client work must call sign-transaction.
Also in OpenAPI:
GET /api/wallets/link-challengePOST /api/wallets/link-externalPOST /api/wallets/reset-pinGET /api/wallets/{address}/attestation— D-Sports-signed attestation JWS. The path parameter is namedaddress, but the value is the wallet database id, not the on-chain address.POST /api/pregen-walletPOST /api/thirdweb-linkGET/POST /api/thirdweb-proxy
KYC (in OpenAPI)
Authenticated session helpers. These return status and short-lived Link tokens only. They do not expose vendor dashboard URLs or webhook secrets.POST /api/v1/kyc/link-tokenPOST /api/v1/kyc/session/complete— accepts the local IdentityVerification id or Plaid’sidentity_verification_idGET /api/v1/user/kyc-status— status only. Lives under/api/v1/user, not marketplace.
Integration notes
- Treat PIN, export, and sign operations as sensitive user actions.
- Pair price lookup APIs with freshness indicators on the client side.
- Native custodial create sends
{ pin, legalTermsVersion }only. - Import/link also requires
pin, plusaddressandencryptedPrivateKeyorprivateKey. DELETE /api/walletsneeds{ address, pin }for custodial wallets. External links need{ address }only. Missing or wrong PIN returns400 VALIDATION_ERROR.
