Required L1 Beacon Node Endpoints for Running a Base Node
A Base node requires three L1 endpoints: OP_NODE_L1_ETH_RPC for standard Ethereum JSON-RPC, OP_NODE_L1_BEACON for consensus data, and OP_NODE_L1_BEACON_ARCHIVER for historical beacon data required for rollups.
Running a Base node requires connectivity to Ethereum L1 through specific beacon node endpoints. According to the base/node repository source code, you must configure three distinct environment variables to enable L2 synchronization and block derivation. These endpoints allow the OP-Node component to fetch both execution-layer state and consensus-layer data from Ethereum mainnet or Sepolia testnet.
The Three Required L1 Beacon Node Endpoints
The base/node repository defines three mandatory environment variables in the README.md (lines 21-24) that configure L1 connectivity:
OP_NODE_L1_ETH_RPC
The standard L1 JSON-RPC endpoint handles transaction and state queries against Ethereum's execution layer. This endpoint provides standard Ethereum RPC methods for retrieving blocks, transactions, and account states.
OP_NODE_L1_BEACON
The L1 beacon node endpoint provides consensus-layer data required for block derivation. This endpoint connects to a Beacon API implementation (such as Lighthouse, Prysm, or Teku) to fetch blob data and consensus information necessary for Base L2 operations.
OP_NODE_L1_BEACON_ARCHIVER
The beacon archiver endpoint supplies historical beacon data specifically required for rollup operations. While standard beacon nodes retain recent data, the archiver endpoint ensures access to older consensus data that Base needs to synchronize from L1.
Configuration and Deployment
Environment File Setup
Configure these endpoints in the appropriate .env file for your target network. The repository provides .env.mainnet and .env.sepolia templates containing placeholder values for all three L1 beacon node endpoints.
# Required L1 configuration - replace with your endpoints
OP_NODE_L1_ETH_RPC=https://mainnet.infura.io/v3/<PROJECT_ID>
OP_NODE_L1_BEACON=https://beacon.chain.lighthouse.sigp.io
OP_NODE_L1_BEACON_ARCHIVER=https://beacon-archiver.base.org
Docker Compose Integration
The docker-compose.yml file injects these environment variables directly into the OP-Node container. The op-node-entrypoint script reads these values during container startup to initialize the L1 connection.
Launch your node using the configured environment:
# Mainnet deployment (default .env)
docker compose up --build
# Sepolia testnet deployment
NETWORK_ENV=.env.sepolia docker compose up --build
Source Code Implementation Details
README Documentation
The README.md at the repository root explicitly documents these three L1 beacon node endpoints as required configuration parameters. Lines 21-24 define the environment variable names and their purposes for both mainnet and testnet deployments.
Container Orchestration
In docker-compose.yml, the orchestration layer maps the environment variables from your selected .env file into the OP-Node service container. The op-node-entrypoint shell script then processes these variables to construct the node's startup command with appropriate L1 endpoint flags.
You can optionally specify the L1 RPC type using OP_NODE_L1_RPC_KIND (defaulting to debug_geth), though this does not replace the requirement for the three primary beacon node endpoints.
Summary
- Three endpoints are mandatory:
OP_NODE_L1_ETH_RPCfor execution data,OP_NODE_L1_BEACONfor consensus data, andOP_NODE_L1_BEACON_ARCHIVERfor historical rollup data. - Configuration files: Set these in
.env.mainnetor.env.sepoliadepending on your target network. - Docker integration: The
docker-compose.ymlandop-node-entrypointscripts automatically consume these variables to configure the OP-Node container. - Source authority: These requirements are documented in
README.mdlines 21-24 and implemented in the container orchestration files of thebase/noderepository.
Frequently Asked Questions
What happens if I don't configure OP_NODE_L1_BEACON_ARCHIVER?
Without the beacon archiver endpoint, your Base node cannot retrieve historical consensus data required for processing older rollup batches. The node will fail to sync past the retention window of standard beacon nodes, typically causing synchronization errors within days of the chain head.
Can I use the same URL for OP_NODE_L1_BEACON and OP_NODE_L1_BEACON_ARCHIVER?
While technically possible if your beacon node maintains full historical archives, separate endpoints are recommended. Standard beacon nodes often prune old data, whereas archiver endpoints retain the full history required for Base's derivation process. Using a dedicated archiver ensures reliable access to historical blob data.
Where does the Base node source code reference these environment variables?
The README.md (lines 21-24) documents these variables as required configuration, while the docker-compose.yml implements the injection mechanism. The op-node-entrypoint script reads these values during container initialization to pass them as command-line arguments to the OP-Node binary.
Do I need different L1 beacon node endpoints for Base mainnet versus Sepolia?
Yes, you must configure network-specific endpoints in the corresponding environment files. Use .env.mainnet for mainnet L1 endpoints pointing to Ethereum mainnet beacon nodes, and .env.sepolia for Sepolia testnet L1 endpoints. Never mix mainnet and testnet L1 endpoints in the same configuration.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →