All articles
clickhousesolanaanalyticsindexingsuperbanktritoncryptohousedatabuilders

ClickHouse on Solana: why analytics stacks keep landing here

How ClickHouse fits Solana data workloads: high insert rates, compression, analytical SQL over history. CryptoHouse, Triton Superbank, indexers via Geyser/Yellowstone/Goldsky, and what it is (and is not) good for.

devrels.xyz/a/208short link

ClickHouse shows up a lot in Solana data stacks. That is not because it replaces the ledger or the validator’s local RocksDB. It is because Solana produces a continuous stream of blocks and transactions, and many products need analytical access to that history: filters, aggregations, time ranges, dashboards — workloads where key-value history stores (classic BigTable-style layouts) get expensive and awkward.

This note is for builders choosing where to put Solana event data after it leaves the node: when ClickHouse is a good fit, who already runs it, and how it sits next to RPC and streaming.

Why the pairing shows up

Solana’s head is optimized for consensus and recent state. Long-term history is pruned off local disk into separate storage. Triton estimates hundreds of terabytes of historical block/tx data at ecosystem scale. Product questions then look like:

  • All swaps for a mint over 30 days, grouped by hour
  • Wallet activity and PnL-style joins across many programs
  • Leaderboards, volume, fee stats with low latency
  • Historical JSON-RPC that is not “fetch whole compressed block, parse client-side”

ClickHouse is an open-source columnar OLAP database built for high insert throughput, heavy compression, and fast scans/aggregations over large tables. That matches “append Solana events forever, query them like a warehouse” better than a primary key-value archive designed for point lookups of full blocks.

Workload shape vs store type
NeedTypical store
Live account state, recent slots on a nodeValidator / RPC local RocksDB (and friends)
Point getTransaction by signature (legacy path)History KV (e.g. BigTable-shaped) or Superbank-style layer
Aggregations, multi-filter history, product analyticsClickHouse (or similar OLAP)
Realtime fan-out of slots/accountsYellowstone gRPC / Geyser

Who uses it in the Solana ecosystem

Public examples (verify details against each project)
ProjectRole of ClickHouse
CryptoHouse (ClickHouse; data often via partners such as Goldsky)Free public SQL over crypto datasets; UI includes a solana schema among others
Triton SuperbankFull historical ledger rebuild on ClickHouse + Solana-compatible history RPC. Triton publishes large speedups vs public BigTable paths (e.g. getSignatureStatuses ~38×, getSignaturesForAddress ~5×, getTransaction ~3× at P50 in their architecture write-up)
Helius (historical)Large-scale archival analytics on ClickHouse has been part of ecosystem lore; Helius has also moved some storage choices toward specialized paths (e.g. RocksDB for certain roles). Treat “Helius + ClickHouse” as prior/partial, not a permanent architecture claim
Bullet and other DeFi appsProduct analytics: trades, volume, leaderboards — often ClickHouse Cloud or self-hosted
Indexers / internal data teamsDEX fills, token transfers, holder graphs streamed in via Geyser plugins, Yellowstone, or hosted pipelines (Goldsky, etc.)

Superbank is open source under the Solana RPC org: github.com/solana-rpc/superbank. CryptoHouse artifacts: github.com/ClickHouse/CryptoHouse.

How data usually gets in

text
Validator / RPC node
        │
        ├─ Geyser plugin ──────────────┐
        ├─ Yellowstone gRPC stream ────┼──► transform / batch ──► ClickHouse
        └─ Hosted indexer (e.g. Goldsky)┘

ClickHouse serves:
  • SQL dashboards / notebooks
  • App backends (aggregates, search)
  • Optional history RPC façade (Superbank pattern)

You keep a real RPC (or Light/DAS stack) for current accounts and submission. ClickHouse sits beside that for history and analytics. Superbank’s pitch is specifically: keep JSON-RPC shapes builders already use, but back history with columnar tables sorted for those query patterns.

Common Solana use cases

  • DEX and launchpad analytics (volume, unique traders, fee totals)
  • Token transfer and holder distributions over time
  • Wallet timelines, cohort, and “smart money” style scans
  • Internal monitoring and anomaly queries over program logs
  • Historical methods that are painful when every hit inflates a full block blob

What ClickHouse is not

Limits
Not a replacement for…Why
Consensus / validator storeWrong consistency and write model for fork choice
Primary OLTP app DB for user profilesDifferent sweet spot; use Postgres/etc. for that
“Free infinite history without ops”You still design schema, retention, ingest lag, and cost
Decoded program semantics out of the boxYou (or an indexer) must decode instructions/logs into tables

Practical starting points

If you want to try it this week
GoalStart here
Explore public Solana tables in SQLcrypto.clickhouse.com
History RPC without building ingest yourselfTriton ledger queries / Superbank docs and self-host guide
Own pipelineYellowstone or Geyser → queue → ClickHouse MergeTree tables partitioned by day/slot
Schema ideasCryptoHouse GitHub queries and Superbank DDL in their repos

Resources

Summary

ClickHouse is a strong default for Solana analytics and historical query layers: high ingest, compression, and SQL over large event tables. CryptoHouse makes public exploration easy; Superbank shows the same engine under production history RPC. Keep a normal RPC path for live state and tx send; put ClickHouse next to it for the questions that scan billions of rows.

Keep reading

Get new articles in your inbox

Technical deep-dives on Solana tooling, infrastructure, and ecosystem. No noise.

ClickHouse on Solana: why analytics stacks keep landing here | devrels.xyz