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.
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. 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.