Appearance
Quotes & pools
List corridors
GET /v1/pools?chainId=8453Returns the corridors available to your key. chainId is optional — omit it to list every chain your key's environment covers. Requires quotes:read.
json
{
"data": [
{
"chainId": 8453,
"poolAddress": "0x…",
"collateralAsset": "0x…",
"debtAsset": "0x…",
"displayName": "cNGN → USDT",
"buyRateRay": "1550000000000000000000000000",
"sellRateRay": "1548000000000000000000000000",
"ratesFetchedAt": "2026-07-07T12:00:00.000Z",
"minPositionSize": "1000000",
"createdAt": "2026-01-01T00:00:00.000Z"
}
]
}collateralAsset is the local-currency token you sell; debtAsset is what you receive (usually USDT). Rates are RAY-scaled and may be null when the oracle is stale.
See available liquidity and offers
GET /v1/order-book?chainId=8453&sellToken=0xCNGN&buyToken=0xUSDTReturns the live, funded offers for one swap direction, best rate first. It also returns aggregate capacity, so you can show available liquidity before asking the user for a swap amount. Requires quotes:read.
json
{
"data": {
"chainId": 8453,
"sellToken": "0x…",
"buyToken": "0x…",
"hasLiquidity": true,
"liveOffers": 2,
"executableOffers": 2,
"availableSellAmount": "8004000000",
"availableBuyAmount": "7870000000",
"bestRateRay": "990000000000000000000000000",
"asOf": "2026-07-21T10:00:00.000Z",
"offers": [
{
"id": "offer_…",
"maker": "0x…",
"sellAmount": "3001500000",
"feeAmount": "1500000",
"buyAmount": "2970000000",
"rateRay": "990000000000000000000000000",
"expiresAt": "2026-07-21T11:00:00.000Z"
}
]
}
}availableSellAmount is the fee-inclusive amount of sellToken needed to clear the maximum depth one swap can execute. Each offer’s sellAmount includes its feeAmount, so it can be passed directly to /quote or /swaps. availableBuyAmount is the corresponding buyToken proceeds if every listed offer fills. liveOffers counts the full funded book; executableOffers and the offers array are capped to the 100 offers a single swap can execute. All amounts are atomic-unit strings. Offers are checked for expiry, spent nonces, and maker funding before they are returned, but on-chain liquidity can still change between this read and execution.
Get a quote
GET /v1/quote?chainId=8453&sellToken=0xCNGN&buyToken=0xUSDT&sellAmount=1000000000A live, executable price for selling sellAmount of sellToken (collateral) into buyToken (debt) against the resting order book. Requires quotes:read.
| Query param | Required | Notes |
|---|---|---|
chainId | yes | Must match your key's environment |
sellToken | yes | Collateral asset address |
buyToken | yes | Debt asset address |
sellAmount | yes | Atomic units, base-10 string |
minRate | no | Minimum debt-per-collateral rate (RAY). Defaults to 0 (accept any). |
json
{
"data": {
"chainId": 8453,
"sellToken": "0x…",
"buyToken": "0x…",
"sellAmount": "1000000000",
"fillableAmount": "1000000000",
"proceeds": "612000000",
"effectiveRateRay": "612000000000000000000000000",
"remainingAmount": "0",
"fullyFilled": true,
"ordersMatched": 2,
"liveOrders": 7,
"hasLiquidity": true
}
}fillableAmount— how much of your sell clears at or aboveminRate.proceeds— the debt asset you'd receive for that fillable part.hasLiquidity: false(liveOrdersis 0) means there's no filler market in this direction right now. That's not an error — back off and retry.- Partial fills are normal: if
fillableAmount < sellAmount, only part clears at your price. LowerminRateor sell less.
A quote is a read. To actually execute, call POST /v1/swaps, which returns the transactions to sign.