Pre-flight
Time: ~2 minutes. Confirm you have everything before starting. Every item is required.
An Aztec sequencer must stay online 24/7 with a stable internet connection. The protocol slashes 2,000 AZTEC per offense when you miss attestation duties.
Before starting, confirm your setup can sustain:
- Power: backed by UPS or hosted on infrastructure with N+1 power.
- Network: not behind a NAT or firewall you don't control; not a cellular hotspot; not a residential connection prone to ISP outages.
- Compute: machine that doesn't sleep, doesn't reboot for OS updates without your control, and doesn't share resources with workloads that could cause downtime.
- Operator availability: someone responds to alerts within a few hours (you, an on-call rotation, or a monitoring service).
If any of these is uncertain, consider delegating instead.
Hardware
If a significant share of the network is running on the same few cloud providers (AWS, GCP, Azure, Hetzner, etc.), it creates a centralization risk: a single provider outage, policy change, or region failure can affect many sequencers at once. When choosing where to run your node, consider options beyond the major clouds.
Software
You need this on every server in your topology.
- OS: Ubuntu 22.04+, Debian 12+, or macOS. Windows WSL2 also works but is not recommended for production.
- Docker + Docker Compose: installed and running. Verify with:
docker --version && docker compose version
- jq: JSON processor used in verification commands.
sudo apt install -y jqon Ubuntu/Debian orbrew install jqon macOS. Verify withjq --version.
Need to install Docker?
Ubuntu / Debian:
sudo apt-get update
sudo apt-get install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
-o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) \
signed-by=/etc/apt/keyrings/docker.asc] \
https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli \
containerd.io docker-compose-plugin
sudo usermod -aG docker $USER
newgrp docker
macOS: install Docker Desktop.
Verify: docker run hello-world.
Network access
- L1 Ethereum endpoints: an execution RPC, a blob-serving consensus (beacon) RPC, and a debug/trace RPC. Self-hosted (for example Geth plus Lighthouse or Prysm in supernode mode) or a hosted provider that supports all three. The beacon client must serve blob sidecars, which has specific version and flag requirements. See L1 RPC requirements before you choose a provider; it is the most common setup blocker.
- Port 40400 open for both TCP and UDP (P2P).
- Port 8080 available locally (Aztec HTTP API). Do not expose it publicly.
Tokens
- AZTEC tokens: 200,000 AZTEC minimum stake per sequencer. You'll self-stake these when you register as sequencer.
- ETH for gas: the publisher consumes a small amount of L1 gas each time it submits a checkpoint. Around 0.01 ETH per sequencer is a comfortable opening top-up at current L1 prices. Size it against real network activity with the funding calculator, which scans the last 30 days using your own L1 RPC.
What just happened?
You confirmed your servers meet Aztec's minimum requirements. The node runs as a Docker container that connects to Ethereum L1 (for anchoring proofs and reading rollup state) and the Aztec P2P network (for receiving transactions and participating in consensus).
The 200K AZTEC self-stake is required by the Rollup contract to prevent Sybil attacks.
Stuck? Ask in Discord.