Quickstarts
How msg.sender Resolves Across Chains
STEP 1 OF 3
NEXT WALKTHROUGH: How to check an address is a real proxy →
YOUR EOA
owner
WHAT ARRIVES
proxy(owner)
this is msg.sender there
DAPP DEVELOPERS

How to handle msg.sender across chains

The Quickstart named this as gotcha 1 in card 04; this card is the full trap and the fix.

A same-chain owner check passes locally and reverts every time cross-chain, so you whitelist the proxy itself instead.

WHAT YOU'LL LEARN
  • 01 · WHO ACTUALLY CALLSThe destination sees the proxy, not the address you expected.
  • 02 · THE TRAPA same-chain owner check passes locally, reverts every time cross-chain.
  • 03 · THE FIXWhitelist the proxy itself instead.

RUN IT YOURSELF · forge test --match-test test_sameChainCheck_revertsWhenCalledViaProxy -vv — from eez-demos/snippets, Foundry only.

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

UP NEXTHow to check an address is a real proxy