Skip to main content
POST
The relay broadcasts the request to every eligible node, collects offers for the RFQ window, validates and ranks them, simulates the best, and returns it as a firm quote. A quote is open for 20 seconds.
number
The chain. Defaults to the primary EVM chain. Solana chains take the Solana shape.
address
required
The token the taker sells.
address
required
The token the taker buys.
string
required
Base units of sellToken.
address
required
The wallet that will sign.
address
Where proceeds go. Defaults to taker. Must equal taker on Solana.
object
{ issuedAt, signature }. Required when requireTakerProof is true. See Taker proof.
address[]
Up to 10. See Steering.
address[]
Up to 10. Not with preferredLiquidityWallets.

Response when quoted

'quoted'
string
Use it to execute and to follow the lifecycle.
string
string
When the quote closes.
number
address
The contract the keeper calls.
address
address
address
string
object
{ address, name } of the winner.
string
What the resolver pays out, before fees.
object
{ token, amount, bps, usd }: the protocol fee line.
object
{ token, amount, usd }: what the taker repays the keeper.
string
Sell token the taker spends, including the fee lines when they are charged in it.
string
Buy token the taker keeps, net of the fee lines when they are charged in it.
object
{ token, amount, nonce, deadline }: the Permit2 transfer the taker authorizes.
object
{ offersHash, recipient, feeToken, minOut, maxGasFee }: the TakerAuth witness.
object[]
The winning offer(s) as the executor receives them.
object
EIP-712 typed data for eth_signTypedData_v4: Permit2’s PermitWitnessTransferFrom with the TakerAuth witness.
object | null
{ base, quote, mid, low, high, rate, deviationBps, outside, sources, at }: the oracle band at quote time and where this price sits in it.
number
object[]
{ resolver: { address, name }, received } for each other valid offer, best first.
object[]
{ resolver, name, reason } per node that declined.
object[]
{ resolver, name, reason } per offer that failed validation.

Response when not quoted

'no_quote'
string
string
below_minimum, insufficient_balance, no_resolvers, steering_excluded_all, no_replies, all_declined, no_valid_offers or paused.
number
Nodes the RFQ went to.
object[]
object[]
string
On below_minimum.
string
On insufficient_balance: what the taker holds.
string
On insufficient_balance: the largest amount the taker can swap.
number

Errors

400 invalid_request, wrong_chain, same_token, unsupported_token, zero_amount, invalid_steering; 401 taker proof refusals; 429 rate_limited, too_many_outstanding_rfqs. See Errors.