Skip to main content
After signing, send the quote over MakerStream as a MakerStreamStreamingRequest with message_type = "quote". Any field covered by the EIP-712 v2 signature must match exactly, or settlement will reject the quote even if the indexer accepts the payload.
Use snake_case for MakerStream quote payload fields. Do not confuse quote.chain_id with the EIP-712 domain chainId: quote.chain_id is the Cosmos chain ID (injective-888 testnet, injective-1 mainnet), while quote.evm_chain_id and the EIP-712 domain chainId use the numeric EVM chain ID (1439 testnet, 1776 mainnet).

Quote payload


Field reference

The v2 signature binds chain and contract through the EIP-712 domain (evm_chain_id and verifying_contract_bech32). chain_id and contract_address are still sent for indexer compatibility. Raw MakerStream JSON examples use chain_id and evm_chain_id; generated clients may expose language-specific property names, but the wire/proto field names are snake_case.

Expiry

Live quotes should be short-lived, but they must give the taker enough time to collect, select, and settle. Submit live quotes with at least 1500 ms of validity. A common live expiry is:
The contract checks expiry at settlement block time. Taker quote collection and transaction inclusion both consume the expiry window, so do not set live expiries too tight and do not do slow work after receiving an RFQ. A longer expiry increases the chance that your quote can be matched and settled, but it also increases stale-price exposure. TP/SL-triggered requests still use the normal live RFQ quote path from the maker’s perspective.

Quote ACK

After send_quote, the indexer may return:
or an error:
quote_ack.status="success" means the indexer accepted and routed the quote. It does not mean the taker accepted it and it does not mean settlement succeeded.

Fill and settlement state

Subscribe to quote and settlement updates when your client supports them. Track these separately: If no quote or settlement update arrives before your quote expiry, treat the quote as not accepted. After a settlement attempt, reconcile:
  • rfq_id
  • quoted price
  • executed quantity
  • executed margin
  • taker and maker addresses
  • maker subaccount nonce
  • transaction hash
  • any skipped-quote reason

Common mistakes

Next: Runbook.
Last modified on May 28, 2026