Live quote request streaming uses SSE, not WebSocket. Market makers receive quote requests via the Quote Service SSE stream. Users receive live pricing via the user SSE stream. The WebSocket is used for post-trade events like
quote:accepted and position:settled.Connecting
Authentication
Send an auth message with your API key immediately after connecting:Subscribing to Channels
After authenticating, subscribe to channels to receive events:| Channel | Description |
|---|---|
mm:quotes:{mm_id} | Your quote lifecycle updates (accepted, accepted details, confirmed, expired, withdrawn) |
rfq:{rfq_id} | Position and status updates for a specific trade |
Events
Quote Events
| Event | Description | Data |
|---|---|---|
quote:accepted | A user committed your quote. You must confirm it before the deadline. | { quote_id, rfq_id, confirmation_deadline } |
mm_quote:accepted | MM-only accepted quote details for the selected market maker. Use this to reserve local exposure or record analytics immediately. Its quote_id is valid for confirmation; do not depend on ordering versus quote:accepted. | { rfq_id, quote_id, user_id, quote, exposure_legs, confirmation_deadline, accepted_at } |
quote:confirmed | You confirmed the quote. Vault settlement begins. | { quote_id, rfq_id, execution_id } |
quote:executed | On-chain vault position created. | { quote_id, rfq_id } |
quote:expired | Quote expired before confirmation. | { quote_id, rfq_id } |
quote:rejected | Another quote was accepted instead. | { quote_id, rfq_id, reason } |
quote:withdrawn | You withdrew the quote. | { quote_id, rfq_id } |
mm_quote:accepted payload:
Position Events
| Event | Description | Data |
|---|---|---|
position:created | Vault position created, collateral locked. | { rfq_id, position_pda, timestamp } |
position:settled | Position settled with outcome. | { rfq_id, position_pda, outcome, tx_signature, timestamp } |
position:cancelled | Position cancelled, collateral unlocked. | { rfq_id, position_pda, reason, timestamp } |
position:error | Position execution error. | { rfq_id, error, timestamp } |
