Skip to main content
The activity channel ("activity") delivers four event types: split, merge, redeem, and conversion. These represent position management operations on Polymarket’s Conditional Token Framework.
pUSD deposit/withdrawal events are on a separate collateral channel - not mixed into activity. Subscribe to both if you need full wallet flow.
condition_id is null only for the conversion event type (NegRisk conversions span multiple conditions). Clients with strict typed generators (condition_id: string) should widen to string | null if they want to consume conversion events. If you filter by event_type in {"split", "merge", "redeem"}, no change is needed.

split

A user deposits collateral (USDC) to mint outcome tokens for a market.

merge

A user returns a full set of outcome tokens to redeem collateral (USDC) before market resolution.

redeem

A user redeems winning outcome tokens for collateral (USDC) after a market has resolved.

conversion

A user converts “No” positions in a NegRisk event back to collateral. NegRisk conversions span multiple conditions, so condition_id is null - use neg_risk_event_id + index_set instead.
  • neg_risk_event_id: the NegRiskAdapter’s marketId identifying a cluster of related binary questions (distinct from Polymarket’s numeric market_id).
  • index_set: bitmap of which question indices within that event were converted. Decimal string of a uint256. Interpret by bit position: indexSet & (1 << i) → question i was included. Example "320" = bits 6 & 8 set.
  • Routes on activity.user.* and activity.wildcard only (no activity.condition.* route since there’s no single condition).

Field Reference

Example: Tracking Redemptions