Skip to content
datastore.sh

Blockchain Datasets: A Practical Guide to Historical On-Chain Data for Analytics, AI and Research

What is a blockchain dataset? Learn how raw blockchain data, RPC, APIs, warehouses and versioned Parquet datasets differ, and how to choose reliable historical on-chain data for analytics, AI and research.

Data Platform13 min read

A blockchain is public. That does not mean its history is immediately ready for analysis.

On-chain data begins as blocks, transactions, instructions, logs and state changes. To answer practical questions—such as “which wallets first bought a token?”, “how much DEX volume occurred last quarter?” or “can I train a model without future leakage?”—you need a dataset with defined records, documented fields and known coverage.

This guide explains what blockchain datasets are, how they differ from RPC and APIs, what a good historical dataset should include, and how to choose data for analytics, quantitative research and machine learning.

Quick answer: what is a blockchain dataset?

A blockchain dataset is an organized, queryable representation of historical on-chain information. It can contain raw blocks and transactions, decoded protocol events, account state, market data or derived analytical tables.

The quality of a dataset depends on more than how many rows it has. You need to know:

  • what chain and exact time/slot range it covers;
  • what one row represents;
  • whether records are raw, decoded or derived;
  • how protocol upgrades and corrections are handled;
  • how duplicates and gaps are represented;
  • how the files and schema are versioned;
  • whether you can reproduce a result from the same input.

Blockchain data is not one thing

“Blockchain data” can refer to very different layers.

Data layerExampleBest for
BlockBlock header, time, validator, transaction listChain-level auditing and ordering
Raw transactionSignature, account keys, instruction bytes, logsCustom decoding and forensic work
Execution metadataToken balances, inner instructions, fees, errorsUnderstanding what executed
Decoded protocol eventSwap, borrow, NFT mint, liquidationProtocol analytics
State/history tablePool reserves, token holders, order bookMarket and state analysis
Derived datasetOHLCV, wallet label, PnL, feature tableA specific analytical product

Each layer can be valid. Problems begin when a provider calls everything “transaction data” without saying which layer it actually delivers.

For example, a raw Solana transaction may contain an aggregator instruction, several inner AMM instructions and multiple token transfers. A decoded DEX swap is a specific interpretation of that execution. A daily OHLC candle is an additional aggregation. They should not be treated as interchangeable.

RPC, API or blockchain dataset: what is the difference?

These tools overlap, but they are built for different jobs.

RPC: request/response access to the chain

An RPC endpoint lets software request a transaction, account state, block or other chain information. It is essential for application development, transaction submission and small targeted lookups.

Use RPC when you need:

  • the current state of an account;
  • a known transaction by hash/signature;
  • a small amount of history;
  • to submit or simulate a transaction.

RPC is usually not the ideal way to repeatedly scan billions of old records. Each historical research run can otherwise become a long sequence of network calls, decoding and pagination.

API: a provider’s query interface

An indexed API packages data into convenient endpoints such as wallet transactions, token transfers or trades. This is useful for product backends and interactive queries.

Use an API when you need:

  • a current/recent answer quickly;
  • a small number of scoped queries;
  • provider-managed indexing;
  • an application-serving interface.

Check its retention, rate limits, pagination rules and export options before treating it as your complete historical store.

Dataset: files or tables you can retain and query

A bulk dataset gives you the underlying historical records as files/tables—often partitioned by date and designed for analytical engines. You can keep it, load it into your warehouse, and run repeated scans without making the same API request every time.

Use a dataset when you need:

  • large historical analysis;
  • repeated backtests or feature-generation runs;
  • model-training inputs;
  • an internal data platform;
  • reproducible research;
  • control over your own compute and storage.
RequirementBetter starting point
Current account balanceRPC
Send a transactionRPC
Display recent wallet activity in an appAPI/indexer
Query a known protocol over months/yearsBulk dataset
Train models on historical behaviorBulk dataset/warehouse
Build a universal indexerRaw archive + decoder
Audit raw chain executionRaw transaction/archive data

Raw, decoded and derived data

The most important dataset question is: what transformations have already happened?

Raw blockchain data

Raw data preserves the chain’s native form: blocks, transactions, instruction payloads, logs and state changes.

It is right for:

  • building a custom indexer;
  • verifying a provider’s interpretation;
  • supporting unknown programs;
  • forensic/audit workflows;
  • deriving a novel data product.

Its trade-off is that you have to do the decoding, normalization and version management yourself.

Decoded blockchain data

Decoded data converts program-specific actions into typed records. Instead of parsing generic instruction bytes, you may receive rows such as:

text
timestamp
transaction_id
pool
user
input_mint
output_mint
input_amount
output_amount
fee

This is usually the right starting point for protocol research. It removes repeated parsing work, but it must remain traceable to the underlying chain transaction and instruction.

Derived blockchain data

Derived data applies another layer of policy or calculation: USD prices, OHLCV, wallet labels, PnL, market caps, token categories or model features.

Derived data can be useful, but it needs stronger documentation because it contains assumptions. Ask how the price was built, how missing data is treated, what the label means and whether the calculation uses future information.

What makes a blockchain dataset reliable?

Reliability is a set of concrete properties, not a marketing adjective.

1. Clear coverage

Every dataset should state its coverage at the table level:

  • earliest and latest timestamp/slot;
  • chain/network;
  • protocols/program versions included;
  • whether coverage is continuous or has gaps;
  • whether failed transactions are retained;
  • differences between tables.

“One year of blockchain data” is incomplete if one table begins a year ago and another begins last month.

2. A documented schema

You should be able to inspect columns, types, definitions and sample rows before committing to a large download or purchase.

This is particularly important for ambiguous names:

  • amount may be an input, output, fee or balance delta;
  • timestamp may be a chain time, indexer receipt time or file time;
  • user may be a signer, token-account owner, sender or recipient;
  • price may be an observed trade price, an oracle price or a derived USD estimate.

3. Stable identifiers and lineage

A decoded row should retain enough keys to trace it back to the blockchain. Depending on the chain, that may include:

  • transaction hash/signature;
  • block number/slot;
  • transaction and instruction index/path;
  • program/contract address;
  • event index;
  • source table and schema version.

Lineage lets you audit a surprising result, correct a decoder and join related records safely.

4. Explicit delivery semantics

Streaming and batch data can replay records. A good provider explains whether data is exactly once, at least once or subject to corrections, and it documents a business key/deduplication approach.

Never assume that one transaction hash is one business event. A transaction can emit multiple events, and a program event can occur inside an inner instruction.

5. Versioning and corrections

Historical data can be corrected when a decoder bug, protocol upgrade or coverage issue is discovered. Silent in-place changes make prior research impossible to reproduce.

A reliable delivery model publishes a new version, states what changed and leaves a durable record of the earlier version used in past research.

6. Integrity information

A manifest and per-file checksums let you confirm that a delivery is complete and unchanged. This is routine practice for serious research and data engineering—not an optional extra.

Why Parquet is common for blockchain datasets

Blockchain history becomes large quickly. For analytics, an open columnar format such as Apache Parquet is often a practical choice.

The Apache Parquet project describes Parquet as an open-source, column-oriented file format designed for efficient storage and retrieval, with compression and encoding for bulk data.

That matters when a table has many fields but a query needs only a few.

text
All fields:      signature, logs, accounts, amounts, fees, pool state, metadata …
Query requires:  timestamp, wallet, mint, amount

With a columnar dataset, an analytical engine can avoid reading many unrelated columns. Parquet also works across common tools such as DuckDB, Polars, ClickHouse, Spark, Snowflake and BigQuery.

Parquet is not a transaction-serving database. It is most useful for bulk scans, aggregations, feature pipelines and warehouse loading. For frequent row-level updates or interactive point reads, an API or database layer may be better.

How to use a blockchain dataset

The right data architecture is usually simple at first:

text
versioned Parquet files
→ local query engine or warehouse
→ validated analytical tables
→ research, dashboard, model or application output

Query locally with DuckDB

For an exploratory query, you can query Parquet directly:

sql
SELECT
  mint,
  COUNT(*) AS trades,
  COUNT(DISTINCT user) AS traders
FROM read_parquet('solana/pumpfun/trade_event/date=*/part-*.parquet')
WHERE is_buy = TRUE
GROUP BY mint
ORDER BY trades DESC
LIMIT 100;

The exact table names and fields should come from the delivered schema. The point is that the analysis runs over files you control rather than being constrained to a provider’s query endpoint.

Load into a warehouse

For team-wide or recurring workloads, load the files into ClickHouse, Snowflake, BigQuery, Spark or another warehouse. Keep source files immutable and create derived models separately:

text
raw delivered files
→ normalized protocol tables
→ analytics/feature tables
→ dashboards and models

This separation makes it much easier to re-run transformations when a schema changes or a business definition evolves.

Blockchain data for analytics

Analytical questions often need protocol semantics rather than a raw transaction list.

Examples include:

  • DEX volume by pool or token;
  • wallet participation and retention;
  • liquidity added and removed;
  • token-launch cohorts;
  • lending borrows, repays and liquidations;
  • validator and staking activity;
  • cross-protocol user behaviour.

For each question, define the unit of observation before aggregating.

For example, Solana routing creates a common pitfall. A Jupiter user swap can execute across multiple underlying pools. You may count one user-facing routed swap or several pool-level legs, depending on the metric. Do not add both together as independent volume.

Blockchain data for machine learning

Machine learning benefits from datasets because feature logic usually changes more often than source history.

An ML pipeline may generate features such as:

  • trailing trade count and volume;
  • buy/sell imbalance;
  • unique wallet count;
  • pool-liquidity changes;
  • creator/wallet behaviour observed to date;
  • token age;
  • transaction frequency;
  • cross-protocol activity.

The non-negotiable rule is causality:

A feature used to make a historical prediction must use only information that was available at the prediction time.

If a feature uses tomorrow’s wallet label, end-of-day token state or a future price, the model is learning future information rather than an actionable relationship.

Use chronological train/validation/test splits, retain the exact dataset version used by each run, and record your feature code/version alongside it.

Blockchain datasets for backtesting

Backtesting needs more than a price series. A robust backtest needs:

  • a historical trading universe, including assets that failed;
  • ordered market/protocol events;
  • a point-in-time feature set;
  • venue/pool state sufficient for the execution model;
  • trading, network and protocol fees;
  • a model for slippage, latency and partial/no fills;
  • an exit rule that does not rely on future knowledge.

For a Pump.fun-to-PumpSwap strategy, that may mean joining token creation, bonding-curve trades, curve completion/migration and post-migration AMM data. A chart alone cannot establish when the venue transition occurred or which pool a token migrated into.

How to evaluate a blockchain dataset before buying or downloading it

Use this checklist.

QuestionWhy it matters
What exact network and time/slot range is included?Defines the population you can study
Are records raw, decoded or derived?Defines what you must build and what assumptions exist
Are schemas and sample rows available?Lets you verify field meaning before ingesting terabytes
Are program upgrades/versions handled?Prevents silent schema/semantic changes
Are failed transactions represented?Important for the interpretation of activity and execution
Are nested events/inner instructions retained?Needed for many protocol decoders
How are duplicates and replays handled?Prevents inflated counts and volume
Are data gaps documented?Prevents false continuity assumptions
Can records be traced to the chain?Supports auditability and debugging
Is the data versioned?Makes research reproducible
Is there a manifest and checksum?Lets you verify delivery integrity
Can you retain/query the files yourself?Avoids dependence on repeated API calls

Common blockchain-dataset mistakes

Mistake 1: Choosing based only on row count

A large raw transaction count says little about protocol coverage, schema quality or whether the data answers your question.

Mistake 2: Confusing raw and decoded data

Raw data gives flexibility but requires engineering. Decoded data is faster for known protocols but must be documented and traceable.

Mistake 3: Treating an API response as an immutable research input

API answers can change with indexing, retention or provider corrections. Export and version the data you actually used for a research run.

Mistake 4: Ignoring coverage differences between tables

An overall dataset window may hide that the table needed for a specific join starts much later.

Mistake 5: Assuming one transaction equals one economic event

Transactions can contain several instructions, inner events and token movements. Use protocol-specific semantics and chain lineage.

Mistake 6: Treating current labels as historical facts

Current token categories, wallet scores or market caps can leak future information into historical analysis.

Mistake 7: Skipping integrity checks

At minimum, validate files against their manifest/checksums and check dates, row counts and null rates before building a research product on top.

Where can you get blockchain datasets?

You can build them from an archive node and your own indexer, consume an API/warehouse, use open datasets where available, or obtain prepared historical files for the protocols you need.

datastore.sh provides historical Solana and Hyperliquid blockchain datasets as typed, versioned Parquet. The catalog includes decoded protocol instructions, events, state and market tables for products such as Pump.fun, PumpSwap, Jupiter, Raydium, Meteora, Orca and Hyperliquid. Each dataset page documents available tables, schemas and delivery details, so coverage should be evaluated at the protocol/table level before use.

Frequently asked questions

What is a blockchain dataset?

A blockchain dataset is a structured collection of historical on-chain records. It can contain raw blocks/transactions, decoded protocol events, historical state or derived analytical tables.

Where can I download blockchain data?

You can obtain data through archival infrastructure, blockchain APIs, data warehouses, open datasets or downloadable protocol-specific datasets. The right option depends on whether you need raw chain evidence, live application queries or repeated large-scale analysis.

What is the difference between blockchain data and an RPC?

RPC is a request/response interface for interacting with and retrieving chain information. A dataset is an organized historical input designed to be retained, queried and analysed at scale.

Is Parquet good for blockchain data?

For analytical workloads, yes. Parquet is columnar, compressed and supported by many query engines. It is useful when you repeatedly scan selected fields across large historical tables. It is not a replacement for a transaction-submission RPC or a low-latency serving database.

Can I use blockchain datasets for machine learning?

Yes. They are well suited to repeatable feature generation and training, provided the pipeline enforces strict point-in-time causality and retains data/code versions for reproducibility.

Can I use blockchain datasets for trading backtests?

Yes, but you need more than historical prices. Include the tradeable universe, ordered events, venue state, fees and a realistic execution model. Do not let later outcomes enter historical features.

Does datastore.sh provide blockchain datasets?

Yes. datastore.sh provides downloadable historical blockchain datasets for Solana and Hyperliquid as typed, versioned Parquet files. You can inspect the available protocol schemas and samples before choosing a dataset and coverage window.

The key takeaway

The blockchain may be public, but a useful dataset is engineered.

Choose the data layer that matches the question, verify its coverage and semantics, retain lineage back to the chain, and version every file set used in serious analysis. That turns on-chain history from a pile of raw records into reliable infrastructure for analytics, AI and research.

Explore historical blockchain datasets on datastore.sh to browse documented Solana and Hyperliquid datasets in Parquet.

Data Platform

datastore.sh engineering

The team that operates capture, decoding, and reconciliation for every dataset in the catalog.