Ethereum Classic’s full history is now in Google BigQuery as a public dataset anyone can query. classix-etc-data.crypto_ethereum_classic holds every block, transaction, log, token transfer and trace from genesis to the current head, and it stays current.
Why BigQuery
BigQuery is Google’s data warehouse. You write SQL, and it scans the tables across many machines and answers in seconds, with no servers to run yourself. The chain sits in it as ordinary tables of blocks, transactions, logs, token transfers and traces.
An archive node on its own has no query language. Each JSON-RPC call returns one block, one transaction or one account’s state at one height, and anything bigger means stitching millions of calls together yourself. The classic example is a token’s holders at a given block. A node can tell you one address’s balance at that block, if you already know the address, but it can’t list who held the token or how much each of them had without walking through every transfer since the token was created. By putting this data in BigQuery, we can answer that with one query over token_transfers, and anyone can run it without keeping a node synced.
The Earlier Dataset
In February 2019 Google added Ethereum Classic to its public BigQuery datasets, built by the blockchain-etl project. The announcement described how they stay current.
All datasets update every 24 hours via a common codebase, the Blockchain ETL ingestion framework (built with Cloud Composer, previously described here), to accommodate a variety of Bitcoin-like cryptocurrencies.
For ETC the updates stopped in late 2020. The last block in bigquery-public-data.crypto_ethereum_classic.blocks is 11,661,234, from 2020-11-22. The chain is past block 25.4 million now, so the second half of its history isn’t in there. That gap is what this dataset fills.
How to Use It
Anyone signed in to Google can query it from their own Cloud project, and queries bill to that project, with the first TiB each month free. It uses the same schema as Google’s crypto_ethereum, so queries written for Ethereum mainnet, including the awesome-bigquery-views collection, run against ETC once you change the dataset name.
SET @@dataset_project_id = 'classix-etc-data'; -- use the Classix project
SET @@dataset_id = 'crypto_ethereum_classic'; -- and its ETC dataset
SELECT DATE(block_timestamp) AS day, -- the calendar day of each transaction
COUNT(*) AS txs -- how many transactions fell on that day
FROM transactions -- every ETC transaction ever
WHERE block_timestamp >= TIMESTAMP_SUB(
CURRENT_TIMESTAMP(), INTERVAL 30 DAY) -- only the last 30 days
GROUP BY day -- one row per day
ORDER BY day -- oldest day first
What You Can Do With It
Anything that needs the whole chain in one place and SQL to ask questions of it. A few starting points:
- Network activity over time, from daily transactions and active addresses to gas used and fees paid.
- Mining, with block producers, pool concentration and rewards back to genesis.
- Tokens and contracts, covering transfer volumes, the most used contracts and new deployments.
- Following funds between addresses, for incident investigation or exchange flows.
- Supply and holder distribution, from the
balancestable. - Comparisons with Ethereum, since both chains share every block up to 1,920,000 and Google’s
crypto_ethereumuses the same schema. - Planning future upgrades against real usage, like working out how much an EIP-1559 base fee would raise at today’s fee levels. It’s not a lot.
How It’s Built
The data comes from two archive nodes that are part of Project Triforce. We read them over loopback with the Python ethereum-etl, the same tool that built the original dataset. One pipeline loads blocks, transactions, logs and token transfers. A second loads traces, contracts and tokens. Both check the chain every ten minutes and stay 30 blocks behind the head.
Loading the whole chain took two weeks, from 2026-09-24 to 2026-10-08, most of it spent tracing spam transactions and GasToken. Every table now covers the full history, balances included, and stays current from here on.
Thanks to Allen Day, Evgeny Medvedev and everyone who worked on blockchain-etl. This dataset stands on their schema and their tooling.
Key Exposure
This BigQuery effort was inspired by our research into quantum exposure. An address’s public key goes on-chain the first time it signs a transaction, and a large enough quantum computer, or a classical break of ECDSA, could work out the private key from it. One of the first things we wanted to know was how much ETC is held at addresses whose public keys are on-chain, grouped by the year each one last signed.
SET @@dataset_project_id = 'classix-etc-data'; -- use the Classix project
SET @@dataset_id = 'crypto_ethereum_classic'; -- and its ETC dataset
-- Step 1. Every address that has ever sent a transaction has revealed its
-- public key. Find each one and the last time it signed.
WITH last_signed AS (
SELECT from_address AS address, -- the address that sent the transaction
MAX(block_timestamp) AS last_signed -- the most recent time it sent one
FROM transactions -- every ETC transaction ever
GROUP BY from_address -- one row per sending address
)
-- Step 2. Look up how much ETC each of those addresses holds today, and add
-- it up by the year the address last signed.
SELECT
EXTRACT(YEAR FROM last_signed) AS last_signed_in, -- the year of its last transaction
COUNT(*) AS addresses, -- how many exposed addresses last signed that year
ROUND(SUM(eth_balance) / 1e18) AS etc_exposed -- their combined balance, from wei to whole ETC
FROM balances -- the current balance of every address
JOIN last_signed USING (address) -- keep only the addresses from step 1
WHERE eth_balance > 0 -- skip addresses that are already empty
GROUP BY last_signed_in -- one row per year
ORDER BY last_signed_in -- oldest year first
The result is one row per year, with how many exposed addresses still hold ETC and how much they hold. The same tables answer the follow-up questions.
- How much exposed ETC hasn’t moved in one, three or five years?
- How does the supply split between exposed, never exposed and held by contracts?
- How much of the exposed ETC sits in the top 10, 100 and 1,000 addresses?
- How much ETC is exposed through keys that only ever signed on Ethereum?
We ran these and more, and the first results are in a separate post, How Much ETH and ETC Sits Behind Exposed Public Keys.
We hope people enjoy this public good and use it to understand, explore, and protect Ethereum Classic.