Combos Request-for-Quote (RFQ)
Status: Beta. The discovery and private-delivery streams and the maker quote methods are live. Quoting requires an eligible account with the capabilities described in Quote Methods.
What combo RFQ is
Combo RFQ is a private, sealed-bid auction for multi-leg combo (parlay) prediction-market contracts. A requester (taker) opens an RFQ on a combo — a single tradable bundle of two or more prediction-market contracts — and market makers respond with private quotes during a short auction window. The best quote is selected, the requester accepts it, the winning maker confirms, and the trade settles.
The quoting window is sealed from every customer: quote submissions and withdrawals are not delivered to the requester or other makers while the auction is open. After close, only the selected quote is disclosed privately to the requester; losing quotes remain undisclosed.
The entire maker surface is WebSocket: discovery and deliveries arrive as streams, and quotes are submitted as request/response methods on the same connection.
End-to-end flow
Code
Lifecycle timing
The auction uses three fixed decision windows. Quote submission or withdrawal, requester acceptance, and maker confirmation or decline must complete strictly before their respective deadlines; an action arriving exactly at its deadline is rejected.
| Phase | Window |
|---|---|
| Maker quoting | 1 second from RFQ creation. The public w timestamp is the quote-submission deadline. |
| Requester decision | 5 seconds from the transition to PENDING_ACCEPTANCE to accept the selected quote. |
| Maker confirmation | 1 second from the transition to CONFIRMING for the winning maker to confirm or decline. |
The hard-expiry timestamp x is an absolute upper bound. If it arrives first, it shortens a later lifecycle window.
Winner selection
When the quoting window ends, the venue considers only active quotes that:
- were submitted before
wand havevalidUntil >= w; - cover the complete requested size;
- are at or below the requester's private limit price, when one is set; and
- pass a fresh available-collateral check at close.
Eligible quotes are ranked by lowest price, with an equal-price tie going to the earliest submission. The venue checks candidates in that order and selects the first maker with sufficient available collateral. If a candidate fails that fresh check, the venue continues to the next ranked quote. If none qualifies, the RFQ expires without disclosing a quote.
Quote validity is evaluated against the logical close w, even if close processing runs later. Once a quote is selected, validUntil is not checked again during requester acceptance, maker confirmation, or finalization; those stages use their own lifecycle deadlines.
Request lifecycle
An RFQ moves through these states (S on every stream event):
Code
| State | Meaning |
|---|---|
OPEN | Live and quotable. Quotes are accepted during the 1-second quoting window, until w on the broadcast. |
PENDING_ACCEPTANCE | The window closed and a winning quote was selected; the requester has up to 5 seconds from this transition to accept. |
CONFIRMING | The requester accepted; the winning maker has up to 1 second from this transition to confirm or decline. |
FINALIZING | The maker confirmed; the venue is executing and settling the trade. |
FINALIZED | Execution completed successfully. f is present on the terminal broadcast. |
CANCELLED | The requester cancelled before accepting the winning quote. |
EXPIRED | No feasible quote existed at the window close, or the requester did not accept the winner in time. |
FAILED | The maker declined or timed out, or execution could not be completed. |
f can also be present on a FAILED event because the execution quantity is calculated when the requester accepts. Only S: "FINALIZED" confirms successful execution; do not infer a fill from f alone.
:::caution Requester full-size does not guarantee maker full-size
The requester's execution order is fill-or-kill and must fill in full for the RFQ to finalize. The selected maker's post-only order executes independently on the normal order book and may fill partially or not at all. A maker partial fill can remain even if the requester order fails and the RFQ ends in FAILED; only the maker order's unfilled remainder is cancelled. See Execution and partial-fill risk.
:::
Anonymity and privacy guarantees
- The public
requestForQuotefeed carries only the auction's existence and parameters — no requester identity, no maker identities, no quote contents. - While the auction is open, a quote is visible only to the maker who submitted it; the requester receives no submission or withdrawal events.
- After close, only the selected quote is disclosed privately to the requester. Losing quotes remain undisclosed.
- The requester is never told which maker quoted: quotes are keyed by
quoteIdonly. - The service does not assign participant pseudonyms.
rfqIdidentifies an auction andquoteIdidentifies a quote; neither identifies a participant or account. - RFQ streams do not disclose counterparty account identity, including after execution.
Surface map
| You want to... | Use |
|---|---|
| Discover open RFQ auctions | requestForQuote stream (public) |
| Receive the selected quote on your RFQ or acceptance of your quote | requestForQuote@account stream (authenticated) |
| Submit a quote | rfq.submit_quote |
| Withdraw your quote | rfq.withdraw_quote |
| Confirm or decline after winning | rfq.confirm_quote |
Glossary
| Term | Meaning |
|---|---|
| RFQ | One request-for-quote auction, identified by rfqId (a ULID). |
| Leg | One prediction-market contract inside the combo, with the outcome (YES/NO) the combo takes on it. |
| Notional | RFQ sized as a USD amount (n). Mutually exclusive with requested quantity. |
| Requested quantity | RFQ sized as a whole-contract count (q). Mutually exclusive with notional. |
| Quote | A maker's private, immutable price + maximum quantity on an RFQ. One per account per RFQ. |
| Last-look | The winning maker's confirm/decline step after the requester accepts. |
Read next
- WebSocket Streams — message shapes for the discovery and delivery streams.
- Quote Methods — submit, withdraw, and confirm.
- Maker Integration — the end-to-end maker workflow.
- Examples — a worked auction from broadcast to settlement.
- Combo Contracts — what a combo is and how it settles.