EIP-7702 Drainers: The Signature That Waits

On 14 October, a wallet carrying the ENS name sven.eth lost 9.12 ETH, about $22,770, plus a small pile of TAPEETH tokens. The owner did not send a transaction. The security firm ExVul, which flagged the theft on X the same day, traced it to one thing the owner had done at some earlier point: signed an EIP-7702 authorization. How the attacker got that signature is not public. What is public is what they did with it. They kept it, waited, then submitted it themselves and paid the gas.
That is the whole trick. It is also why this drainer family is different from the token-approval scams you have read about before.
What EIP-7702 actually does
Since Ethereum's Pectra upgrade on 7 May 2025, an ordinary wallet can borrow the code of a smart contract. You sign a short authorization naming a contract address, it goes on-chain in a type-4 "set code" transaction, and from then on your account runs that contract's code whenever it is called. Your address does not change. Your private key still works. The feature exists for good reasons: gas sponsorship, batching several actions into one click, account recovery. MetaMask, Rabby and others ship it as a "smart account" toggle.
Three details matter for safety.
The authorization is tiny. Chain ID, contract address, nonce, your signature. Nothing in it says what the contract will do.
Anyone can submit it. The signed authorization can ride inside a transaction sent by the attacker, who pays the fee. You never see a pending transaction in your wallet. The balance is already gone when you look.
It sticks. Once set, the delegation stays on your account until you replace it or clear it. Every token that lands at that address afterwards runs through the attacker's code first.
The sweeper that waits
Wintermute's research team looked at the first weeks of 7702 delegations in May 2025 and found that over 97% of them pointed at copies of one short contract. They nicknamed it CrimeEnjoyor. Its job is dull: sit on an address and forward any incoming ETH to the attacker. Those early sweepers were mostly bolted onto wallets whose keys had already leaked, and Wintermute noted the attackers had spent about 2.88 ETH authorizing some 79,000 addresses for almost nothing in return.
The phishing version is where the money is. In August 2025 one person signed what looked like a Uniswap swap and lost $1.54 million in wstETH, cbBTC and NFTs in a single batch, according to Scam Sniffer. A second case that month cost $1.00 million. Scam Sniffer's 2025 report counted $83.85 million in phishing losses across 106,106 victims for the year, and noted 7702 batch signatures as a vector that arrived with Pectra.
An academic study presented at USENIX Security in August 2026 put the scale on record. Researchers from HKUST, Nankai, Sun Yat-sen and Lingnan universities catalogued 924 malicious delegation contracts across seven chains. More than 63% of all 7702 authorization transactions in their dataset were linked to attacks on ordinary wallets, and nearly half of the most frequently authorized contracts were attacker-controlled. They counted more than $2.3 million in confirmed losses and over 10 million accounts exposed.
Meanwhile BundleBear's dashboard shows about 67 million smart accounts, meaning addresses with a delegation in place, as of late October. Most are legitimate. You cannot tell which from the outside.
Why "later" is the dangerous part
The sven.eth case shows the pattern at retail scale. The delegated code contained a fixed controller address. That controller called the PodMining claim function, took the TAPEETH rewards, and withdrew the ETH. ExVul confirmed there was no bug in the protocol and no flash loan. There was only a signature, used at a moment of the attacker's choosing. As of block 26,188,153, the delegation was still live.
Two things make the delay possible. The authorization carries your wallet's nonce, so it stays valid as long as you do not send a transaction yourself. A wallet you leave alone for weeks is exactly the wallet that stays exploitable. And the sweeper, once installed, does not need to hurry. It takes whatever arrives next.
That second property has a cruel side effect. Victims who learn their wallet is delegated often send a little ETH to pay for the fix. The sweeper takes it before the fix is submitted.
How to check your own wallet
Pull up your address on Etherscan. A plain wallet has no code. A delegated one shows a 23-byte code field starting with 0xef0100, followed by the contract it points at. If you never turned on a smart-account feature, that is your answer.
Revoke.cash has a Delegations tab that lists the same thing in plain language. It cannot remove the delegation for you, and neither can any other website. Most wallets block outside apps from touching this setting, which is the right design.
Removal happens inside the wallet. In MetaMask it sits on the account details screen as a smart-account toggle, switched off per network, though the label changes between versions. Rabby lists it alongside approvals. At the protocol level the fix is a fresh authorization pointing at the zero address. It clears the code pointer, though any storage the attacker's contract wrote stays behind.
When clearing it is not enough
If you set the delegation yourself and recognise the contract, leave it. If you did not, treat the wallet as compromised rather than misconfigured. An unknown delegation means you signed something you should not have, and the same phishing kit can ask you again tomorrow. Move what is left to a new seed phrase and retire the address. Do not send gas to the old one first.
The same logic applies in reverse when the address is not yours. A wallet that has been swept has a recognisable shape on-chain: funds arriving and leaving almost immediately, always to the same destination. If someone you do not know is about to pay you, or you are about to pay them, run the address through a check before money moves. Drainer collection addresses are among the first things analytics firms label once victims report them, and a counterparty whose funds route through one is a problem you would rather find before the transfer than after.
What the signature prompt is not telling you
Hardware wallets protect the key. They do not judge whether handing your account's code to a stranger is a good idea, and the prompt that asks you to do it is built to look like a routine claim or swap. Read any request that mentions delegation, authorization, smart account or batch execution twice. Treat a free, gasless or sponsored action from an unfamiliar site as a reason to close the tab.
Keep the money you care about in a wallet that has never signed a 7702 authorization and never visits dApps. Use a separate hot wallet for the rest. It is an old rule, and this is the newest reason to follow it.
The sven.eth owner lost about $22,000 to a signature nobody remembers giving. The check that would have caught it takes thirty seconds and costs nothing.
Sources
- 1.EIP-7702: Set Code for EOAs — Ethereum Improvement Proposals
- 2.Prague-Electra (Pectra) upgrade — ethereum.org
- 3.Wintermute's 'CrimeEnjoyor' to flag Ethereum's wallet-draining contracts — Cointelegraph
- 4.Scam Sniffer 2025: Crypto Phishing Losses Fall 83% to $84 Million — Scam Sniffer
- 5.Revealing the Dark Side of Smart Accounts: An Empirical Study of EIP-7702 Incurred Risks in Blockchain Ecosystem — USENIX Security '26
- 6.EIP-7702 Metrics — BundleBear
- 7.Ethereum user loses $22K in EIP-7702 wallet attack — crypto.news
- 8.How to switch to or revert from a smart account in MetaMask — MetaMask Support
This article is general information, not legal, tax, financial, or investment advice. Crypto carries risk — do your own research and consult a qualified professional before acting. Constatum makes no warranty as to accuracy or completeness and accepts no liability for decisions made based on it.


