Skip to content

Benchmarks

How far back each provider serves

Every other measurement on this site is taken at the chain head, which is the easy case — every provider serves it competently. They differ at depth, and depth is what somebody choosing between a free tier and an archive plan is actually choosing between.

The ladder

Five rungs — a thousand blocks back, then ten, a hundred, a million and five million — asked in three ways. Fixed rungs rather than a search for the exact boundary: the exact boundary moves with the head every block and means nothing to a reader, while an order of magnitude is the answer and makes two providers directly comparable.

24 results

Depth reached by each endpoint, per kind of query
ProviderAsked forReaches back1k · 10k · 100k · 1M · 5MWhere it stopped
1RPCBlock4.6 months1M back1k back: answered10k back: answered100k back: answered1M back: answered5M back: failedat 5Mprovider returned HTTP 503
1RPCLogs3 hoursat least 1k back1k back: answered10k back: not measured100k back: not measured1M back: not measured5M back: not measureddeeper than this ladder reaches
1RPCState14 days100k back1k back: answered10k back: answered100k back: answered1M back: declined5M back: declinedat 1Mhistorical state c2b62fe6e3f8ab8e27fddd44993c7abce8194d7ce7eb4d00cd4ed0bebe25e8b9 is not available
Blast APIBlock3 hoursat least 1k back1k back: answered10k back: not measured100k back: not measured1M back: not measured5M back: not measureddeeper than this ladder reaches
Blast APILogs4.6 monthsat least 1M back1k back: answered10k back: answered100k back: answered1M back: answered5M back: not measureddeeper than this ladder reaches
Blast APIState1.9 yearsat least 5M back1k back: answered10k back: answered100k back: answered1M back: answered5M back: answereddeeper than this ladder reaches
dRPCBlock1.9 yearsat least 5M back1k back: answered10k back: answered100k back: answered1M back: answered5M back: answereddeeper than this ladder reaches
dRPCLogs1.9 yearsat least 5M back1k back: answered10k back: answered100k back: answered1M back: answered5M back: answereddeeper than this ladder reaches
dRPCState1.9 yearsat least 5M back1k back: answered10k back: answered100k back: answered1M back: answered5M back: answereddeeper than this ladder reaches
MerkleBlock33 hoursat least 10k back1k back: answered10k back: answered100k back: not measured1M back: not measured5M back: not measureddeeper than this ladder reaches
MerkleLogsnot measured1k back: not measured10k back: not measured100k back: not measured1M back: not measured5M back: not measuredrate limited or refused outright
MerkleStatenot measured1k back: not measured10k back: not measured100k back: not measured1M back: not measured5M back: not measuredrate limited or refused outright
MEV BlockerBlock1.9 yearsat least 5M back1k back: answered10k back: answered100k back: answered1M back: answered5M back: answereddeeper than this ladder reaches
MEV BlockerLogs1.9 yearsat least 5M back1k back: answered10k back: answered100k back: answered1M back: answered5M back: answereddeeper than this ladder reaches
MEV BlockerState1.9 yearsat least 5M back1k back: answered10k back: answered100k back: answered1M back: answered5M back: answereddeeper than this ladder reaches
NodeRealBlock1.9 yearsat least 5M back1k back: answered10k back: answered100k back: answered1M back: answered5M back: answereddeeper than this ladder reaches
NodeRealLogs1.9 yearsat least 5M back1k back: answered10k back: answered100k back: answered1M back: answered5M back: answereddeeper than this ladder reaches
NodeRealState1.9 yearsat least 5M back1k back: answered10k back: answered100k back: answered1M back: answered5M back: answereddeeper than this ladder reaches
PublicNodeBlock1.9 yearsat least 5M back1k back: answered10k back: answered100k back: answered1M back: answered5M back: answereddeeper than this ladder reaches
PublicNodeLogsnot measured1k back: not measured10k back: not measured100k back: not measured1M back: not measured5M back: not measuredrate limited or refused outright
PublicNodeStatenot measured1k back: not measured10k back: not measured100k back: not measured1M back: not measured5M back: not measuredrate limited or refused outright
TenderlyBlock1.9 yearsat least 5M back1k back: answered10k back: answered100k back: answered1M back: answered5M back: answereddeeper than this ladder reaches
TenderlyLogs1.9 yearsat least 5M back1k back: answered10k back: answered100k back: answered1M back: answered5M back: answereddeeper than this ladder reaches
TenderlyState1.9 yearsat least 5M back1k back: answered10k back: answered100k back: answered1M back: answered5M back: answereddeeper than this ladder reaches
Take it awayCSVdepth ladderJSONdepth ladderevery endpoint and rung, not only the filtered view

Why three questions, not one

Block

A block header at that height. The cheapest thing that proves the block is still held.

State

An account balance at that height. What a pruned node cannot answer even while it still holds the block — and the single sharpest divide between an archive tier and a free one.

Logs

A ten-block log range, filtered to one contract. Where free tiers impose caps that have nothing to do with retention.

A node can keep every block header and no historical state — BNB Chain’s own public endpoint answers about a block five million back and says missing trie node for a balance a thousand back. Asking one question and reporting it as depth would miss that entirely.

How to read this

It is a capability, not a benchmark

The question is whether the endpoint holds the history, not how fast it returns it. It runs every six hours rather than every minute, and its timings are kept out of the latency figures — so no deliberately expensive query moves a percentile anywhere on this site.

Depth is the only variable

Every query carries the same address and topic filter the head-adjacent scenarios use. Unfiltered, a log range returns more at a busy depth than a quiet one, and a provider refusing on result size would be recorded as refusing on age.

Reaching the last rung is not a limit

An endpoint that answered at five million blocks has a limit deeper than this ladder goes. It is reported as reaching five million, never as stopping there.

An ambiguous refusal is not a finding

Rate limiting, and a bare 401 or 403, are recorded as not measured. They can mean the provider does not serve that depth, or that we asked too often, and those are not distinguishable from here — so nothing is claimed from either. The rest of the method

How far back an endpoint will answer, in the chain's own unit — blocks on an EVM chain, slots on Solana. A capability rather than a performance measurement: it asks whether the endpoint holds the history, not how fast it returns it, so it runs every six hours rather than every minute and its timings never enter a latency percentile. Three kinds are asked separately because providers differ on each. A node can keep every block header and no historical state; a free tier can serve state and cap log ranges. Every query uses the same address and topic filter the head-adjacent scenarios use, so depth is the only variable — an unfiltered log range returns more at a busy depth than a quiet one, which reads as a limit that is really a result size. Nothing is claimed from an ambiguous refusal. Rate limiting, and a bare 401 or 403, are recorded as not measured rather than as a limit: they can mean the provider does not serve that depth, or that it was asked too often, and those are not distinguishable from here.