Skip to main content
The relay serves every chain from one base URL. There are no API keys. Abuse controls are behavioural: per-IP rate limits, a cap on in-flight RFQs per taker, and a signed proof that the taker controls the wallet a quote names.

Conventions

  • Amounts are base-unit decimal strings. "10000000" is 10 USDC or 10 cNGN, since both have 6 decimals. Never floats.
  • Addresses. 0x addresses on EVM chains, base58 public keys and mints on Solana. Transaction hashes are 0x on EVM and base58 signatures on Solana.
  • Chains. Every request that starts something takes a chainId. Without one, the relay uses its primary EVM chain (Base Sepolia, 84532). Solana devnet is 103.
  • Ids. Quotes, RFQs, executions and limit orders are UUIDs.
  • Times. ISO 8601 strings for timestamps; unix seconds for signed deadlines; unix milliseconds for the oracle band’s at.
  • Errors. A JSON body { "error": "<reason>", ... } with a 4xx or 5xx status. See Errors.

Rate limits

Past a budget the relay answers 429 rate_limited, or 429 too_many_outstanding_rfqs for the RFQ cap.

The swap flow

1

Read the configuration

GET /v1/config lists every chain with its contracts, tokens and minimums, and whether taker proofs are required.
2

Ask for a quote

POST /v1/quotes with the pair, the size and the taker. The response carries the terms and the EIP-712 typed data to sign.
3

Sign

The taker signs typedData with eth_signTypedData_v4. On Solana the client rebuilds and checks the transaction, then signs it.
4

Submit

POST /v1/executions with the quote id and the signature. The keeper submits and pays gas.
5

Follow it

GET /v1/quotes/:id until status is settled and final is true.
The quickstart does this with curl.

Reading the network

GET /v1/health, /v1/corridors, /v1/rates, /v1/stats, /v1/feed, /v1/nodes and /v1/resolvers are public and unauthenticated. They are what the web app’s explorer reads.

Node WebSocket

Resolver nodes speak a separate WebSocket protocol on /ws/node. It is documented under Node WebSocket; integrators do not need it.