BitqueryBitqueryData Store
Multi-chain logoMulti-chainOHLCV

Token OHLCV Hourly

Hourly USD candles for the top 1,000 DEX-traded tokens by market cap on nine chains, last 30 days, one row per token and hour.

Coverage
Latest monthto Oct 8, 2026 · yesterday
Rows
≈617Krows · estimate
Size
≈47 MBParquet · estimate
Tokens
≈1Kdistinct · estimate
Table
1token_ohlcv_1h
Columns
20typed
Coverage ends yesterday, UTC

Overview

We publish one USD candle per token and hour from the Bitquery price index, which prices tokens from their trades on decentralized exchanges and filters out MEV trades. The file covers the 1,000 largest tokens by market cap that traded at least $100,000 in the window, on Solana, BNB Smart Chain, Base, Ethereum, Polygon, Arbitrum, Optimism, Tron and Robinhood Chain. A row is one token in one UTC hour.

Most buyers filter Token_Id and order by Interval_Time_Start to get a candle series. Hours with no trade have no row, so reindex to a full hourly grid before computing returns. Join on Token_Id, because symbols repeat.

Use cases

  • Intraday price history for a fixed list of 1,000 tokens
  • Hourly return and correlation matrices across tokens and chains
  • Backtests that need hourly bars with volume
  • Comparing the same coin's price across chains hour by hour

Table

20 columns · free sample for the table

token_ohlcv_1h

20 columns

One row per token and UTC hour: USD open, high, low and close, volume, and supply figures.

multichain/ohlcv/token_ohlcv_1h<YYYY-MM-DD>.parquetone file per UTC day
Browse columns Sample fileSample updated Oct 9, 2026

Schema reference

copies a column name
20 columns
ColumnTypeDescription
Block_DateDateUTC day of the bar
Interval_Time_StartDateTimeUTC start of the bar
Token_NetworkStringChain the token trades on
Token_AddressStringToken contract or mint address; empty for a chain's native coin
Token_IdStringBitquery token id, the chain prefix plus the address; the join key
Token_SymbolStringSymbol reported by the token; not unique
Token_NameStringName reported by the token; not unique
Token_IsNativeBoolTrue for a chain's native coin
Currency_IdStringBitquery currency id that groups this token with its copies on other chains
Currency_SymbolStringSymbol of that currency
Price_Ohlc_OpenFloat64First USD price in the hour
Price_Ohlc_HighFloat64Highest USD price in the hour
Price_Ohlc_LowFloat64Lowest USD price in the hour
Price_Ohlc_CloseFloat64Last USD price in the hour
Volume_UsdFloat64USD value traded in the hour
Volume_BaseFloat64Amount of the token traded in the hour, decimal adjusted
Supply_MarketCapFloat64USD price times circulating supply; price times total supply when circulating supply is unknown
Supply_CirculatingSupplyFloat64Circulating supply from CryptoRank reference data; 0 when unknown
Supply_TotalSupplyFloat64Total supply read from the chain, decimal adjusted
Supply_FullyDilutedValuationUsdFloat64USD price times total supply
Sample file

Ask an AI about this data

Send this dataset’s full schema to an assistant and ask it anything. It reads the plain-text brief first, so the answer comes from the real column list rather than a guess.

Start with

Opens a new chat with the question filled in. Nothing about you is sent to Bitquery, and the assistant sees only the public brief.

Delivery

Parquet files in a Requester Pays S3 bucket or a Cloudflare R2 bucket, chosen at checkout. On S3 you download with your own AWS account and AWS bills the transfer; on R2 you download with a read-only API key and pay no egress. Layout:

# token_ohlcv_1h: one file per UTC day
multichain/ohlcv/token_ohlcv_1h<YYYY-MM-DD>.parquet
  1. Download a free sampleNo email needed.
  2. Pay nowName, work email and licence check.
  3. Pay the invoiceBy card or bank transfer.
  4. Download from S3 or R2The team prepares the export and emails the bucket path, plus a read-only API key for R2 orders.

Price

Latest month
Sep 8, 2026 → Oct 8, 2026
$300one-time, USD
  • The token_ohlcv_1h table, 20 columns
  • Parquet files in the layout under Delivery
  • S3 or R2 download, chosen at checkout
  • Licensed under the Data License
Pay now

FAQ

10 questions
What is in Token OHLCV Hourly?

One Parquet table, token_ohlcv_1h, with 20 columns: the hour, the token and its chain, USD open, high, low and close, USD and token volume, and four supply figures including market cap. About 617,000 rows for 1,000 tokens over 30 days.

How big is it?

About 617,000 rows and roughly 47 MB as Parquet, estimated from a one-day sample at 77 bytes per row. The export for the 30 days to 8 October 2026 returned 616,536 rows; exact figures arrive with the delivery manifest.

Which tokens are included?

Tokens are ranked by their median market cap over the 30 days, counting only bars where the circulating supply is known, with a floor of $100,000 traded in the window. The list is fixed when your order is built and shipped inside the files, so you can see which tokens you got.

How far back does it go?

30 days. The price index keeps 30 days of bars, so that is the longest window this dataset can hold. Each order is built once, when you buy, and covers the 30 days up to the latest full UTC day. It is a fixed set of files and does not update afterwards. For prices that keep updating, use the Bitquery Trading API.

How are the candles produced, and how were they checked?

Bars come from the Bitquery price index, the same series the Trading API serves. It prices each token in USD from its DEX trades and filters out MEV trades. Each row is one hourly bar from that index. We ran the export for two windows before release. Both returned every day in the window, and no bar had a high below its low.

What was left out, and why?

Tokens outside the top 1,000, tokens with no known circulating supply, and tokens that traded under $100,000 in the window. Centralized exchange trades are not in the source. Hours with no trade have no row; nothing is forward filled, which is why the file holds about 617,000 rows and not the 720,000 a full grid would.

What should I watch out for?

Market cap belongs to the currency, so every copy of a coin carries the same figure: WETH on Base shows the market cap of ETH. Never sum it across rows. Circulating supply is known for about 4,800 tokens; for the rest the market cap column equals the fully diluted value. Symbols and names repeat, so join on Token_Id. Prices are 32-bit floats in the source, good to about seven digits. Supply figures can be 0 on a bar where the reference data had not arrived.

How do I get the candles for one token?

Filter Token_Id to the token, for example bid:eth:0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 for WETH on Ethereum, and order by Interval_Time_Start.

How do I load it?

One line in DuckDB: SELECT * FROM read_parquet('token_ohlcv_1h/*.parquet') LIMIT 10. Pandas works too: pandas.read_parquet(path).

How current is it, and how is it delivered?

Each order is built once, when you buy, and covers the 30 days up to the latest full UTC day. It is a fixed set of files and does not update afterwards. For prices that keep updating, use the Bitquery Trading API. Delivered as Parquet with ZSTD compression, one file per day, under a stable layout with a JSON manifest listing every file and its sha256. We prepare the files within 7 business days of purchase and email you the location. You choose at checkout where to collect them: a Requester Pays S3 bucket, downloaded with your own AWS account, or a Cloudflare R2 bucket with a read-only API key and no egress fees. Files stay available for 7 days from delivery.