BitqueryBitqueryData Store
Multi-chain logoMulti-chainOHLCV

Token OHLCV Daily

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

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

Overview

We build one USD candle per token and day 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 on one UTC day.

Most buyers load the file and pivot Price_Ohlc_Close by Token_Id and Block_Date to get a price history table. Join on Token_Id, because symbols repeat, and read Interval_Bars to see how many hours of the day had a trade. These are DEX prices: for large coins they track exchange prices closely, and for a coin with thin DEX trading a day can be missing.

Use cases

  • Daily price history charts for a fixed list of 1,000 tokens
  • Return and volatility tables for screening and ranking
  • Market cap history by token, taken at each day's last bar
  • Backfilling a month of daily closes into your own price database

Table

20 columns · free sample for the table

token_ohlcv_1d

20 columns

One row per token and UTC day: USD open, high, low and close, volume, and supply figures at the day's last bar.

multichain/ohlcv/token_ohlcv_1d<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
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 day
Price_Ohlc_HighFloat64Highest USD price in the day
Price_Ohlc_LowFloat64Lowest USD price in the day
Price_Ohlc_CloseFloat64Last USD price in the day
Volume_UsdFloat64USD value traded in the day
Volume_BaseFloat64Amount of the token traded in the day, decimal adjusted
Interval_BarsUInt32Hours of the day that had at least one trade, 1 to 24
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_1d: one file per UTC day
multichain/ohlcv/token_ohlcv_1d<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
$150one-time, USD
  • The token_ohlcv_1d 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 Daily?

One Parquet table, token_ohlcv_1d, with 20 columns: the day, the token and its chain, USD open, high, low and close, USD and token volume, the number of hourly bars behind the day, and four supply figures including market cap. About 29,500 rows for 1,000 tokens over 30 days.

How big is it?

About 29,500 rows and roughly 5 MB as Parquet, estimated from a one-day sample at 186 bytes per row. The export for the 30 days to 8 October 2026 returned 29,486 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 daily 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. A daily bar is rolled up from the 24 hourly bars: open of the first hour, close of the last, highest high, lowest low, summed volume. 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, so a coin that only trades on exchanges has no rows. Days with no trade have no row; nothing is forward filled.

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.

How do I get the price history for one token?

Filter Token_Id to the token, for example bid:eth:0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 for WETH on Ethereum, and order by Block_Date. To follow a coin across chains, filter Currency_Id, for example bid:eth.

How do I load it?

One line in DuckDB: SELECT * FROM read_parquet('token_ohlcv_1d/*.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.