Bitcoin RPC vs Indexed API: Choosing the Right Layer for Your Application
When you need Bitcoin data in your application, you have two fundamental options: query a node's JSON-RPC API directly, or use an indexed API built on top of the blockchain data.
What Bitcoin RPC provides
The getblock, gettransaction, and getrawtransaction methods return exactly what the node has: raw block data, transaction bytes, and current UTXO state.
This is the source of truth. For consensus-level work, signature validation, or anything requiring the raw Bitcoin wire format, RPC is the right layer.
The limitations: no indexing by address, no fee calculations, no mempool state aggregation. Every query is point-in-time against the node's current state.
What indexed APIs provide
Indexed APIs pre-process raw blockchain data into queryable, domain-specific formats:
- Fee recommendations aggregated from multiple mempool snapshots
- Block data delivered in order with reorg protection
- (Coming soon) Address history, balance lookups, protocol events
The trade-off: you trust the indexer's correctness and work with their schema - not raw bytes.
The stack
Your application
↑
Indexed APIs (fees, blocks, protocol data) ← OverBlock
↑
Nodes (Bitcoin Core, Erigon…)
↑
Blockchain
Decision framework
| Use case | Approach |
|---|---|
| Consensus client or validation tool | RPC direct |
| Fetch a specific transaction by txid | RPC direct |
| Backfill 880k blocks for an indexer | Streaming API |
| Display fee recommendations in a wallet | Indexed API |
| Protocol-specific analytics | Indexed API |
Most product teams need indexed APIs. Most protocol or infrastructure teams need raw RPC. Some need both.
→ OverBlock data apps cover the indexed API layer.