Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

ethrex

ethrex is a minimalist, stable, modular, fast, and ZK native Ethereum client built from the ground up with zero-knowledge proving in mind. Whether you’re running an L1 node or building an L2, ethrex provides the foundation for verifiable Ethereum execution.

Why ethrex?

FeatureDescription
Minimalist~100k lines of Rust vs 500k+ in mature clients. Less code means fewer bugs and faster iteration.
Multi-proverSupport for SP1, RISC Zero, ZisK, OpenVM, and TEEs. Choose the proving backend that fits your needs.
Unified L1/L2Same execution client for mainnet nodes and L2 rollups. Consistent behavior across layers.
ZK-OptimizedData structures and algorithms designed to minimize proving overhead from day one.

zkVM Integrations

ethrex integrates with multiple zero-knowledge virtual machines, giving you flexibility in how you prove Ethereum execution.

zkVMOrganizationL1 SupportL2 SupportStatus
SP1Succinct✓✓Production
RISC ZeroRISC Zero✓✓Production
ZisKPolygon✓PlannedExperimental
OpenVMAxiom✓PlannedExperimental
TEE (TDX)Intel—✓Production

Tip

For L2 deployments, you can run multiple provers simultaneously for redundancy. See multi-prover deployment.

Quick Start

Run an L1 node:

# Install ethrex
cargo install ethrex

# Start syncing mainnet
ethrex --network mainnet

Deploy an L2:

# See the full deployment guide
# https://docs.ethrex.xyz/l2/deployment/overview.html

Architecture Highlights

ethrex’s architecture is optimized for both traditional execution and ZK proving:

  • Stateless execution - Block execution can run with only the necessary witness data, enabling efficient proving
  • Modular VM (LEVM) - Our EVM implementation is designed for clarity and easy auditing
  • Optimized tries - Merkle Patricia Trie operations are tuned to reduce zkVM cycle counts
  • Precompile patches - Cryptographic operations use zkVM-accelerated implementations when available

Learn More

Get Involved

  • GitHub - Star us, open issues, contribute
  • Telegram - Join the community chat
  • Blog - Technical deep dives and updates