Historical data access depends on the depth and shape of data your application needs.

Common choices

NeedRecommended source
Recent blocks, transactions, receipts, and logsJSON-RPC methods from RPC Providers
Contract event historyeth_getLogs for bounded ranges, or an indexer for larger scans
Token balances, transfers, and derived datasetsIndexers
Full historical state or archive readsArchive Data Setup

RPC guidance

Use bounded ranges for log scans and paginate long jobs. The documented EVM JSON-RPC profile caps eth_getLogs at 10000 blocks and 10000 returned logs per request. If your app repeatedly rebuilds derived state from raw logs, move that workload to an indexer.

Archive data

Archive nodes retain full historical application state with pruning = "nothing", discard_abci_responses = false, tx_index.indexer = "kv", and EVM enable-indexer = true. A full archive node must replay from genesis; state-sync snapshots are useful for fast node bootstrap but do not provide pre-snapshot historical state. Use Archive Data Setup for operator configuration details.