Skip to main content
This guide shows you how to configure your node to run as an archive node. Archive nodes store the complete history of the blockchain, including all historical states.

Overview

Archive nodes maintain the entire state history of the blockchain, allowing you to query any historical state at any block height. This is useful for:
  • Block explorers that need to provide historical data
  • Analytics and data analysis applications
  • Services that need to query historical state
  • Debugging and auditing purposes
Archive nodes use execution-layer sync but configure the execution client to retain all historical state data instead of pruning it.
Historical proofs are a lighter-weight alternative to a full archive node when you only need cryptographic state proofs (eth_getProof) at historical blocks — the typical case is withdrawal proving and fault proof workloads. If you need historical execution (eth_call, debug_trace*) or arbitrary historical state queries, you still need a full archive node. See the historical proofs config.

Requirements

  • OP Mainnet: Requires the bedrock datadir
  • Other OP Stack networks: No datadir required
  • Storage: Archive nodes require significantly more disk space than regular nodes (several terabytes for OP Mainnet)
  • Sync time: Archive sync with execution-layer mode is faster than full block-by-block execution

Configuration

Each section below shows the full set of flags needed on both op-node and your chosen execution client to run as an archive node. The op-node flag --syncmode=execution-layer is required in all cases and is not the default — it must be explicitly configured.

op-reth

op-reth retains full state when run without pruning flags, so the standard op-node + op-reth configuration already produces an archive node. Set on op-node:
--syncmode=execution-layer
Do not pass any --prune.* flags to op-reth.

Nethermind

Set on op-node:
--syncmode=execution-layer
Enable archive mode on Nethermind using the archive network configuration:
--config op-mainnet_archive
Replace op-mainnet_archive with the appropriate archive configuration for your network (e.g., op-sepolia_archive for OP Sepolia).

op-geth

op-geth reaches end-of-support on 2026-05-31 and will not support the L1 Glamsterdam hardfork. New deployments should use op-reth. See the op-geth deprecation notice for the full migration plan.
Set on op-node:
--syncmode=execution-layer
Set on op-geth:
--syncmode=full
--gcmode=archive
Both flags are not the default settings and must be explicitly configured. The --syncmode=full flag ensures every block is executed, and --gcmode=archive disables state pruning.

How archive sync works

With execution-layer sync mode enabled:
  1. Initial sync: The node downloads block headers and data through the P2P network
  2. Block execution: The node executes every block in the chain to build the complete state history
  3. State retention: Unlike regular nodes, archive nodes never prune historical state data
  4. Faster than legacy: While still executing all blocks, this is faster than the legacy consensus-layer sync because block data is retrieved via P2P instead of being derived from L1

Storage considerations

Archive nodes require substantial storage:
  • OP Mainnet: Several terabytes and growing
  • Other networks: Varies by network age and activity
  • Growth rate: Storage requirements increase continuously as new blocks are added
  • Recommendation: Use fast SSD storage for optimal performance

Next steps