Skip to main content
The transfers channel sends every ERC-1155 outcome-token transfer from the Polymarket PositionManager contract. Every time conditional-token positions move between wallets, one of these events fires. We decode each one and send it after the transaction is confirmed on-chain.
These events used to stream on the old combos channel. They now have their own channel.

Subscribe

{
  "action": "subscribe",
  "id": "s1",
  "channel": "transfers"
}
With no filters, you get every confirmed transfer from all tokens.

Filters

FilterTypeRequiredDescription
walletsstring[]NoHex addresses (0x…). Keeps transfers where a listed address is from or to.
token_idsstring[]NoToken IDs as decimal strings. Keeps transfers of the listed position tokens.
This channel ignores market_ids and min_usd. See Filters for the combination rule.

Events

This channel sends both ERC-1155 transfer events.
Eventdata.typeDescription
TransferSingletransfer_singleOne ERC-1155 conditional-token transfer. Tracks a single position token moving between wallets.
TransferBatchtransfer_batchMany ERC-1155 transfers in one transaction. Used when positions move together as a batch.

Payloads

Every frame wraps the event in the standard envelope (type, id, channel, confirmed, data) shown on Frames. Below, each block is the data object for one event — its type discriminator plus every field the ABI decodes. A full frame looks like:
{
  "type": "event",
  "id": "s1",
  "channel": "transfers",
  "confirmed": true,
  "data": {
    "type": "transfer_single",
    "operator": "0x…",
    "from": "0x…",
    "…": "…"
  }
}

transfer_single

TransferSingle (ERC-1155). One conditional-token position moving between wallets.
{
  "type": "transfer_single",
  "operator": "0x…",
  "from": "0x…",
  "to": "0x…",
  "id": "0x…",
  "amount": "0x…"
}
FieldSolidity typeDescription
typestringtransfer_single.
operatoraddress (hex)Address that made the transfer for the token owner.
fromaddress (hex)Sender of the position tokens (zero address for mints).
toaddress (hex)Recipient of the position tokens (zero address for burns).
iduint256 (hex)ERC-1155 token id of the position moved.
amountuint256 (hex)Number of position tokens moved.

transfer_batch

TransferBatch (ERC-1155). Many position tokens moving in one transaction. The parallel ids and amounts arrays line up index for index.
{
  "type": "transfer_batch",
  "operator": "0x…",
  "from": "0x…",
  "to": "0x…",
  "ids": ["0x…", "0x…"],
  "amounts": ["0x…", "0x…"]
}
FieldSolidity typeDescription
typestringtransfer_batch.
operatoraddress (hex)Address that made the transfer for the token owner.
fromaddress (hex)Sender of the position tokens (zero address for mints).
toaddress (hex)Recipient of the position tokens (zero address for burns).
idsuint256[] (hex)ERC-1155 token ids of the positions moved.
amountsuint256[] (hex)Amount moved for each id, in the same order as ids.

Pending feed

Set confirmed: false on your subscribe to get the pending feed of this channel — the same payload shape for pending transactions sent to the PositionManager contract, before they are in a block. Pending events are guesses. A transaction can be dropped, replaced, or reverted. See Mempool for the full frame shape and how to handle it.
{
  "action": "subscribe",
  "id": "pending",
  "channel": "transfers",
  "confirmed": false
}
Last modified on July 5, 2026