Skip to main content

Historical blockchain dataset download: full block history on 7 chains

Goldsky holds full block history, from genesis, for Ethereum, Base, Arbitrum One, Optimism, Polygon PoS, BNB Smart Chain, and Solana. Reorg rates by year, backfill costs, and how to download the data.

Historical blockchain dataset download: full block history on 7 chains cover image
Written by

Goldsky's data holds full block history, from genesis, for Ethereum, Base, Arbitrum One, Optimism, Polygon PoS, BNB Smart Chain, and Solana. Syncing that history yourself means running an archive node, which takes 2.2 to 12 terabytes of disk for Ethereum alone, according to ethereum.org's node guide (opens in a new tab). This post shows what the warehouse covers, how often reorgs rewrite each chain's history, and what a full backfill costs.

Coverage by chain

ChainHistory fromBlocks
EthereumJul 201526.3M
BaseJun 202353.5M
Arbitrum OneMay 2021521.1M
OptimismNov 2021159.1M
Polygon PoSMay 202096.7M
BNB Smart ChainApr 2020130.3M
SolanaMar 2020443.2M

Blocks are distinct block numbers, queried on 2026-11-04. For Solana, the count is the block height at the same time, from Solana's RPC. Solana skips about 5% of its slots, so it has fewer blocks than slots. Each EVM chain also has logs, transactions, and traces datasets. Solana has blocks, transactions, instructions, and token datasets (opens in a new tab). The full list per chain is on Supported networks (opens in a new tab).

Bar chart: Goldsky holds full block history for 7 chains. Ethereum 26.3M blocks from 2015, Polygon PoS 96.7M, BNB Smart Chain 130.3M, Arbitrum One 521.1M, Optimism 159.1M, Base 53.5M, Solana 443.2M from 2020.

Arbitrum One has the most blocks, at an average of one block every 0.33 seconds since its first block. Block count says little about data size, though. A backfill bills by events written, which the cost section covers.

Goldsky checked Solana's history on November 5, 2026 with a Turbo pipeline. It read 12 windows of 1,000 slots, from genesis to slot 450 million, and compared them with Solana's public RPC. The pipeline returned the same 11,668 blocks as the RPC, with matching block hashes and transaction counts on every sampled block. Slot 0 carries Solana's genesis hash, from March 16, 2020.

How often reorgs rewrite history

A raw download of block history includes blocks that a reorg later replaced. Goldsky keeps the replaced block and flags it, so the rate of replaced blocks is measurable for each chain. The warehouse began to keep replaced blocks in 2023 for Ethereum and Polygon PoS, and in 2024 for BNB Smart Chain. Earlier years show no data, not zero reorgs.

Chain2023202420252026 (to Nov 3)
Ethereum1,615 (from Jun 12)1,7481,1781,009
Polygon PoS1,563 (from Feb 15)2,2087060.4
BNB Smart Chainn/a107 (from Mar 6)74

Replaced blocks per million blocks. A partial year counts all of that year's blocks, so its rate is a lower bound. Base shows 1 replaced block. Arbitrum One and Optimism show none.

Chart: replaced blocks per million blocks by year for Ethereum, Polygon PoS, and BNB Smart Chain, 2023 to 2026.

Polygon PoS went from the highest rate in 2024 to almost none in 2026. That drop came after Polygon's Rio upgrade in October 2025, which Polygon says eliminates the risk of reorgs (opens in a new tab). BNB Smart Chain's rate fell after its Lorentz upgrade (opens in a new tab) in April 2025 and its Maxwell upgrade (opens in a new tab) in June 2025. BNB Chain reports that Lorentz cut reorg frequency from about 5 a day to about 2 a day. Ethereum's rate fell more slowly, and no published change explains it.

For anyone who downloads raw history, the result is the same. Keep one block per block number, the block the chain kept, before you treat an export as the current chain. For logs, deduplicate on transaction_hash and log_index. The deepest recorded reorg in the warehouse replaced 29 consecutive Polygon PoS blocks, on April 18, 2024.

What a full-history backfill costs

Turbo pipelines bill sink writes by event, per Goldsky's pricing page (opens in a new tab). The first 1 million events each month are free. Events up to 100 million cost $1.00 per 100,000, and events above that cost $0.10 per 100,000.

ExampleEventsSink cost
Every Ethereum block, genesis to now26.3M$253
Every USDC Transfer event on Base, Aug 2023 to now2.16B$3,052

The rate drops at volume, so a large backfill costs much less per event than a small one. One contract can also outweigh a whole chain's block history. Base's USDC contract alone emitted about 80 times more Transfer events than Ethereum has blocks. A filter on the contract address keeps a backfill to the events a team needs. Worker-hour cost depends on how long a backfill runs, and Goldsky does not publish a way to estimate that.

How to download it

A minimal Turbo pipeline backfills a dataset from the earliest block into a sink. This example streams Ethereum block history into ClickHouse:

yaml
name: eth-blocks-backfill
resource_size: s

sources:
  blocks:
    type: dataset
    dataset_name: ethereum.raw_blocks
    version: 1.0.0
    start_at: earliest

sinks:
  clickhouse_blocks:
    type: clickhouse
    from: blocks
    table: eth_blocks
    primary_key: number
    secret_name: MY_CLICKHOUSE

Check the current dataset version with goldsky dataset list before you deploy. The same source works with a Postgres sink (opens in a new tab) (type: postgres) or an S3 sink (opens in a new tab) (type: s3_sink, which writes Parquet files). To backfill one contract's events, add a fast-scan filter (opens in a new tab) on a raw_logs source, for example filter: address = '0x833589fcd6edb6e08f4c7c32d4f71b54bda02913' for Base USDC.

For block headers only, the Feeds API Blocks endpoint (opens in a new tab) returns block ranges without a pipeline, at $10 per million blocks.

Method

Goldsky queried its community ClickHouse warehouse on 2026-11-04. Block counts are exact distinct counts. A block number counts as reorged when it holds more than one block hash and at least one of its rows carries is_deleted = 1. The Base USDC count is an exact count of Transfer events from the native USDC contract with is_deleted = 0. Sink costs apply the published tiers to those counts.

sql
SELECT
  toYear(toDateTime(ts)) AS year,
  countDistinct(number) AS blocks,
  countDistinctIf(number, hashes > 1 AND has_deleted = 1) AS replaced_blocks,
  round(countDistinctIf(number, hashes > 1 AND has_deleted = 1) / countDistinct(number) * 1000000, 2) AS per_million
FROM (
  SELECT number, max(timestamp) AS ts,
    countDistinct(if(hash != repeat('\0', 66), hash, NULL)) AS hashes,
    max(is_deleted) AS has_deleted
  FROM matic_raw_blocks_v3
  WHERE hash != repeat('\0', 66)
  GROUP BY number
)
GROUP BY year
ORDER BY year

FAQ

How far back does Goldsky's data go?
To genesis for all 7 chains in this post. For Solana, set start_block: 0 to start at the first slot.

Does Goldsky have historical data for more chains?
Yes. Turbo pipelines have mainnet datasets for 96 chains, listed on Supported networks (opens in a new tab). A source with start_at: earliest starts from genesis (Sources overview (opens in a new tab)). Two sources start later: Hypercore (opens in a new tab) on January 1, 2026, and NEAR (opens in a new tab) on about February 20, 2026.

Do I need to handle reorgs in a historical download?
Yes, on chains that reorg. Polygon PoS and BNB Smart Chain reorged often until their 2025 upgrades, and Ethereum still does. Keep one block per block number before you use the data.

How much does a full historical backfill cost?
It depends on the number of events written. A full Ethereum block history costs about $253 in sink fees at the published rates.

How can someone get this data from Goldsky?
A Turbo pipeline with start_at: earliest streams full history into Postgres, ClickHouse, or S3. The Feeds API returns block ranges without a pipeline.

© Endless Sky Inc. All rights reserved.

PrivacyTermsSecurity

System status