DEV Community

EIP-7702 Delegation Exploit: How a Single Signature Silently Turns Your EOA into a Zombie Proxy

EIP-7702 Delegation Exploit: How a Single Signature Silently Turns Your EOA into a Zombie Proxy

With the introduction of EIP-7702 in Ethereum's Pectra upgrade, the boundary between standard Externally Owned Accounts (EOAs like MetaMask, Rabby, and Trust Wallet) and Smart Contract Accounts (SCAs) has permanently shifted.

While EIP-7702 was designed to bring native Account Abstraction features—such as sponsored transactions and batched atomic calls—to existing wallet addresses, it has opened a massive vector for silent wallet takeovers.


The Fundamental Danger: Whole-Identity Delegation

In traditional Web3 phishing, drainers deceive users into approving token allowances (approve(spender, uint256) or setApprovalForAll). While devastating, this attack is strictly scoped: only the specific token or collection approved can be taken, and only up to the approved allowance.

EIP-7702 changes the game entirely.

When signing an EIP-7702 authorization payload, you are not approving a token. You are delegating the execution bytecode of your entire address identity to an external contract:

[Phishing dApp Prompt]
         │
         ▼  (User signs a message masquerading as a harmless login or permit)
[EIP-7702 Signed Authorization]
         │
         ▼  (EVM sets the EOA code pointer to the attacker's contract)
[Victim's EOA Address] ───► [Malicious Proxy Contract]
         │
         ▼  (Fallback hooks intercept any incoming transaction)
[Automatic Atomic Sweep to Attacker's Vault]
Enter fullscreen mode Exit fullscreen mode

3 Reasons Why This Attack is So Devastating

  1. The Seed Phrase is Never Compromised: The victim still holds their 12/24 recovery words and private key. Hardware wallets like Ledger or Trezor will sign the payload without warning unless their firmware is specifically updated to decode EIP-7702 tuples.
  2. Standard Explorers Show a Healthy Account: Traditional explorers look at account balances and standard transaction histories. Because the private key hasn't changed hands, the wallet appears as a standard, unflagged EOA.
  3. Atomic Deposit Sweeping: As soon as an inbound transfer or airdrop arrives at the compromised address, the implementation contract's fallback or execution hook triggers, transferring the assets away in the exact same transaction block.

Auditing Your Address: The Free Multi-Chain Scanner

Because wallet interfaces do not yet display whether an EOA has an active contract delegation attached to it, an open-source verification tool was developed:

👉 https://7702.vercel.app

Key Features:

  • Direct Consensus Bytecode Inspection: Queries RPC nodes across 8 major chains simultaneously to verify whether the 0xef0100 delegation prefix is present.
  • Instant 5-Second Verdict: Simply paste any public address (0x...).
  • Supported Networks (8 EVM Chains): Ethereum Mainnet, BNB Chain, Base, Arbitrum One, Optimism, Polygon, Gnosis, and Scroll.
  • 100% Client-Side Privacy: No wallet connection, no registration, no seed phrase entry, and zero telemetry analytics.

How to Remediate a Compromised Address

If an address has been delegated without the owner's knowledge:

  1. Cease all inbound deposits immediately.
  2. Submit a Revocation Transaction: Broadcast an EIP-7702 transaction setting the code pointer to 0x0000000000000000000000000000000000000000 or incrementing the account's nonce.
  3. Migrate Long-Term Cold Storage: Transfer unaffected assets to a clean, fresh keypair.

Resources & Open Research

Top comments (0)