← Quickstarts
How msg.sender Resolves Across Chains
PRE-MAINNET
STEP 1 OF 3
NEXT: 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

Cross-chain, the destination sees the proxy — not your EOA.

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 @ 9735f53 — pre-mainnet; interfaces may move.