Skip to main content
Emitted when a user redeems their outcome tokens for collateral after a market resolves. The redeemPositions function on the Conditional Tokens contract burns the user’s shares and pays out USDC based on the resolved outcome. Every resolved market generates redemption events as holders claim their payouts. A non-zero payout means the user held winning shares. A zero payout means the user redeemed losing shares (no collateral returned). Recent redemption events also include the market’s resolved payout vector when available. Use winning_outcome, winning_token_id, or the ordered payouts / outcome_prices arrays to identify which outcome won without making a second market lookup. PM2 AutoRedeemer payouts are bridged into this same event class. For those transactions, redeemer is the user wallet from the AutoRedeemer log, not the AutoRedeemer contract, and source identifies the AutoRedeemer redemption function.
{
  "data": {
    "block_number": 85244342,
    "collateral_token": "0x2791bca1f2de4661ed88a30c99a7a9449aa84174",
    "condition_id": "0x487f28579354d6c4408eea243888cdedbe03e83a219a4708523ef455dcbc5e31",
    "event_title": "Bitcoin Up or Down - April 7, 8:15PM-8:20PM ET",
    "event_type": "redemption",
    "index_sets": [1, 2],
    "log_index": 1282,
    "market_image": "https://polymarket-upload.s3.us-east-2.amazonaws.com/BTC+fullsize.png",
    "market_slug": "btc-updown-5m-1775607300",
    "market_title": "Bitcoin Up or Down - April 7, 8:15PM-8:20PM ET",
    "neg_risk": false,
    "outcome_prices": [1.0, 0.0],
    "outcomes": ["Up", "Down"],
    "payout": 7.566434,
    "payout_e6": "7566434",
    "payouts": [1, 0],
    "redeemer": "0x8858aae9c92a82b00986a0f1a66338e8b0cc8641",
    "taker_base_fee": 1000,
    "tick_size": 0.01,
    "timestamp": 1775608721000,
    "token_ids": [
      "81518481532502107093994258923994884503752044066839262771005198927094175386674",
      "112731399428633109059368520083498445904538970112239739400592554575174180266461"
    ],
    "tokens": {
      "112731399428633109059368520083498445904538970112239739400592554575174180266461": "Down",
      "81518481532502107093994258923994884503752044066839262771005198927094175386674": "Up"
    },
    "tx_hash": "0xcfb51c25a8f6ebb0b5a7484de7812d66f2cbf9935f29c0b56561e74722c64fac",
    "winning_outcome": "Up",
    "winning_outcome_index": 0,
    "winning_token_id": "81518481532502107093994258923994884503752044066839262771005198927094175386674"
  },
  "timestamp": 1775608721000,
  "type": "redemption"
}

Fields

type
string
required
Always "redemption".
timestamp
number
required
Block timestamp in Unix milliseconds.
data
object
required

Use cases

  • Payout tracking — monitor who is cashing out resolved positions and how much they receive
  • Wallet PnL — combine with trade data to calculate realized profit/loss per wallet
  • Market lifecycle — track the full arc from trading to resolution to redemption
  • Winning wallet alerts — filter for large payout values to spot big winners as they redeem
  • Outcome-aware automations — use winning_outcome or outcome_prices directly instead of waiting on slower market metadata refreshes

Subscribing

Subscribe directly to redemptions:
{
  "action": "subscribe",
  "type": "redemptions"
}
Or request redemptions from the settlement stream:
{
  "action": "subscribe",
  "type": "settlements",
  "filters": {
    "event_types": ["redemption"]
  }
}
PM2 AutoRedeemer redemptions also appear here and can be matched to combo-native lifecycle data by tx_hash, condition_id, payout_e6, and log_index. Filter to only winning redemptions using min_size:
{
  "action": "subscribe",
  "type": "settlements",
  "filters": {
    "event_types": ["redemption"],
    "min_size": 0.01
  }
}
Track redemptions for specific wallets:
{
  "action": "subscribe",
  "type": "wallets",
  "filters": {
    "wallets": ["0x8858aae9c92a82b00986a0f1a66338e8b0cc8641"],
    "event_types": ["redemption"]
  }
}