solarchive is a project to archive Solana's public transaction data, and make it accessible in ergonomic formats for developers, researchers, and the entire Solana community.
Today we are publishing datasets in parquet format for snapshots of tokens, accounts, and all transaction history for November 2025.
We are also working on HuggingFace datasets to facilitate machine learning research, and on historical data going back to 2020.
But hosting hundreds of terabytes of data isn't free. Storing only 2025 will cost us nearly $10,000 in storage fees! So we need your help to make this a reality. Your donation will help us cover infrastructure costs, data engineering costs, and more!
If you're an enterprise needing expert support you can get in touch.
Here's a sample of what's in the archive, queried live with DuckDB-WASM:
Initializing...
SELECT
block_slot,
CONCAT(SUBSTRING(block_hash, 1, 16), '...') as block_hash,
block_timestamp,
CONCAT(SUBSTRING(recent_block_hash, 1, 16), '...') as recent_block_hash,
CONCAT(SUBSTRING(signature, 1, 16), '...') as signature,
index,
fee / 1e9 as fee_sol,
status,
err,
compute_units_consumed,
accounts,
log_messages,
balance_changes,
pre_token_balances,
post_token_balances
FROM read_parquet('https://data.solarchive.org/txs/2025-11-26/000000000281.parquet')
WHERE len(balance_changes) >= 2
ORDER BY block_timestamp DESC
LIMIT 5 Ready
SELECT
block_slot,
CONCAT(SUBSTRING(block_hash, 1, 16), '...') as block_hash,
block_timestamp,
CONCAT(SUBSTRING(tx_signature, 1, 16), '...') as tx_signature,
retrieval_timestamp,
is_nft,
CONCAT(SUBSTRING(mint, 1, 24), '...') as mint,
CONCAT(SUBSTRING(update_authority, 1, 16), '...') as update_authority,
name,
symbol,
uri,
seller_fee_basis_points,
creators,
primary_sale_happened,
is_mutable
FROM (
SELECT DISTINCT ON (name) *
FROM read_parquet('https://data.solarchive.org/tokens/2025-12/000000000000.parquet')
WHERE name IS NOT NULL AND name != ''
ORDER BY name, block_slot DESC
)
ORDER BY block_slot DESC
LIMIT 5 Ready
SELECT
block_slot,
CONCAT(SUBSTRING(block_hash, 1, 16), '...') as block_hash,
block_timestamp,
CONCAT(SUBSTRING(pubkey, 1, 24), '...') as pubkey,
CONCAT(SUBSTRING(tx_signature, 1, 16), '...') as tx_signature,
retrieval_timestamp,
executable,
lamports / 1e9 as balance_sol,
CONCAT(SUBSTRING(owner, 1, 24), '...') as owner,
rent_epoch,
program,
space,
account_type,
is_native,
CONCAT(SUBSTRING(mint, 1, 24), '...') as mint,
state,
token_amount,
token_amount_decimals,
program_data,
authorized_voters,
CONCAT(SUBSTRING(authorized_withdrawer, 1, 16), '...') as authorized_withdrawer,
prior_voters,
CONCAT(SUBSTRING(node_pubkey, 1, 16), '...') as node_pubkey,
commission,
epoch_credits,
votes,
root_slot,
last_timestamp,
data
FROM (
SELECT DISTINCT ON (owner) *
FROM read_parquet('https://data.solarchive.org/accounts/2025-12/000000000000.parquet')
ORDER BY owner, lamports DESC
)
ORDER BY lamports DESC
LIMIT 5 Transactions are archived as Parquet files, partitioned by day. You can download raw data with any HTTP client:
| Query | URL |
|---|---|
| All transactions for Nov 1, 2025 | https://data.solarchive.org/txs/2025-11-01/*.parquet |
| Account snapshots for Feb, 2023 | https://data.solarchive.org/accounts/2023-02/*.parquet |
| Token snapshots for Sep, 2024 | https://data.solarchive.org/tokens/2024-09/*.parquet |
| Specific file | https://data.solarchive.org/txs/2025-11-01/000000000014.parquet |
Each file contains vote-filtered transactions in Parquet format. You can process the raw data directly - import into DuckDB, pandas, Spark, or any other analytics tool.
For programmatic access, use the index files to discover available data:
https://data.solarchive.org/index.json - Root index (all datasets)
https://data.solarchive.org/txs/index.json - List of available days with metadata
https://data.solarchive.org/txs/YYYY-MM-DD/index.json - File list for specific day
For schema documentation, see the schema files:
https://data.solarchive.org/schemas/solana/transactions.json https://data.solarchive.org/schemas/solana/accounts.json https://data.solarchive.org/schemas/solana/tokens.json datasets libraryYour support helps us ship these features faster! π
If you find this data useful, consider supporting the project:
Or send directly to:
Solana Name Service domain β’ Any amount appreciated