To build against new Base features without running infrastructure, use the hosted Vibenet instead.
Prerequisites
- Docker with Compose v2 and Buildx. The first build compiles the Rust services, so allocate generous memory to Docker.
just1.51.0or newer- Foundry (
cast) to send transactions jq, used byjust devnet statusandjust devnet checks- A clone of base/base
Start the Devnet
From the root of the base/base repo:Terminal
Check that blocks are advancing:
Terminal
Send a Test Transaction
The devnet prefunds the standard Foundry/Anvil test accounts, listed inetc/docker/devnet-env. Send ETH through the sequencer:
Terminal
status 1 confirms the sequencer included the transaction. To run the built-in L1 and L2 checks instead, use just devnet checks.
Endpoints
Ports are set in
etc/docker/devnet-env. In just devnet up mode, 7545 is one of three conductor-managed sequencers. After a leader change, transactions sent to 7545 can stay pending; send through the RPC node at 8545, which forwards to the current leader.
Hardfork Activation
The devnet schedules Azul at L2 block 20, Beryl at 21, Cobalt at 22, and Denim at 25, so a fresh devnet crosses each activation within its first few blocks. Before Denim, the devnet produces a block every 2 seconds. At Denim, the sequencer switches to 200ms blocks.
To move an activation, set
L2_BASE_DENIM_BLOCK (or the matching L2_BASE_<HARDFORK>_BLOCK variable) before up or up-single. Set it to an empty value to leave that hardfork unscheduled.
Common Commands
Run
just devnet with no arguments for the full list.
Learn More
The base/base repo is the source of truth for the devnet:- Devnet README: stack topology, batcher setup, the Anvil + Nitro proving variant, and upgrade-signal testing
etc/docker/Justfile: every devnet command- Testing guide: system tests against the devnet (
just devnet tests) - Standalone proving guide: run the prover stack, which the devnet does not include. ZK proving against a local devnet requires disabling Beryl and Cobalt.