Skip to content

HTTP API: Quotes

All quote endpoints require authentication.

POST /v1/quote/indicative

Get an indicative quote for UI display. The response does not include a signature.

Request body:

Field Type Required Notes
src_chain_id uint64 yes Source chain ID
dst_chain_id uint64 yes Destination chain ID
token_in string yes ERC20 address or zero address for native
token_out string yes ERC20 address or zero address for native
amount_in string yes wei integer string

Response data:

Field Type Notes
src_chain_id uint64 Echo
token_in string Echo
token_out string Echo
amount_in string Echo
amount_out string Output amount in wei
fee_rate uint64 bps (1 bps = 1/10000)
fee_amount string Fee amount in wei

Example:

curl -X POST "{rfq-api-base-url}/v1/quote/indicative" \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer YOUR_JWT_TOKEN' \
  -d '{
    "src_chain_id": 97,
    "dst_chain_id": 97,
    "token_in": "0x0000000000000000000000000000000000000000",
    "token_out": "0x337610d27c682E347C9cD60BD4b3b107C9d34dDd",
    "amount_in": "1000000000000000000"
  }'

POST /v1/quote/firm

Get a firm quote. The response contains router_address and calldata that can be submitted on-chain.

Request body:

Field Type Required Notes
src_chain_id uint64 yes Source chain ID
dst_chain_id uint64 yes Destination chain ID
from_address string yes Sender address (signature context)
to_address string yes Recipient address (signature context)
token_in string yes ERC20 address or zero address for native
token_out string yes ERC20 address or zero address for native
amount_in string yes wei integer string
indicative_amount_out string no Optional, used for slippage check
slippage double yes Percent in [0,100], e.g. 0.5 means 0.5%
expiry_time_sec uint64 yes Quote TTL in seconds; recommended 60

Response data:

Field Type Notes
quote_id string Quote identifier
src_chain_id uint64 Source chain ID
calldata string Router calldata (0x...)
router_address string Router contract address
from_address string Echo
to_address string Echo
token_in string Echo
token_out string Echo
amount_in string Total input (on-chain fee may apply)
amount_out string Expected output in wei
fee_rate uint64 bps
fee_amount string wei
deadline uint64 Unix timestamp (seconds)

Example:

curl -X POST "{rfq-api-base-url}/v1/quote/firm" \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer YOUR_JWT_TOKEN' \
  -d '{
    "src_chain_id": 97,
    "dst_chain_id": 97,
    "from_address": "0x742d35Cc6634C0532925a3b8D1e4D1F4D6ee2D7e",
    "to_address": "0x742d35Cc6634C0532925a3b8D1e4D1F4D6ee2D7e",
    "token_in": "0x337610d27c682E347C9cD60BD4b3b107C9d34dDd",
    "token_out": "0x0000000000000000000000000000000000000000",
    "amount_in": "1000000000000000000",
    "slippage": 0.5,
    "expiry_time_sec": 60
  }'

Notes

  • Use {rfq-api-base-url} from the deployer. If you see inconsistent hosts in examples (e.g. an unexpected suffix), treat them as placeholders.