On 29 October 2026 about $3.75 billion left Binance hot wallets on Ethereum, Avalanche and Arbitrum. This page follows the money on-chain and reads it again every three minutes.
See where it is nowEvery move out of a wallet the attacker controls, newest first. A large transfer into a plain account the page has not seen before adds that account to the trace, so the list follows the money on its own.
This was not a bug in a smart contract. Someone was able to make Binance's own keys sign. Binance 14 (0x28C6…1d60), one of the exchange's largest Ethereum hot wallets, signed fifty EIP-7702 authorizations, one for each nonce from 18,914,775 to 18,914,824. Each one says: this account now runs the code at 0x63e8…6fAe, a contract the attacker wrote.
An EIP-7702 authorization is not a transaction. It is a signature over a short message that hands an ordinary account a program to run. Binance 14 sends several transactions a minute, so its next nonce was a moving target. The attacker submitted all fifty at 20:20:59 UTC and the one for nonce 18,914,809 matched. From then on, anything the attacker sent to Binance 14 ran the attacker's code as Binance 14.
Three and a half minutes later one call, sweep, sent everything Binance 14 held to the attacker's receiving wallet, leaving exactly 1 ETH behind: 167,464 ETH and 63 tokens, about $2.5 billion. A second function, callExecute, made Binance 14 instruct a Circle smart account it owns, which then paid out 823 million USDC.
The attacker rehearsed all of it on mainnet first. Hours before, two test wallets were delegated with the same many-nonces trick and swept, and a third was used to check that the sweep leaves exactly 1 ETH behind. The first version of the contract had no callExecute; it was added at 15:59 UTC, which means the attacker already knew which accounts Binance 14 controls.
Values at current prices. Binance 14 kept receiving deposits after the drain while still running the sweeper's code, and was swept again at 21:04 and 21:44 UTC. The second of those took 200.4 million USDT, which landed in an already-frozen wallet.
Inference, labelled as such.