> ## Documentation Index
> Fetch the complete documentation index at: https://docs.polynode.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Combo Status Update Event

> Receipt-backed confirmation for a pending combo execution or combo lifecycle transaction.

`combo_status_update` is emitted after a combo transaction is mined. Match its
`tx_hash` to a pending `combo_execution`; then use `confirmed_fills[]` as the
on-chain result.

The fill rows use the same maker-perspective schema as
`combo_execution.data.trades[]`: `size` is shares, `amount_usdc` is dollars,
and `price` is the actual execution price.

Receipt-only lifecycle activity can appear in `lifecycle_events[]` even when
PolyNode did not observe a pending transaction. This includes combo-native
AutoRedeemer activity. Standard redemption subscribers continue to receive the
corresponding stable `redemption` event where applicable.

## Example

```json theme={null}
{
  "type": "combo_status_update",
  "timestamp": 1785812123000,
  "data": {
    "event_type": "combo_status_update",
    "tx_hash": "0xf4f973bcca17c05081574c36183a5f61fae8eb5895a2d46d71aaadb3cf11e556",
    "block_number": 91404731,
    "confirmed_at": 1785812123000,
    "execution_status": "CONFIRMED",
    "pending_detected_at": 1785812120366,
    "latency_ms": 2634,
    "combo_condition_id": "0x03af499212591cdbfd21ab04df07b8fb720000000000000000000000000000",
    "yes_position_id": "1666644547653825639538654505467109608411697937035881104213580452779446501376",
    "no_position_id": "1666644547653825639538654505467109608411697937035881104213580452779446501377",
    "order_hashes": [
      "0x9fd9da991a3d8f82bfb13e2901422a1621d87db1e27ce4da33fd5a61dec4f4b7",
      "0x1eb1c486ccad5622329d3e88147c6e98698521ebff86fcbd27ab7efa7fd458d5"
    ],
    "legs": [
      {
        "position_id": "759456036058902166074175781780133450895503656129754990757956704995918217217",
        "condition_id": "0x01add63e0052d10828c47551c3e231dedd0000000000000000000000000000",
        "module_id": 1,
        "module_name": "BinaryModule",
        "outcome_index": 1,
        "leg_outcome_label": "No"
      },
      {
        "position_id": "888399010527256025342625662713948815643754849506664777044908366823210090496",
        "condition_id": "0x01f6d0e6bdba3f8d15dc0928842624b9f10000000000000000000000000000000",
        "module_id": 1,
        "module_name": "BinaryModule",
        "outcome_index": 0,
        "leg_outcome_label": "Yes"
      }
    ],
    "confirmed_fills": [
      {
        "position_id": "1666644547653825639538654505467109608411697937035881104213580452779446501377",
        "order_hash": "0x9fd9da991a3d8f82bfb13e2901422a1621d87db1e27ce4da33fd5a61dec4f4b7",
        "maker": "0xe2315b15280fc49bc6e60eaaeea30c0df64493a5",
        "taker": "0x0d8b4fb38999aaf7658df758f3587d25fe7fd417",
        "side": "BUY",
        "outcome": "NO",
        "price": 0.43,
        "size": 40.350877,
        "amount_usdc": 17.350878,
        "fee": 0
      },
      {
        "position_id": "1666644547653825639538654505467109608411697937035881104213580452779446501376",
        "order_hash": "0x1eb1c486ccad5622329d3e88147c6e98698521ebff86fcbd27ab7efa7fd458d5",
        "maker": "0x0d8b4fb38999aaf7658df758f3587d25fe7fd417",
        "taker": "0xe3333700ca9d93003f00f0f71f8515005f6c00aa",
        "side": "BUY",
        "outcome": "YES",
        "price": 0.57,
        "size": 40.350877,
        "amount_usdc": 22.999999,
        "fee": 0.4945
      }
    ]
  }
}
```

The example omits empty optional arrays and cached market metadata for
readability.

`combo_status_update` is receipt-backed. Its current terminal statuses are:

| `execution_status` | Meaning                                                                                          |
| ------------------ | ------------------------------------------------------------------------------------------------ |
| `CONFIRMED`        | The transaction receipt succeeded. Fill arrays are included when the receipt emitted those logs. |
| `FAILED`           | The transaction was mined with a reverted receipt. Fill arrays are normally omitted.             |

Both values match a subscription filter of `status: "confirmed"` because both
are on-chain receipt results. Do not label every status update successful;
always inspect `execution_status`.

If PolyNode did not observe the transaction in the mempool, the receipt event
can arrive without pending-only context. In that case `pending_detected_at`,
`latency_ms`, combo identifiers, decoded legs, and pending-derived wallet/value
fields are omitted.

## Fields

### Confirmation

| Field                                | Type                 | Description                                                             |
| ------------------------------------ | -------------------- | ----------------------------------------------------------------------- |
| `tx_hash`                            | string               | Polygon transaction hash; joins to the pending execution                |
| `block_number`                       | number               | Block containing the transaction                                        |
| `confirmed_at`                       | number               | Confirmation time in Unix milliseconds                                  |
| `execution_status`                   | string               | `CONFIRMED` for a successful receipt or `FAILED` for a reverted receipt |
| `pending_detected_at`                | number or omitted    | Pending detection time when the transaction was observed in the mempool |
| `latency_ms`                         | number or omitted    | Pending-to-receipt latency; omitted without a pending observation       |
| `combo_condition_id`                 | string or omitted    | Derived combo condition ID when recoverable                             |
| `yes_position_id` / `no_position_id` | string or omitted    | Combo outcome position IDs when available                               |
| `leg_position_ids`                   | string\[] or omitted | Constituent leg position IDs when available                             |
| `legs`                               | object\[] or omitted | Decoded combo legs; cached `market` metadata is optional                |
| `order_hashes`                       | string\[] or omitted | Exchange order hashes recovered from receipt fills                      |
| `confirmed_fills`                    | object\[] or omitted | Receipt-backed maker-perspective fills                                  |
| `execution_summaries`                | object\[] or omitted | OrdersMatched-style execution summaries                                 |
| `fees`                               | object\[] or omitted | FeeCharged logs normalized to USDC where possible                       |
| `confirmed_transfers`                | object\[] or omitted | PositionManager transfer logs                                           |
| `lifecycle_events`                   | object\[] or omitted | Combo lifecycle events found in the same receipt                        |
| `gas_used`                           | string or omitted    | Receipt gas used when available                                         |
| `effective_gas_price`                | string or omitted    | Receipt effective gas price when available                              |

Top-level `maker_address`, `signer_address`, `taker_address`, `amount_usdc`, and
`notional_usdc` can also be present when they are recoverable from the pending
execution or receipt. For individual fills, use `confirmed_fills[]`.

### Confirmed fill

| Field         | Type   | Description                              |
| ------------- | ------ | ---------------------------------------- |
| `position_id` | string | Combo position filled                    |
| `order_hash`  | string | ExchangeV3 order hash                    |
| `maker`       | string | Wallet that made the signed order        |
| `signer`      | string | Order signer when available              |
| `taker`       | string | Receipt's OrderFilled taker/counterparty |
| `side`        | string | Order maker's `BUY` or `SELL` direction  |
| `outcome`     | string | `YES` or `NO` combo position side        |
| `price`       | number | Actual fill price                        |
| `size`        | number | Shares filled                            |
| `amount_usdc` | number | Dollar value filled                      |
| `fee`         | number | Fee in USDC                              |

## Subscribe

`combo_status_update` is included in the default combo stream:

```json theme={null}
{
  "action": "subscribe",
  "type": "combos"
}
```
