Back to Common Questions

RPC vs indexing — what's the difference?

Updated August 2026

RPC is the interface a blockchain node exposes for asking about specific, current state — a balance, a transaction, the latest block. Indexing is the process of extracting and reorganising chain data so you can query across history and aggregate it.

They are not competing options. Most applications use RPC for live lookups and writes, and an index for everything involving history, search, or aggregation.

When is RPC the right tool?

When you know exactly what you want and it concerns the present.

  • What is this address's current balance?
  • What is in block 19000000?
  • Did this transaction succeed?
  • Submitting a transaction to the network

These are point lookups. A node answers them quickly because it does not have to search.

When do you need an index?

When the question involves finding rather than fetching.

  • Every swap this wallet has made in the past year
  • Total volume by pool, by day
  • All wallets holding more than X of a token
  • A feed of every transfer of a token, as it happens

None of these map to an RPC call. Answering them over RPC means fetching a very large number of blocks and filtering client-side — which works in a script and fails in production.

RPCIndexing
Question shape"What is X right now?""Find everything matching Y"
Historical rangeOne block at a timeFull history
AggregationNoYes
Latency per queryLowLow, after indexing
Setup costNoneExtraction and transformation
Cost at scaleGrows with query volumePaid once during indexing

Why not just use RPC for everything?

Because the cost is in the wrong place. Every historical question re-reads the same blocks, so you pay repeatedly for data that has not changed since it was written. That is slow, expensive, and puts load on a node that was not designed as an analytics engine.

There is also data RPC simply does not expose well. Internal transactions, state changes, and balance changes are not in event logs, so a log-based approach cannot see them regardless of how many calls you make. Extraction methods that capture full execution detail can.

What does a typical architecture look like?

RPC for writes and live point lookups. An indexed store — Postgres, ClickHouse, a GraphQL API — for everything historical or aggregated. A streaming pipeline keeps the index current.

Substreams fills the last role: it processes full history in parallel and keeps streaming at the chain head, writing into whichever store you use.


Frequently asked questions

Does indexing replace my RPC provider? No. You still need RPC to submit transactions and read current state.

Can I index without running a node? Yes. Hosted endpoints provide indexed data without you operating infrastructure.

Is an archive node an index? No. An archive node stores full historical state but still exposes it through RPC — you can ask about any block, but you still cannot search across them.


Add an index without adding infrastructure — get an API key at thegraph.market, no personal information required.

Related: What is blockchain indexing? · Do I need to run a node to index blockchain data? · Polling vs streaming blockchain data