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.
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:Quote ACK
Aftersend_quote, the indexer may return:
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.

