Common choices
| Need | Recommended source |
|---|---|
| Recent blocks, transactions, receipts, and logs | JSON-RPC methods from RPC Providers |
| Contract event history | eth_getLogs for bounded ranges, or an indexer for larger scans |
| Token balances, transfers, and derived datasets | Indexers |
| Full historical state or archive reads | Archive Data Setup |
RPC guidance
Use bounded ranges for log scans and paginate long jobs. The documented EVM JSON-RPC profile capseth_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 withpruning = "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.