API

REST and JSON, defined in openapi.yaml. Testnet only.

The contract is openapi.yaml. Open the full API reference →

Endpoints

EndpointAuthWhat it does
GET /v1/info—Network, pool, asset and enabled modes
POST /v1/onboardingSEP-53 signatureRegisters keys, runs the simulated KYC, requests the allow-list
GET /v1/users/{account}—KYC and allow-list status
POST /v1/intentsSEP-53 signatureCreates a ramp intent and returns the anchor's interactive URL (only here)
GET /v1/intents/{id}—Status and on-chain hashes (never the interactive URL)
POST /v1/asp/blockADMIN_TOKENBlocks a key (block-list)
POST /v1/asp/unblockADMIN_TOKENUnblocks a key
GET /v1/audit/transactionsAUDITOR_TOKENPool activity decrypted with the view key
GET /v1/audit/public/{tx_hash}—What anyone sees about a transaction

Errors

Every error has a stable code:

{ "error": "user_not_allowed", "message": "…" }
StatusCommon codes
400invalid_request, invalid_signature, invalid_key, invalid_limit
401unauthorized
404not_found
409account_already_onboarded, pool_key_already_registered, user_not_allowed, ramp_mode_disabled
502 / 503anchor_unavailable, service_unavailable

Intent statuses

StatusMeaning
awaiting_anchorThe user has to pay at the anchor
funds_receivedThe anchor's payment is confirmed and in Shield's custody
shieldingThe pool deposit is being sent
transferringThe private transfer is being sent
completedThe private balance is the user's
rejected, expired, errorFinal; see message