polygon.predictions.open_interest_hourly view provides hourly snapshots of open interest across all prediction markets. Unlike the daily user-based view, this tracks total token supply from ERC1155 credit/debit events.
Use this view for granular liquidity analysis, intraday TVL tracking, and understanding market dynamics at hourly resolution.
Table Columns
Unique Key:unique_id
| Column Name | Data Type | Description |
|---|---|---|
| project | VARCHAR | Project name (polymarket). |
| protocol | VARCHAR | Protocol name (polymarket). |
| block_hour | TIMESTAMP_NTZ(9) | Hour timestamp for the open interest snapshot. |
| token_address | VARCHAR | Conditional Tokens contract address. |
| condition_id | VARCHAR | Unique condition identifier for the market. |
| market_unique_id | VARCHAR | Unique key for grouping related markets. |
| market_id | VARCHAR | Market identifier. |
| market_name | VARCHAR | Market name. |
| market_description | VARCHAR | Market description. |
| question_id | VARCHAR | Unique question identifier. |
| question | VARCHAR | Market question text. |
| question_description | VARCHAR | Detailed question description. |
| token_id | VARCHAR | Token ID for the specific outcome token. |
| token_outcome | VARCHAR | Token outcome name (Yes/No). |
| category | VARCHAR | Main category of the market. |
| sub_category | VARCHAR | Specific subcategory of the market. |
| tags | VARCHAR | Market tags. |
| neg_risk | BOOLEAN | Whether this is a NegRisk market. |
| resolution_outcome | VARCHAR | Market resolution outcome if resolved. |
| resolved_at | TIMESTAMP_NTZ(9) | Market resolution timestamp. |
| open_interest | FLOAT | Total token supply (cumulative net credits minus debits across all holders), normalized by 1e6. |
| token_price | FLOAT | Price per token at this hour (see fallback chain below). |
| open_interest_usd | FLOAT | USD value of the open interest (open_interest * token_price). Uses 0 when token_price is null. |
| market_active | BOOLEAN | Whether market is currently active. |
| market_closed | BOOLEAN | Whether market is closed. |
| market_accepting_orders | BOOLEAN | Whether market is accepting new orders. |
| is_winner | BOOLEAN | Whether this outcome won the market. |
| unique_id | VARCHAR | Unique identifier combining block_hour and token_id. |
Understanding Token Price Fallback
Thetoken_price column uses a 5-level fallback chain (first non-null wins):
- Trade-based hourly price from
token_prices_hourly - Chain resolution outcome/token_outcome yes/no mapping (hour >= coalesce(resolved_at, end_date))
- API
is_winner=truegives 1.0 (hour >= coalesce(resolved_at, end_date)) - API
token_pricewhen exactly 0 or 1 (hour >= coalesce(resolved_at, end_date)) - API
token_priceas-is (best available estimate from markets metadata)