The code whispered secrets the whitepaper buried.

On April 15th, a single transaction on Ethereum mainnet drained 4,712 ETH from a wallet that had been 'upgraded' under the new EIP-7702 standard. The victim: a mid-tier institutional custodian who had prided itself on 'audited asset management.' The attacker walked away with $14.2 million in under three minutes.
The immediate narrative blamed 'user error' and 'phishing.' The deeper truth, however, lies in the architecture. The wallet was not hacked. It was operating exactly as its new code permitted. The problem wasn't a bug; it was a feature of the upgrade syntax itself—a feature that turns every wallet into a potential honeypot for malicious delegation.
Context: The EIP-7702 Promise
EIP-7702, introduced in the Dencun upgrade, was hailed as a 'sanctity of self-custody' solution. It allowed externally owned accounts (EOAs)—the standard user wallet—to temporarily assume the behavior of a smart contract during a transaction. This meant a user could, for a single atomic operation, have their EOA execute delegated logic from a contract, such as batch swaps or gas sponsorship, without permanently moving their assets to a contract wallet.
The intended use case was noble: enabling 'account abstraction' for everyday users without forcing them to migrate to complex smart wallets. For institutions, it promised to streamline gas management and allow for more complex settlement logic. The marketing copy read like a freedom manifesto.
But the devil, as always, is in the delegation.
Core: The Systematic Teardown
Let's ignore the whitepaper's aspirational language and read the function calls. EIP-7702 introduces an 'authorization tuple'—a signed message that grants a specific contract the right to execute code on behalf of an EOA for a single transaction. The critical oversight is the 'single transaction' scope.
I dissected the draining transaction using a local fork of the Ethereum mainnet state. What I found was a recursive delegation pattern. The attacker created a contract that, upon being invoked by the victim's authorized EOA, immediately issued another authorization for itself—this time not for gas sponsorship, but for asset transfer.
The code whispered secrets the whitepaper buried. The EIP specification defined the 'scope' of delegation as 'the current transaction being processed by the validator.' But what defines a 'single transaction' at the EVM level is the initial CALL instruction. If the delegated contract issues a DELEGATECALL back to itself or to another contract that requests a new AUTHORIZE from the same EOA, the scope check fails. The EOA's signature, once created and submitted to the mempool, becomes a reusable key for any contract that can trick the scope logic.
In this specific case, the custodian had approved a 'gas station' contract to handle sponsorship. The contract, however, contained a hidden function masquerading as a 'flash loan fee calculation.' That function did not calculate fees; it recursively iterated through the EOA's permissions, draining the wallet.

It wasn't a loop; it drained. The transaction trace shows a straightforward series of DELEGATECALL and SSTORE operations, each fully compliant with the opcode costs. The attack's elegance was its simplicity: it didn't break any rules. It exploited the gap between the specification's promise ('one transaction') and the EVM's reality ('one initial call').
Between the lines of the ABI lies the intent. The authorized contract's ABI contained a function named sponsorGas_with_validation. The 'validation' part was a single boolean check on a storage slot that the deployer could set at will. It was a decoy. The real logic was in an anonymous assembly block that handled the reauthorization.
Logic does not lie, but architects often do. The architects of EIP-7702 designed for a benign world where delegates are trusted. They did not account for an adversarial environment where the delegate is the attacker. The standard created a chokepoint: any EOA that authorizes a single malicious delegation becomes a liquidity pool waiting to be tapped.
Contrarian: What the Bulls Got Right
I am not a cynic by default. The EIP-7702 proponents correctly identified that today's account abstraction (ERC-4337) is over-engineered for mass adoption. The UX gas penalty alone adds 20-30% overhead per transaction. For retail users making $10 swaps, that's prohibitive.
The standard's ability to allow EOAs to participate in complex DeFi operations—such as Aave liquidations or Curve rebalancing—without migrating to a smart wallet is a genuine UX improvement. In controlled environments with audited and immutable delegate contracts, the risk is negligible. My analysis is not a condemnation of the EIP; it is a condemnation of its institutional adoption without a corresponding shift in security culture.
The custodian in this case had not applied a simple check: limit the delegate contract's allowed asset list. They gave it an 'approve all' signature, which, under the new standard, became a 'drain all' authorization.
Where the bulls were right is that for 99% of daily use cases—gas sponsorship, batch swaps, one-click farm withdrawals—the delegation pattern works. The problem lies with the 1% edge case: malicious delegates and compromised authorization flows. The industry often derisively calls this 'user error,' but when the error is enabled by a protocol upgrade designed to lower friction, the responsibility shifts to the architects.
Takeaway: The Accountability Call
The $14.2 million drain on April 15th is not a bug report; it is a systemic alarm. The crypto industry has a collective habit of treating every hack as an 'unforeseen event' until the next upgrade introduces a new vector.
I have been in this industry long enough to see the pattern: every major upgrade—from DeFi's smart contract composability to NFTs' royalty enforcement to Layer 2's bridge architecture—has introduced a new attack surface that was 'known to insiders' but ignored by the public.
Based on my audit experience, this vulnerability was not a surprise to core developers. The Ethereum Magician's forum hosted discussions about 'authorization scope ambiguity' in early EIP-7702 drafts. The spec's authors chose to leave it as 'implementation dependent,' passing the risk to end users. (Read the function calls, not the press release.)
The takeaway is not to avoid EIP-7702. The takeaway is that institutional custody in the age of account abstraction requires a new security paradigm: 'cryptographic delegation boundaries.' Until custodian software validates the delegate's entire recursive call tree in a sandboxed environment, any wallet that touches this upgrade is a bomb waiting for a detonator.
The next drain will not be $14 million. It will be a protocol treasury. The architecture of trust, once loosened, drains fast.