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

# polymarket_polygon.combo_actions

> Polymarket Combos lifecycle actions — splits, merges, redemptions, and combinatorial structuring primitives on the v3 stack.

export const TableSample = ({tableName, tableSchema}) => <>
    <div className="hidden dark:block">
      <iframe src={`https://dune.com/embeds/3419983/5785629?table_schema_t6f0df=${tableSchema}&table_name_t6f0df=${tableName}&darkMode=true`} style={{
  width: '100%',
  height: '500px',
  border: 'none',
  marginTop: '10px'
}} />
    </div>
    <div className="dark:hidden">
      <iframe src={`https://dune.com/embeds/3419983/5785629?table_schema_t6f0df=${tableSchema}&table_name_t6f0df=${tableName}`} style={{
  width: '100%',
  height: '500px',
  border: 'none',
  marginTop: '10px'
}} />
    </div>
  </>;

The `polymarket_polygon.combo_actions` table contains combo lifecycle actions: splits, merges, per-user redemptions, and the combinatorial structuring primitives (wrap, compress, extract, inject, …), enriched with combo metadata from `combo_details`. Settlement-internal splits/merges are excluded by construction — those are the mint/merge legs of RFQ fills and live in `combo_trades`.

## Table Schema

| Column                   | Type               | Description                                                                                                                                                                                                                                                                                               |
| ------------------------ | ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `block_month`            | `DATE`             | UTC month of the event block time (partition key)                                                                                                                                                                                                                                                         |
| `block_time`             | `TIMESTAMP`        | UTC event block time                                                                                                                                                                                                                                                                                      |
| `block_number`           | `BIGINT`           | Block number in which the action was executed                                                                                                                                                                                                                                                             |
| `action`                 | `VARCHAR`          | Lifecycle action type (`split`, `merge`, `redemption`, `wrap`, `unwrap`, `compress`, `convert_to_yes_basket`, `merge_from_yes_basket`, `split_on_condition`, `merge_on_condition`, `extract`, `inject`)                                                                                                   |
| `combo_condition_id`     | `VARBINARY`        | Combo condition ID (bytes31); for combo detail join `combo_details` on `combo_condition_id` and `outcome_index = 0`                                                                                                                                                                                       |
| `position_id`            | `UINT256`          | v3 PositionManager token ID for position-scoped actions; joins `combo_details.token_id`                                                                                                                                                                                                                   |
| `outcome_index`          | `INTEGER`          | Outcome byte of `position_id` (0 = YES, 1 = NO)                                                                                                                                                                                                                                                           |
| `outcome`                | `VARCHAR`          | Outcome as label; Yes pays out only if every leg wins                                                                                                                                                                                                                                                     |
| `related_position_id`    | `UINT256`          | Secondary position ID (wrap/unwrap underlying, compress new position)                                                                                                                                                                                                                                     |
| `related_condition_id`   | `VARBINARY`        | Secondary condition ID (child-YES / reduced condition)                                                                                                                                                                                                                                                    |
| `related_condition_id_2` | `VARBINARY`        | Tertiary condition ID (child-NO / residual condition)                                                                                                                                                                                                                                                     |
| `all_condition_ids`      | `ARRAY(VARBINARY)` | All condition IDs of the row combined into one array (NULLs dropped). Filter `WHERE contains(all_condition_ids, X)` to find every action touching combo X — `combo_condition_id` alone is the parent combo (not the child/residual) on `extract`, `inject`, `split_on_condition` and `merge_on_condition` |
| `initiator`              | `VARBINARY`        | Address performing the action                                                                                                                                                                                                                                                                             |
| `recipient`              | `VARBINARY`        | Recipient of the action's output where emitted; the redeemed user on auto-redemptions                                                                                                                                                                                                                     |
| `recipient_2`            | `VARBINARY`        | NO-token recipient of a split                                                                                                                                                                                                                                                                             |
| `amount`                 | `DOUBLE`           | Share/set quantity (= pUSD moved 1:1 for splits/merges); NULL on auto-redemptions                                                                                                                                                                                                                         |
| `payout`                 | `DOUBLE`           | pUSD returned in USD (redemption payout, compress collateral out)                                                                                                                                                                                                                                         |
| `is_auto_redeemed`       | `BOOLEAN`          | On redemptions: TRUE when executed by the AutoRedeemer on the user's behalf                                                                                                                                                                                                                               |
| `combo_name`             | `VARCHAR`          | Generated combo name (`question: outcome AND ...`); NULL unless every leg is labeled                                                                                                                                                                                                                      |
| `leg_count`              | `BIGINT`           | Number of legs in the combo                                                                                                                                                                                                                                                                               |
| `contract_address`       | `VARBINARY`        | Contract that emitted the event                                                                                                                                                                                                                                                                           |
| `evt_index`              | `INTEGER`          | Index of the event within the transaction                                                                                                                                                                                                                                                                 |
| `tx_hash`                | `VARBINARY`        | Transaction hash                                                                                                                                                                                                                                                                                          |
| `tx_from`                | `VARBINARY`        | Transaction sender                                                                                                                                                                                                                                                                                        |
| `_updated_at`            | `TIMESTAMP`        | When this row was last inserted or updated by the dbt pipeline                                                                                                                                                                                                                                            |

## Table sample

<TableSample tableSchema="polymarket_polygon" tableName="combo_actions" />

## Example query

```sql theme={null}
-- Combo redemption payouts by day, split by auto vs manual
SELECT
  DATE_TRUNC('day', block_time) AS day,
  is_auto_redeemed,
  SUM(payout) AS payout_usd,
  COUNT(*) AS num_redemptions
FROM polymarket_polygon.combo_actions
WHERE action = 'redemption'
  AND block_time >= NOW() - INTERVAL '30' DAY
GROUP BY 1, 2
ORDER BY 1
```
