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

CPU

4 cores

RAM

16 GB

Storage

1 TGB NVME

Network

25 MBit/s

OS

Linux (Ubuntu 22.04 x64)

Installation 💾

Update repositories

apt update && apt upgrade -y

Install dependencies

sudo apt install -y curl jq ca-certificates gnupg lsb-release openssl

Install Docker

Create folders

Create .env for your node identity + public IP

Create 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 1

  • consensus_libp2p_num_connected_peers > 0 (ideally dozens)

  • consensus_current_view keeps increasing

  • consensus_last_decided_view stays close to current_view

Restart only Espresso (safe)

Last updated