Skip to main content
Emitted for combo lifecycle actions when the event can be represented with enriched legs. This covers useful position-changing actions without emitting raw, condition-only messages that would require a second lookup to understand.
{
  "type": "combo_lifecycle",
  "timestamp": 1781054112400,
  "data": {
    "event_type": "combo_lifecycle",
    "tx_hash": "0xabc...",
    "status": "confirmed",
    "detected_at": 1781054112400,
    "block_number": 88232739,
    "action": "Redeem",
    "user": "0xUser...",
    "combo_condition_id": "0xcombo...",
    "condition_ids": ["0xcombo..."],
    "module_id": 3,
    "module_name": "CombinatorialModule",
    "position_ids": ["123..."],
    "source_position_ids": ["123..."],
    "leg_position_ids": ["111...", "222..."],
    "legs": [
      {
        "position_id": "111...",
        "leg_outcome_label": "Yes",
        "market": {
          "title": "Will Team A win?",
          "slug": "will-team-a-win"
        }
      }
    ],
    "amount_e6": "1000000",
    "amount_usdc": 1,
    "payout_usdc": 1
  }
}

Actions

action can be: Prepare, Split, Merge, HorizontalSplit, HorizontalMerge, Convert, Redeem, Wrap, Unwrap, Transfer, Compress, Extract, Inject, ConvertToYesBasket, or MergeFromYesBasket.

Subscribing

Lifecycle events are not included in the default combos preset. Request them explicitly:
{
  "action": "subscribe",
  "type": "combos",
  "filters": {
    "event_types": ["combo_lifecycle"]
  }
}
Filter by lifecycle action:
{
  "action": "subscribe",
  "type": "combos",
  "filters": {
    "event_types": ["combo_lifecycle"],
    "action": "Redeem"
  }
}

Fields

data.action
string
required
Combo lifecycle action.
data.user
string
Wallet that initiated or received the lifecycle action.
data.combo_condition_id
string
Combo condition ID when available.
data.condition_ids
string[]
Condition IDs involved in the lifecycle action.
data.event_ids
string[]
Event IDs for combo legs when available.
data.module_id
number
Combo module ID. Common values are 1 for binary, 2 for negative-risk, and 3 for combinatorial legs.
data.module_name
string
Human-readable module name when available.
data.yes_position_id
string
YES combo position ID when the lifecycle action creates or affects a combo position.
data.no_position_id
string
NO combo position ID when the lifecycle action creates or affects a combo position.
data.position_ids
string[]
Position IDs involved in the lifecycle action.
data.source_position_ids
string[]
Positions consumed by the action.
data.destination_position_ids
string[]
Positions created by the action.
data.legs
object[]
required
Enriched legs. Lifecycle events without enriched legs are held from the customer stream.
data.amount_e6
string
Raw six-decimal amount.
data.amount_usdc
number
USDC-normalized amount.
data.payout_usdc
number
USDC-normalized payout for redeem actions when available.
data.side
string
Combo side when available. Values: YES or NO.
data.confirmed_transfers
object[]
Position transfer logs decoded from the confirmed receipt.