"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, socondition_id is null - use neg_risk_event_id + index_set instead.
neg_risk_event_id: the NegRiskAdapter’smarketIdidentifying a cluster of related binary questions (distinct from Polymarket’s numericmarket_id).index_set: bitmap of which question indices within that event were converted. Decimal string of auint256. Interpret by bit position:indexSet & (1 << i)→ questioniwas included. Example"320"= bits 6 & 8 set.- Routes on
activity.user.*andactivity.wildcardonly (noactivity.condition.*route since there’s no single condition).
