← Quickstarts
Run the Chiado L2
PRE-MAINNET
STEP 1 OF 3
NEXT: How to send and test a cross-chain call →
ONE-TIME SETUP
docker build eez-node
docker build eez-proof-signer
chiado L1 snapshot
shared JWT
consensus configs
faucet-funded keys
$ git submodule update --init --recursive
$ docker build -t eez-node:local .
$ docker build -f Dockerfile.signer -t eez-proof-signer:local .
$ docker run --rm -v "$PWD/data/chiado-l1:/data" \
ghcr.io/gnosischain/reth_gnosis:v2.0.0 download --chain chiado --minimal --datadir /data
$ openssl rand -hex 32 > data/jwt.hex
$ git clone https://github.com/gnosischain/configs.git /tmp/gnosis-configs
$ mkdir -p configs && cp -r /tmp/gnosis-configs/chiado configs/chiado
faucet.chiadochain.net
funds the operator + poster keys with xDAI
All of it once — nothing here repeats on later runs.
ROLLUP OPERATORS

How to run against a real testnet

This points the same stack at Chiado instead of a sandbox.

One-time setup comes first: the contracts submodule, local build tooling, plus everything the embedded L1 needs before it can sync.

WHAT YOU'LL LEARN
  • 01 · ONE-TIME SETUPThe contracts submodule, local build tooling, plus everything the embedded L1 needs before it can sync.
  • 02 · DEPLOY, THEN STARTdeploy-protocol writes deployments.env and genesis.json before docker compose starts the node, signer, and lighthouse — with the same proof-signer key on both sides.
  • 03 · HEALTH CHECKcast block-number against both ports confirms the embedded L1 is climbing and the L2 is producing.

THE SNAPSHOT IS THE SLOW PART · the chiado L1 snapshot is the largest download of the setup — leave time for it. EEZ_DEPLOY_SKIP_SIMULATION=1 skips forge’s pre-broadcast simulation, which fails with “block not found” on public chiado RPCs that haven’t finalized the refetched block. Steps 02–03 are what scripts/chiado-up.sh runs as one command, plus a health-wait.

Verified against eez-rollup0 @ a4b9b2f — pre-mainnet; interfaces may move.