Skip to main content
The polymarket_polygon.open_interest_hourly table provides hourly open interest and traded volume per Polymarket market. Grain: one row per (hour, market_id), with a row for every hour from the hour the market’s outcome tokens were first minted to the hour it resolves. Open interest is a level at the end of the hour; volume is the flow within it. Open interest is the outcome token supply, rebuilt from the CTF ERC-1155 mint and burn ledger on Polygon. History starts in April 2021. It is counted per side. On a standalone market the Yes and No sides are equal. On a member of a mutually exclusive (neg-risk) event, they diverge once No tokens are converted: converting No tokens of one outcome mints Yes tokens of every sibling outcome without adding collateral, so the No side drops and the siblings’ Yes sides grow. event_oi_contracts gives the collateral locked behind the whole event. Every row is the state at the end of its hour. A decided market has no open interest, so the resolution hour reads zero and the series stops there, even though tokens are still held: losing tokens are never redeemed, and winners redeem over weeks. Redemptions are in polymarket_polygon.market_actions. A market that opens and resolves within one hour shows volume but no open interest.
Combos are not included. A combo’s collateral hangs on its legs, so it doesn’t add to single-market open interest.
Don’t sum market_oi_yes_contracts across the members of an event. Because conversions mint sibling Yes tokens without collateral, the sum can overstate the money at stake several times over. Don’t sum event_oi_contracts across members either, because it is repeated on every member row. For total open interest, take event_oi_contracts once per event and hour, grouping by COALESCE(event_id, market_id) so that each standalone market counts as its own event. The example below does this.
Volume is kept here rather than on the candles because summing the Yes and No candles double-counts every Yes-versus-No match. Per-token prices are in polymarket_polygon.ohlcv_hourly.

Table Schema

Table sample

Query performance

block_month is the partition key. Always include a block_month or hour filter.

Example query