- TakerStream for takers to request quotes and receive maker responses.
- MakerStream for whitelisted makers to receive RFQs and submit signed quotes.
Market price updates
For market-data consumers,indexPrice is streamed with the same cadence and freshness expectations as markPrice. Use indexPrice as the primary source for displayed Index Price and unrealized P&L. Continue to use markPrice or onchain mark_price for contract-facing quote validation, trigger evaluation, liquidation risk, and funding logic.
Endpoints
The public service alias is
injective_rfq_rpc.InjectiveRfqRPC. Do not replace it with an internal proto package name. The injective-rfq-toolkit clients store the base URL and append the stream path internally.
TakerStream
TakerStream is used by traders or applications acting on their behalf. Connection path:request_address when constructing TakerStreamClient.
Request
client_id is your correlation key. The indexer assigns the settlement rfq_id and returns it in the request ACK. Use that ACK-returned rfq_id for quote collection and settlement.
Quote delivery
Quotes delivered to TakerStream are signed maker quotes:AcceptQuote. TrueCurrent currently uses 500 ms; the value can vary by frontend and protocol configuration, and API takers can tune their own timeout. Waiting near the full quote expiry leaves little time for transaction inclusion.
MakerStream
MakerStream is used by whitelisted makers. A maker must be registered, funded, and authorized before quotes can settle. Connection path:Authentication challenge
After connection, the indexer sends a one-shotMakerChallenge. The maker signs a StreamAuthChallenge EIP-712 v2 message and replies with MakerAuth.
Until auth succeeds, the stream may remain open but no RFQ request messages are forwarded.
Using the reference client:
Incoming messages
MakerStream can broadcast requests unrelated to the taker you are testing. Always filter by taker/request address plus
rfq_id, then market and side, before signing. rfq_id alone is timestamp-like and can collide across takers.
Submitting quotes
sign_mode="v2" and evm_chain_id are mandatory for the current signing path. chain_id is the Cosmos chain ID; keep it as injective-888 on testnet. Raw MakerStream JSON uses snake_case field names (evm_chain_id, chain_id); camelCase names are only for EIP-712 typed data or generated client properties.
quote_ack.status="success" means the indexer accepted and routed the quote. It does not mean the taker accepted or filled it. Use settlement_update or onchain transaction state for fill confirmation.

