Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.optimism.io/llms.txt

Use this file to discover all available pages before exploring further.

The execution client provides the EVM runtime and transaction processing for your OP Stack node.
op-geth reaches end-of-support on 2026-05-31 and will not support the L1 Glamsterdam hardfork. Chains still running op-geth at activation will not follow the canonical chain. Migrate to op-reth — see the op-geth deprecation notice.
Always run your execution client and consensus client in a 1:1 configuration. Don’t run multiple execution clients behind one consensus client, or vice versa.

Execution clients

op-reth is a Rust-based execution client and the primary supported path for OP Stack nodes going forward.

Minimal configuration

op-reth node \
  --chain optimism \
  --rollup.sequencer https://mainnet-sequencer.optimism.io \
  --http \
  --ws \
  --authrpc.port 9551 \
  --authrpc.jwtsecret /path/to/jwt.hex

Historical proofs

Permissionless chains need ~28 days of historical state for withdrawal proving. Follow the Running op-reth with Historical Proofs tutorial to set up the --proofs-history (v2) store on op-reth v2.2.3 or later.

Complete reference

JWT secret

The execution client and consensus client communicate over the Engine API using a shared JWT secret:
openssl rand -hex 32 > jwt-secret.txt
This file must be identical for both your execution client and your consensus client.

op-geth (legacy — end of support 2026-05-31)

op-geth support ends on 2026-05-31 and will not support the Glamsterdam hardfork. For new deployments, use op-reth (above). See the op-geth deprecation notice for the migration plan.
op-geth is a minimal fork of go-ethereum optimized for the OP Stack.
Although the Docker image is called op-geth, the actual binary is still named geth to minimize differences from go-ethereum. See the op-geth diff viewer for details.

Minimal configuration

geth \
  --datadir=/data/optimism \
  --http \
  --http.addr=0.0.0.0 \
  --http.port=8545 \
  --http.api=eth,net,web3 \
  --authrpc.jwtsecret=/path/to/jwt-secret.txt \
  --op-network=op-mainnet \
  --rollup.sequencerhttp=https://mainnet-sequencer.optimism.io/ \
  --rollup.disabletxpoolgossip
Defaults: snap sync mode, no WebSocket server, no metrics.

OP Stack specific flags

  • --rollup.sequencerhttp: HTTP endpoint of the sequencer for transaction submission
  • --rollup.disabletxpoolgossip: Disables transaction pool gossip (for replica nodes)
  • --rollup.historicalrpc: Enables historical RPC endpoint for upgraded networks (OP Mainnet pre-bedrock archive nodes)

Complete reference

For all available configuration options, see the op-geth configuration reference.