Espresso
Decaf Testnet
Espresso is a high-performance base layer for rollups, making L2 transactions safe, fast, and seamless for users. Espresso is trusted by leading teams including Offchain Labs (Arbitrum), Polygon, ApeChain, Cartesi, RARI Chain, Celo.
L2s and rollups that use Espresso as a decentralized base layer benefit from industry-leading speed in finalizing transactions. The confirmations that Espresso provides underpin cross-chain applications that can tap into liquidity and users of all connected Espresso-chains. Resources
Hardware requirements
4 cores
16 GB
1 TGB NVME
25 MBit/s
Linux (Ubuntu 22.04 x64)
Installation 💾
Update repositories
apt update && apt upgrade -yInstall dependencies
sudo apt install -y curl jq ca-certificates gnupg lsb-release opensslInstall Docker
Create folders
Create .env for your node identity + public IP
Create docker-compose.yml (Sepolia EL+CL + Espresso Decaf)
docker-compose.yml (Sepolia EL+CL + Espresso Decaf)start
Become Validator
You may need approval / tokens from Espresso
Decaf docs note node operation is limited to a select group and provide a form to request tokens.
Register your validator on Sepolia (staking-cli)
Decaf registration uses staking-cli register-validator and requires:
your validator Ethereum address (the address you register)
a commission value (decimal between 0 and 1)
Sepolia RPC URL (your own is
http://127.0.0.1:18545)
Decaf contract addresses from docs (set these exactly as environment variables when using staking-cli):
Example:
If you got --commission ... empty: it usually means your shell variable was empty (e.g. --commission $COMMISSION but COMMISSION wasn’t set). Use a literal number like 0.05.
Delegation (required to actually participate)
Decaf uses a dynamic active set (top 100 by delegation) and you need ESP tokens delegated to your validator to be active.
Example:
Validator address clarification: it’s the address you used in register-validator (and that will receive commission/rewards), not “whatever address has Sepolia ETH”. Sepolia ETH is just gas to send the registration/delegation transactions.
Cheat sheet (status, logs, quick health checks)
Logs (use your container names)
Follow live:
Sepolia EL sync (geth)
Sepolia CL health (lighthouse HTTP API)
Espresso metrics (best single check)
Interpretation (rule of thumb):
consensus_libp2p_is_ready 1consensus_libp2p_num_connected_peers> 0 (ideally dozens)consensus_current_viewkeeps increasingconsensus_last_decided_viewstays close tocurrent_view
Restart only Espresso (safe)
Last updated