Skip to main content
A channel is a named stream of Polymarket activity. We read it from the chain and decode it for you. Subscribe to a channel by its name. Some channels accept filters; the two filter channels require one. There are three kinds of channel:
  • Topic channels carry a fixed set of decoded events. Every decoded event routes to exactly one topic channel, so you can always tell which channel an event arrives on.
  • Filter channels (wallets, markets) are cross-cutting. They carry the same events as the topic channels, but scoped to the wallets, markets, or tokens you name.
  • CLOB channels (clob.*) are a separate family. They carry the Polymarket order-book feed — book, prices, trades, midpoint — proxied over the same socket. See CLOB channels below.

Confirmed channels

A confirmed channel sends you events after the transaction is in a block. This is final, on-chain truth.
ChannelEvents it carriesAccepted filters
tradingOrder fills, matches, cancels, preapprovals, and trading pauses.wallets, market_ids, token_ids, min_usd
feesExchange fees charged on trades.wallets, token_ids
oracleUMA Adapter and UMA Optimistic Oracle question events.market_ids
resolutionCondition resolutions, reported results, and resolution pauses.market_ids
lifecycleMarket, event, condition, and token preparation.market_ids, token_ids
positionsCTF base-layer splits, merges, and payout redemptions.wallets, market_ids, token_ids
combosModule, neg-risk, combinatorial, bridge, and migration position events.wallets, market_ids, token_ids
transfersERC-1155 outcome-token transfers.wallets, token_ids
accountsProxy and deposit wallet creation.wallets
wallets (filter channel)Any event that touches one or more wallet addresses.wallets (required, min 1)
markets (filter channel)Any event for the given market ids or token ids.market_ids or token_ids (min 1)
An empty filter (or one you leave out) means the whole channel. A filter a channel does not accept is ignored — it is not an error. See Filters for the combination rule.

Pending feed

Every channel has a pending feed. Set confirmed: false on the subscribe message to get pending transactions before they are in a block, on the same bare channel name. These are guesses, not final truth. See Mempool for the frame shape and how to handle them.
Channel (with confirmed: false)Description
tradingPending transactions sent to Polymarket exchange contracts.
feesPending exchange transactions that charge a fee.
oraclePending transactions sent to UMA oracle contracts.
resolutionPending transactions sent to resolution and settlement paths.
lifecyclePending transactions sent to market lifecycle contracts.
positionsPending transactions sent to CTF and collateral-adapter split, merge, and redemption paths.
combosPending transactions sent to module, combinatorial, bridge, and migration contracts.
transfersPending ERC-1155 transfer transactions.
accountsPending wallet-factory transactions.
walletsPending transactions that involve a wallets address (sender, recipient, or decoded from calldata).
marketsPending transactions that involve a market_ids or token_ids decoded from calldata.
Pending messages are guesses. A pending transaction can be dropped, replaced, reordered, or reverted. For final on-chain truth, use the confirmed feed (confirmed: true, the default).

Filter availability

This table shows which filters each channel accepts. A filter a channel does not accept is ignored:
Channelwalletsmarket_idstoken_idsmin_usd
trading
fees
oracle
resolution
lifecycle
positions
combos
transfers
accounts
walletsrequired
marketsrequired*required*
* The markets channel needs at least one of market_ids or token_ids. See Filters for the full reference, including how filters work on mempool.

CLOB channels

The clob.* channels are a separate family from the topic and filter channels above. They carry the Polymarket CLOB (order-book) feed — proxied over the same Radion WebSocket — instead of decoded on-chain events.
ChannelSendsAccepted filters
clob.bookFull order-book snapshot (bid and ask levels).token_ids (required)
clob.pricesPrice-change batches with new best bid/ask.token_ids (required)
clob.last_tradeLast trade price and size.token_ids (required)
clob.midpointMidpoint between best bid and ask.token_ids (required)
clob.tick_sizeTick-size changes.token_ids (required)
clob.best_bid_askBest bid and best ask.token_ids (required)
They differ from the topic channels: each requires a token_ids filter, the data payload has no type discriminator, and they have no pending feed (confirmed: false does not apply). See CLOB channels for the payload shapes.

Filter channels

wallets and markets are not new event types. They are scoped views of the same events the topic channels already send. If you subscribe to wallets with a wallets filter, you get the exact same payload shapes as trading, positions, and the rest, but only for events that touch your watched addresses.
  • wallets — sends any confirmed event where a watched address is a sender, recipient, or decoded participant. It requires at least one address, or the subscribe fails. For payload shapes, see the topic channel pages.
  • markets — sends events that match the market_ids or token_ids you pass. It requires at least one id. Same payload shapes as the topic channels.
The global channel was removed. To watch everything, subscribe to each topic channel you care about. To scope across all topics at once, use wallets or markets.
Last modified on July 5, 2026