Authentication
Every request must include your resolver API key:Error envelope
Protocol errors use this envelope:Discovery
GET /v1/networks
Lists supported networks. Response items include:
GET /v1/tokens
Lists supported tokens. Query parameters:
Response:
GET /v1/resolvers/webhooks/public-key
Returns the Ed25519 public key used to verify webhook signatures.
Intents and swaps
GET /v1/intents/{id}
Retrieves an intent. Statuses:
Notable fields (non-exhaustive): chain and token identifiers, source and destination addresses,
resolver_id, deadline, nonce, amount lots and decimals, quote_id, slippage_tolerance_bps, intermediate-token bounds, affiliate_id, swap_type (standard or optimized), resolver_deposit_address, deposit_type (escrowed or direct), and lifecycle timestamps.
GET /v1/swaps/{intent_id}/swap
Retrieves the on-chain execution record for an intent. Notable fields: status, proxy_address, deposit/fulfill/withdraw/swap transaction hashes, intermediate-token data, and lifecycle timestamps.
Reporting transactions
Resolvers must report each on-chain step. For standard swaps, report in order: Deposit → Fulfill → Withdraw.POST /v1/intents/{id}/deposit
POST /v1/intents/{id}/fulfill
signature is optional for EVM, Solana, and Tron. It is required for Bitcoin.
POST /v1/intents/batch/withdraw
Batched withdrawal reporting.
Optimized swaps report only the
Swap step, but the source does not document the optimized swap reporting endpoint. See Validation Gaps.Secret retrieval
GET /v1/intents/{id}/reveal-secret
POST /v1/intents/batch/reveal-secrets
Request:
Health
GET /v1/system/live
200— healthy500— unhealthy