Quickstarts
Your Cross-Chain Address
STEP 1 OF 3
NEXT WALKTHROUGH: How to call a contract on another rollup →
CREATE · ONE CALL
ROLLUP 1
myContract
0xC0ffEE…4979
createCrossChainProxy
→
ROLLUP 2 · THIS MANAGER
proxy(myContract)
0x7d3F…9bA1
returns
0x7d3F…9bA1
deployed · authorizedProxies[proxy] = ProxyInfo(true, …)
One transaction. The manager on rollup 2 deploys the proxy and records it as authorized in the same call. You rarely have to: the protocol runs this same path itself, through getOrCreateCrossChainProxy, the first time a call arrives from that address.
DAPP DEVELOPERS

How to get your contract's address on another rollup

Your contract lives on one rollup. On every other rollup it has a stand-in — a proxy — and anything there that wants to reach your contract calls the stand-in instead, which EEZ routes home.

The stand-in's address is derived from your address, your own rollup id, and the manager on the far side (its address and its PROXY_INIT_CODE_HASH), so you can compute it before anything is deployed.

New here? Start with the Quickstart →

WHAT YOU'LL LEARN
  • 01 · CALL IT INTO EXISTENCEOne call deploys the proxy, registers it, and returns the address.
  • 02 · OR READ IT FIRSTA view call reads that address before anything is deployed.
  • 03 · THE ONE RULERemote addresses only — a proxy for your own network reverts.

Verified against eez-core-protocol Git commit 9a1f815; interfaces may move.

The FULL file uses a stand-in proxy, so its addresses differ from a live manager’s. For a real one, call computeCrossChainProxyAddress on the manager of the chain the proxy lives on.

UP NEXTHow to call a contract on another rollup