Skip to main content
A firm quote returns a binding rate with a hard expiry, an EIP-712 signature from the Ratio backend, and ready-to-submit calldata for on-chain execution. Unlike indicative quotes, firm quotes are persisted and signed.

Request

Request body is identical to POST /v1/quote, except:
Token approval required: The partner wallet must approve() the FxEngine contract (execution.contract) to spend the input token for at least amount.in.raw before requesting a firm quote. Quotes expire after quote_expiry_seconds (currently 60s). One-time per token, or use type(uint256).max.

Response

The response contains every field from the indicative quote, plus executable fields:

Firm-quote-only fields

On-chain quote fields

The quote object mirrors the on-chain FirmQuote struct:

Quote expiry

Firm quotes expire after the corridor’s configured quote_expiry_seconds (currently 60s). After expiry, the on-chain contract will reject the calldata. Request a new firm quote at current rates.

Errors