Smart contracts to manage synchronous rollups on Ethereum.
EARLY-STAGE IMPLEMENTATION — not audited; interfaces and storage layout still in flux.
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.
forge build # Compile contracts
FOUNDRY_ISOLATE=false forge test # Run the unit and integration suite
forge fmt # Format codeUse 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.
See deployment/README.md for parameterized L1/L2 deployment, rollup registration, and EEZ/Rollup upgrades.
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:
docs/CORE_PROTOCOL_SPEC.md— formal protocol specificationdocs/EXECUTION_ENTRY_SPEC.md— how to build execution entriesdocs/STATIC_ENTRY.md— static entries + reverted-call resolution semantics (nested + top-level)docs/MULTI_PROVER_SPEC.md— multi-prover design rationaledocs/CAVEATS.md— edge casesscript/blob/README.md— blob ⇄ table framework: wire codec, table derivation, scenario DSL, file-based toolstest/blob/SCENARIO_CATALOG.md— the L1 batch every basic cross-chain shape produces, case by case