Skip to main content
Debug RFQ issues in this order:
  1. Config: endpoint, contract, Cosmos chain ID, EIP-712 chain ID.
  2. Maker readiness: whitelist, subaccount nonce, margin, authz.
  3. Stream health: service path, ping/pong, MakerStream auth challenge.
  4. Signing: exact field order and exact decimal strings.
  5. Settlement: expiry, worst_price, margin, authz, market rules.
The Runbook walks through the same order with commands.

Connectivity and stream auth


Whitelist, authz, and balances


Signing and quote validation


Settlement behavior

No. Makers sign quotes offchain and send them to the indexer. The taker submits AcceptQuote; the contract verifies the maker signature and settles atomically if the quote is still valid.
No. quote_ack.status="success" only means the indexer accepted and routed the quote. A fill is confirmed by onchain settlement or by a maker-side settlement_update.
Yes. The taker can submit multiple quotes, and the contract may skip invalid quotes while filling valid ones. Your quote also controls maker_quantity, maker_margin, and optional min_fill_quantity.
No quote means no trade for you and no onchain penalty. Response-rate metrics may still affect maker standing.
Settlement creates or updates derivative positions in the Injective exchange module for both parties’ subaccounts. Margin, PnL, liquidation, and funding then follow exchange-module rules.
Send margin: "0". No separate reduce-only flag is required; zero margin means the fill can only close or shrink existing exposure.

Signed-intent and TP/SL failures


Fast triage checklist

  • Check Testnet configuration values first.
  • Confirm maker whitelist with a paginated helper, not only the first list_makers page.
  • Confirm authz grants for both maker and taker.
  • Confirm maker subaccount nonce and USDC margin.
  • Confirm MakerStream auth challenge is answered before waiting for RFQs.
  • Confirm quotes use sign_mode="v2" and evm_chain_id=1439 on testnet.
  • Confirm quote.chain_id remains injective-888, not 1439, and raw JSON uses snake_case field names.
  • Confirm the taker collects quotes for the ACK-returned rfq_id.
  • Confirm quote expiry is still in the future at settlement time.
  • Confirm worst_price, tick size, and signed decimal strings all match the selected market.
Last modified on June 2, 2026