Learn how EEZ
actually works
The Ethereum Economic Zone lets a contract on Ethereum or a rollup call a contract on another chain and use the answer in the same transaction, with no bridge message and no callback. These walkthroughs show how, with real protocol code cited at a pinned commit.
[ DAPP DEVELOPERS — QUICKSTART ]
Start with the basics
SEE IT WORK
01Run Your First Round Trip
Two scenarios pass on local anvil chains: one call starts on L1 and gets back the value L2's execution produces, and one makes the same call from L2. Locally, that value is precomputed in the entry.
02Follow One Call There and Back
Your contract makes an ordinary call to a proxy, the proxy hands it to the L1 manager, and the 1 that Counter returns on L2 comes back as data that was posted before your call.
03Who Answered?
Follow the call hash from its calculation to the matching entry, then read the success flag and the return data that gives your contract 1.
MAKE IT REAL
04Two Gotchas Before You Build
Two cross-chain gotchas to check before you build: msg.sender is the source's proxy, and a state-changing proxy call needs an entry verified in the same block.
Deploy Your Own Contract
COMING SOONYour own contract, deployed and called across chains with the Remix cross-chain plugin. Not part of the numbered sequence until it is released.
BUILD PATTERNS
05Cross-Chain Flash Loan
Borrowed tokens go to an L2 and back before the repayment check runs, all inside one L1 transaction.
06Bridge Tokens Both Ways
Run one ETH scenario per direction, L1 to L2 and L2 to L1, each on its own pair of chains, then run the test that sends an ERC-20 through the Bridge.sol test fixture and back.
[ REFERENCE — GO DEEPER AFTER THE QUICKSTART ]
01How to get your contract's address on another rollup
Learn how to read it, or deploy it.
02How to call a contract on another rollup
Learn how to encode a read like any normal call, send it to the proxy as a staticcall so it stays read-only, then decode the answer and branch on it.
03How to handle msg.sender across chains
Learn how to whitelist the proxy instead of the address you expected.
04How to check an address is a real proxy
Learn how to read the on-chain registry instead of guessing.
05How the guard makes sure only proxy calls reach execution
Learn how UnauthorizedProxy() rejects any caller of the cross-chain entry points that isn't a registered proxy.
06How to encode a call's content hash
Learn how to hash eight fields in the one order that works.
07How to read a remote contract's state
Learn why balance and code size answer about the proxy — a real number about the wrong contract, with no revert.
[ ROLLUP OPERATORS ]
01How to run the whole stack locally
Learn how to bring up the node, proof-signer and the L1 in a disposable network.
02How to deploy the protocol
Learn what gets deployed on L1 and L2, and in what order, once the network is up.
03How to run against a real testnet
Learn what changes when the L1 underneath you is Chiado rather than a disposable devnet.
04How to send and test a cross-chain call
Learn how to drive traffic through the stack you just brought up, and how to tell that it worked.
[ PROTOCOL RESEARCHERS ]
01How the four components divide the work
Learn how sequencer, composer, proof-signer and deriver each fit.
02How L1 stays the source of truth
Learn why the L2 block is added immediately, and what happens to it if L1 never confirms it.
03How the composer attests a batch
Learn what is actually checked before a batch is accepted, and by whom.
04How the deriver rebuilds L2 from L1
Learn how the whole chain is reconstructed from L1 data alone.
05How the address is derived
Learn how two values become a salt and a CREATE2 address.
06The rolling hash
Learn how one bytes32 commits to a whole execution tree — and why no call index is folded in.