> ## 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.market_details

> Polymarket market metadata — questions, categories, lifecycle status, resolution, and outcome tokens from on-chain and API sources.

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.market_details` table contains enriched market metadata for Polymarket prediction markets, combining on-chain data with market metadata from the Polymarket API. Grain: one row per outcome token (`token_id`) — two rows per market. Combos (multi-leg parlays) have their own dimension table, [`combo_details`](/data-catalog/curated/prediction-markets/polymarket/combo_details), at the same grain.

<Note>
  Resolution is **positional**, not label-based. Read the winning side and per-share payout off `outcome_index` and `settlement_value` rather than string-matching `token_outcome` — a `token_outcome = 'Yes'` match silently breaks on Up/Down, Over/Under, and team-name markets.
</Note>

## Table Schema

| Column                     | Type        | Description                                                                                                                                                                                                                                                                                                              |
| -------------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `unique_key`               | `VARCHAR`   | API record key: the neg-risk `event_market_id` for neg-risk markets, the `condition_id` for single markets                                                                                                                                                                                                               |
| `condition_id`             | `VARCHAR`   | CTF condition ID of the market as a `0x...` varchar, shared by its two outcome tokens                                                                                                                                                                                                                                    |
| `event_market_id`          | `VARCHAR`   | NegRiskAdapter market ID of the overarching multi-outcome event; NULL for single (non-neg-risk) markets                                                                                                                                                                                                                  |
| `event_market_name`        | `VARCHAR`   | Overarching event question for neg-risk markets (e.g. `Presidential Election 2024`); `single market` otherwise                                                                                                                                                                                                           |
| `event_market_description` | `VARCHAR`   | Overarching event description; NULL for single markets                                                                                                                                                                                                                                                                   |
| `question_id`              | `VARCHAR`   | UMA/adapter question ID of the market as a `0x...` varchar                                                                                                                                                                                                                                                               |
| `question`                 | `VARCHAR`   | Concrete outcome being bet on (e.g. `Will X happen by Y date?`)                                                                                                                                                                                                                                                          |
| `market_description`       | `VARCHAR`   | Market description text from the API                                                                                                                                                                                                                                                                                     |
| `token_id`                 | `UINT256`   | CTF ERC-1155 outcome token ID — the table's grain, two rows per market                                                                                                                                                                                                                                                   |
| `token_outcome`            | `VARCHAR`   | Label of this token's side, e.g. `Yes`/`No` (some markets use other labels like `Up` or team names)                                                                                                                                                                                                                      |
| `outcome_index`            | `INTEGER`   | Positional index of this token's side in the CTF payout vector: `0` for the market's first token (API `token_1`), `1` for the second. This — not the `token_outcome` label — is what `outcome` resolves against: `yes` = index 0 won, `no` = index 1 won                                                                 |
| `token_outcome_name`       | `VARCHAR`   | The token's side and question in one label, e.g. `Yes-Will X happen?`                                                                                                                                                                                                                                                    |
| `active`                   | `VARCHAR`   | Whether the market is active                                                                                                                                                                                                                                                                                             |
| `archived`                 | `VARCHAR`   | Whether the market is archived                                                                                                                                                                                                                                                                                           |
| `closed`                   | `VARCHAR`   | Whether the market is closed                                                                                                                                                                                                                                                                                             |
| `accepting_orders`         | `VARCHAR`   | Whether the market is accepting orders                                                                                                                                                                                                                                                                                   |
| `enable_order_book`        | `VARCHAR`   | Whether the order book is enabled                                                                                                                                                                                                                                                                                        |
| `neg_risk`                 | `VARCHAR`   | Whether it's a negative risk market                                                                                                                                                                                                                                                                                      |
| `polymarket_link`          | `VARCHAR`   | Link to the Polymarket event page (may be broken for archived markets)                                                                                                                                                                                                                                                   |
| `market_start_time`        | `VARCHAR`   | Start time of the market                                                                                                                                                                                                                                                                                                 |
| `market_end_time`          | `VARCHAR`   | End time of the market                                                                                                                                                                                                                                                                                                   |
| `game_start_time`          | `VARCHAR`   | Scheduled start of the underlying game/event for sports markets                                                                                                                                                                                                                                                          |
| `seconds_delay`            | `VARCHAR`   | Order-matching delay in seconds (used on live/in-game markets)                                                                                                                                                                                                                                                           |
| `fpmm`                     | `VARCHAR`   | Address of the market's legacy FPMM (AMM) pool where one exists                                                                                                                                                                                                                                                          |
| `icon`                     | `VARCHAR`   | Market icon URL                                                                                                                                                                                                                                                                                                          |
| `image`                    | `VARCHAR`   | Market image URL                                                                                                                                                                                                                                                                                                         |
| `tags`                     | `VARCHAR`   | Market category tags from the API                                                                                                                                                                                                                                                                                        |
| `oracle`                   | `VARBINARY` | Oracle address from the on-chain MarketPrepared event; NULL for single markets                                                                                                                                                                                                                                           |
| `fee_bips`                 | `UINT256`   | Fee bips from the on-chain MarketPrepared event; NULL for single markets                                                                                                                                                                                                                                                 |
| `outcome`                  | `VARCHAR`   | Market resolution: `yes`, `no`, `50/50`, or `unresolved`. Positional, not label-based: `yes` means outcome index 0 won, `no` means index 1 won — for non-Yes/No labels (Up/Down, team names) use `settlement_value`, not a label match                                                                                   |
| `settlement_value`         | `DOUBLE`    | Per-share dollar payout of **this row's** token at resolution: `1.0` (won), `0.0` (lost), `0.5` (50/50); NULL while unresolved or when the CTF payout vector is non-binary. Derived from `outcome` × `outcome_index`, so it is correct for any label scheme. Same per-side semantics as `combo_details.settlement_value` |
| `resolved_on_timestamp`    | `TIMESTAMP` | When the market was resolved; NULL while unresolved                                                                                                                                                                                                                                                                      |
| `last_uploaded_at`         | `TIMESTAMP` | API snapshot stamp for this record (single value across all rows per upload)                                                                                                                                                                                                                                             |
| `content_hash`             | `VARBINARY` | Hash over every content column, used to detect real per-token changes between snapshots                                                                                                                                                                                                                                  |
| `last_changed_at`          | `TIMESTAMP` | Per-token time the market record last actually changed; advances only when `content_hash` differs from the prior row                                                                                                                                                                                                     |

## Table sample

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