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
| Method | Archive use |
|---|---|
eth_getLogs | Historical event backfills over explicit block ranges. |
eth_call | Historical contract reads with an explicit block number or hash. |
eth_getBalance | Historical account balances. |
eth_getStorageAt | Historical storage-slot reads. |
eth_getCode | Historical contract bytecode reads. |
eth_getProof | Historical account and storage proof reads. |
Range strategy
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.