Skip to main content
The execution client provides the EVM execution environment and processes transactions. This guide covers configuration for the most popular execution client implementations.
Always run your execution client and consensus client in a one-to-one configuration. Don’t run multiple execution client instances behind one consensus client, or vice versa.

Execution clients

Choose the execution client that best fits your needs:

op-geth configuration

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

Minimumal configuration for op-geth:
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 
This will utilize primarily the default settings i.e. snap sync mode, no WebSocket server, no metrics, etc.

OP Stack specific flags

  • --rollup.sequencerhttp: HTTP endpoint of the sequencer for transaction submission
  • --rollup.disabletxpoolgossip: Disables transaction pool gossip (recommended for replica nodes)
  • --rollup.historicalrpc: Enables historical RPC endpoint for upgraded networks (OP Mainnet pre-bedrock archive nodes)
This file must be identical for both op-geth and your consensus client.

Complete reference

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

JWT secret

To communicate with consensus client and enable the Engine API, you’ll also need to generate a JWT secret file and enable the execution client’s authenticated RPC endpoint. To generate the JWT secret file:
openssl rand -hex 32 > jwt-secret.txt