Skip to content

About

Smart contracts to manage synchronous rollups in Ethereum using ZK proofs

Resources

Stars

28 stars

Watchers

0 watching

Forks

Repository files navigation

Sync Rollups

Smart contracts to manage synchronous rollups on Ethereum.

EARLY-STAGE IMPLEMENTATION — not audited; interfaces and storage layout still in flux.

Overview

Sync Rollups enables synchronous composability between based rollups sharing the same L1 sequencer. State transitions are pre-computed off-chain and verified on-chain by a configurable set of proof systems, enabling atomic cross-rollup calls (e.g. cross-rollup flash loans) within a single L1 block.

Proofs authorize entries subject to execution checks; L1 execution determines settlement order. Deferred entries in different rollup queues can execute in either order when their checks pass. See the core protocol's Settlement Model.

Two sides:

  • src/EEZ.sol (L1) — registry + execution manager: per-rollup state roots and ETH accounting, multi-prover batch verification (postAndVerifyBatch), per-rollup execution queues, flat sequential call execution with rolling-hash integrity.
  • src/L2/EEZL2.sol (L2) — executes system-loaded execution tables; no proofs, no registry.

Shared machinery lives in src/base/ (EEZBase.sol, CrossChainProxy.sol); per-side execution structs in src/interfaces/ (IEEZ.sol for L1, IEEZL2.sol for L2); the per-rollup manager reference implementation in src/rollupContract/Rollup.sol. Tests are under test/, two-sided e2e devnet scenarios under script/e2e/, protocol documentation under docs/.

src/periphery/ (Bridge, WrappedToken and defiMock examples) is test-only infrastructure for exercising protocol flows. It is outside the protocol audit scope and is not a supported production bridge/token/DeFi implementation.

Build & Test

forge build                         # Compile contracts
FOUNDRY_ISOLATE=false forge test     # Run the unit and integration suite
forge fmt                           # Format code

Use FOUNDRY_ISOLATE=false only for the unit/integration test command: transient-storage tests need calls to share one transaction. Keep --isolate for E2E execution and gas benchmarks that require separate transactions; do not set a global override.

Deployment

See deployment/README.md for parameterized L1/L2 deployment, rollup registration, and EEZ/Rollup upgrades.

Documentation

Start with the EEZ walkthrough for the execution model, a complete call example and a source/test reading guide.

CLAUDE.md is a condensed architecture reference (contracts, data types, key functions, execution flow, naming conventions). For depth:

About

Smart contracts to manage synchronous rollups in Ethereum using ZK proofs

Resources

Stars

28 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages