Skip to content

Archive reads

Use archive RPC access for historical EVM state and logs without unbounded scans.

Know when a request depends on historical data, so you can check coverage before you build on it and keep large historical jobs within timeouts and response limits. A request is an archive read when it asks for state, storage, code, balances, or event logs from older blocks.

Archive coverage varies by network; check the Archive column in Supported networks. Archive requests are heavier than current-state reads. They can cost more credits and are more likely to reach response-size, timeout, or plan limits.

Archive-sensitive methods

MethodArchive use
eth_getLogsHistorical event backfills over explicit block ranges.
eth_callHistorical contract reads with an explicit block number or hash.
eth_getBalanceHistorical account balances.
eth_getStorageAtHistorical storage-slot reads.
eth_getCodeHistorical contract bytecode reads.
eth_getProofHistorical account and storage proof reads.

Range strategy

Reads of older blocks need archive data and are heavier than current-state reads. Backfill history in narrow, deterministic ranges and persist progress after every successful range, so a retry repeats only one range.

Split historical work into narrow, deterministic ranges instead of one unbounded fromBlock to latest scan:

  • Filter by contract address and topic whenever possible.
  • Widen ranges only after observing response size and latency.
  • Persist progress after every successful range.
  • Retry a smaller range after a timeout or response-size error.

Backfill historical events applies this model to a resumable USDC Transfer backfill.

Next steps