This is the on-chain combo stream. Polymarket’s RFQ gateway is an off-chain maker/quoter channel. Use this stream to monitor combo executions, fills, confirmations, and enriched lifecycle actions as they hit Polygon.
Subscribe
combos preset emits:
Every emitted combo includes its decoded structural legs, and every leg
includes a
market object with the leg market’s title, slug, image, event,
outcomes, and CLOB token IDs (market.token_ids, Polymarket’s clobTokenIds
in outcome order). Leg market metadata is resolved ahead of trading, so it
never delays a pending trade. A market Polymarket listed in the last couple
of minutes can briefly arrive without market. See
leg market fields.
Trade model
combo_execution is intentionally shaped like the ordinary settlement stream:
- Top-level
taker_*fields describe the taker order. trades[]contains every signed order from that order maker’s perspective.sizeis always shares;amount_usdcis always dollars.priceis the actual fill price, including multi-maker price improvement.order_hashis the ExchangeV3 EIP-712 hash computed directly from calldata.
GET /v3/wallets/{address}/combos/trades.
The static API adds block and log coordinates; the WebSocket adds
pre-confirmation delivery, order hashes, and explicit dollar amounts.
Full combo surface
Advanced users can explicitly request lifecycle and approval events:Redemption routing
The comprehensive
redemptions stream identifies bridged AutoRedeemer events with data.source: AutoRedeemer.BinaryRedemption, AutoRedeemer.NegRiskRedemption, or AutoRedeemer.Redemption. A direct Conditional Tokens redemption has no AutoRedeemer source.
If you subscribe to both surfaces, a generic combo AutoRedeemer payout can appear once as combo_lifecycle and once as normalized redemption. These are two representations of the same on-chain log; correlate or deduplicate them with tx_hash and log_index.
Covered on-chain surface
The combo stream covers the Polymarket on-chain contracts used for combo execution and position lifecycle activity:
PositionManager approvals for ExchangeV3 and AutoRedeemer are available through
combo_approval when requested explicitly. Collateral ERC20 allowance approvals are not part of the default combo stream.
Example
Installws, save the example as combos.mjs, and run it with Node.js:
Filters
Combo subscriptions support the standard WebSocket filters plus combo-specific identifiers:tokens and leg_position_ids both match combo position IDs and leg position IDs. Use leg_position_ids when you want the filter to be self-documenting.
For combo subscriptions, side means the combo outcome (YES or NO), while
direction means the requester’s order direction (BUY or SELL). status: "confirmed" selects receipt-backed combo_status_update events, including
both successful and reverted receipts; use execution_status to distinguish
CONFIRMED from FAILED. min_size is a minimum USDC value.
To receive only combo lifecycle redemptions:

