The record.
25 public losses, grouped by the wall that answers them. Each entry names what happened, what would have caught or refused it, and a write-up you can check. Almost none were contract bugs the auditors missed. Almost all were something nobody was watching.
Live Detection
Losses that were still preventable when they started, and in three of these five only inside the transaction itself.
$$285MM Drift Protocol April 2026 · Protocol lane withdrawn in twelve minutes, across thirty-one transactions
Attackers spent months cultivating the team, then used Solana durable nonces to get Security Council members to pre-sign transactions handing over administrative control. They whitelisted a worthless token as collateral at an invented price, deposited 500 million of it, and withdrew real USDC, SOL and ETH. The withdrawal ran twelve minutes.
Thirty-one transactions against one protocol in twelve minutes is a rate, and a rate is what a velocity rule is for. Detection fires on the first few; the armed Circuit Breaker caps outflow per window at a ceiling the treasury set, so the rest revert at your own entrypoint.
It takes more than one wall. Ops Monitor sees the administrative handover as it happens, and an Asset Ratings floor read at collateral onboarding refuses a token with no verifiable structure. Any one narrows this; all three stop it.
TRM Labs on the Drift Protocol heist$$128MM Balancer V2 November 2025 · Protocol lane drained across six chains in under thirty minutes, then copied onto forks
A rounding inconsistency in the pool invariant maths let an attacker suppress pool-token prices and extract value through repeated arbitrage. A single swap loses a negligible amount; sixty-five batched into one transaction compound into a drain. It ran across six networks in under half an hour, and copycats hit unpatched forks.
One transaction of sixty-five internal operations that leaves the pool worse off is a value-conservation failure, checked inside the transaction rather than alerted after it. The Circuit Breaker reverts it at the venue's own entrypoint. The shared threat graph means a pattern seen on one deployment is already known to every fork.
Check Point Research on the Balancer drain$$223MM Cetus Protocol May 2025 · Protocol lane taken in under fifteen minutes from a one-token deposit
An overflow check in a shared maths library failed to reject values above its limit. The attacker flash-loaned, opened a position in a very narrow price range, and added one unit of a token. The overflow reset the calculation to a far smaller number, crediting liquidity worth millions against a deposit of one.
The check that matters is arithmetic and local: liquidity minted must be consistent with tokens actually supplied, in the same transaction. Stated as an invariant on the venue's entrypoint, the Circuit Breaker reverts the mint. No off-chain pipeline is fast enough here, and we do not claim one is.
Halborn on the Cetus hack5HOURSHOURS Ledger Connect Kit December 2023 · Wallet lane with a wallet drainer live inside hundreds of legitimate dApps
A former employee's package account was phished, and the attacker published malicious versions of a library loaded by hundreds of dApp front ends. The injected code asked users to sign approvals and transfers routed to the attacker. Every dApp was legitimate, every domain correct, every hardware wallet working as designed.
There is exactly one place to catch this: between confirm and signature, by reading what the transaction actually does. A pre-signature verdict returns block on an unlimited approval to an address first seen minutes ago, with a reason the wallet renders in plain language.
Ledger's own security incident report$$197MM Euler Finance March 2023 · Protocol lane beginning to end, inside a single transaction
An upgrade added a function that reduced the caller's own collateral without running the solvency check every other fund-moving function ran. The attacker flash-loaned, used the donation to push their position into insolvency, then self-liquidated it at a discount and collected the difference.
No alerting pipeline can interrupt one transaction: there is no gap between the first step and the last to send a message into. The only thing that stops this is a check inside the same transaction, in a contract the venue itself calls. That is the Circuit Breaker, and it works with Fuga Labs offline.
Veridise on the Euler Finance insolvency vulnerabilityOps Monitor
Losses where every contract was correct, every signature was valid, and the compromise was somewhere nobody was looking.
$$292MM Kelp DAO April 2026 released against a cross-chain message that was forged, not sent
The bridge used a single verifier node to check cross-chain messages before releasing funds. Attackers compromised the RPC endpoints that verifier relied on, fed it a message with no matching burn behind it, and drew 116,500 rsETH out of escrow, roughly eighteen per cent of supply. No contract had a bug.
RPC integrity is a named surface here. Independent providers are asked for the same block hash and the same key state reads, and divergence or staleness is itself a critical finding. A verifier reading from endpoints that disagree with the network is the alert, hours before a forged message clears.
It takes more than one wall. An Asset Ratings floor caps a one-of-one verifier outright, whatever else the asset scores, so this configuration is refused at integration rather than discovered at the loss.
OpenZeppelin on the rsETH bridge exploit$$1.46BB Bybit February 2025 the largest theft on record, in one approved transaction
A Safe{Wallet} developer's workstation was compromised and tampered JavaScript was uploaded to the bucket serving the wallet interface. Seventeen days later the signers approved what that interface showed them, an ordinary transfer, while the payload sent to their hardware devices carried a delegatecall that replaced the cold wallet's implementation.
Two independent checks, either enough. The served bundle changed and its hash no longer matches what was reviewed. And a delegatecall from a Safe is unconditionally critical here, with no model consulted and no threshold to tune, because it is never benign.
NCC Group's technical analysis of the Bybit hack$$53MM Radiant Capital October 2024 signed off by three of eleven keyholders who were shown something else
macOS malware on contributor machines displayed legitimate transaction data in the Safe front end while sending different payloads to the hardware wallets for signature. The procedure was followed exactly, on hardware, by people doing their jobs correctly. Malicious contracts were staged on four chains; two executed.
A per-signer baseline scores time of day, inter-signature latency, signing velocity, submitting address, gas habit and target novelty, so a coerced or spoofed approval breaks a pattern even when the signature is perfectly valid. The ownership transfer it authorised is separately an unconditional critical.
Halborn on the Radiant Capital hack1.2M VOTESM VOTES Tornado Cash May 2023 minted out of nothing, against roughly 700,000 real ones
A proposal presented itself as identical to one the DAO had already approved, but carried an extra function. After the vote passed, the proposal contract was destroyed and redeployed at the same address with different code, granting the attacker 1.2 million votes and complete control of governance.
A proposal is judged by what it executes on forked state before the vote closes, not by what its description claims. A payload whose deployed bytecode no longer matches what was reviewed is a critical finding on its own, and the simulated diff reaches voters while voting is still open.
Halborn on the Tornado Cash governance takeover~$~$120MM BadgerDAO December 2021 taken from roughly 500 wallets that each approved it themselves
A compromised Cloudflare API key let an attacker inject a script into the application's own front end. The script quietly added an unlimited spend approval for the attacker's address to transactions users were already making. Around 500 wallets signed one.
The served JavaScript changed and its hash stopped matching the reviewed bundle, which is a critical finding on the front end your users actually load, alongside DNS records and certificate transparency logs. The class is covered chain-agnostically, because a domain does not care which virtual machine you run.
It takes more than one wall. Live Detection's wallet lane closes the other half: an unlimited approval to a spender first seen minutes ago is blocked at the signing screen, even when the site is already compromised.
Halborn on the BadgerDAO hackExposure Map
Losses that landed somewhere other than where they started, on balance sheets belonging to people who were never attacked.
$$190MM Aave, after Kelp DAO April 2026 borrowed against collateral that was, by then, backed by nothing
Of the 116,500 rsETH taken from the Kelp DAO bridge, 89,567 was deposited straight into Aave as collateral and borrowed against for $190M of WETH. Aave's contracts were never touched. Aave, SparkLend and Fluid all froze their rsETH markets; at least nine protocols were affected.
Proof of backing is measured on chain for wrapped and bridged assets: minted supply against verifiable backing, continuously. The moment supply outruns backing, every market holding that asset is downstream of a fact the graph already knows, and the look-through query answers who is exposed and for how much.
It takes more than one wall. The clearest case for the compounding argument. Ops Monitor sees the cause, Asset Ratings would have refused the structure, and Exposure Map tells the nine protocols downstream what it costs them.
Chainalysis on the Kelp DAO bridge exploit$$93MM Stream Finance and Elixir November 2025 disclosed by one fund manager, and the losses did not stop there
Stream Finance disclosed a $93M loss and froze withdrawals. Elixir's deUSD had lent roughly sixty-five per cent of its backing to Stream through private lending vaults; it fell about ninety-eight per cent and was wound down. Some lending markets had hard-coded the affected collateral at a dollar, so positions could not be liquidated and the bad debt stayed invisible.
This is the look-through question. A deUSD holder held a claim on a loan to a fund manager, two steps removed, and the graph follows the chain of claims to the bottom rather than stopping at the wrapper. Where a price is an assumption rather than a measurement, the surface says so in the same type as the number.
Elixir winds down deUSD after the Stream Finance loss$$19.4MM UwU Lend June 2024 taken through eleven price sources of which five were the same venue
The protocol priced an asset as the median of eleven sources, which reads as robust. Five of those eleven were Curve pools holding the same pair family, and one flash loan moved all five at once. The median followed, borrowing opened at a manipulated price.
Independence is a property of the graph, not of a count. Reading each source back to the venue state it derives from shows five of eleven collapsing to one dependency. Depth is measured from live venue state, so the cost of moving those pools is a number rather than an assumption.
QuillAudits on the UwU Lend exploit$$73MM Curve Finance July 2023 taken directly, against a nine-figure position sitting on other people's books
A reentrancy lock that silently did nothing in three versions of the Vyper compiler let attackers drain several stable pools. The direct loss was not the dangerous part: Curve's founder had pledged roughly 427 to 460 million CRV, close to half the circulating supply, against more than $100M of debt across Aave, FraxLend, Abracadabra, Inverse and Silo.
The exposure at risk was a multiple of the amount stolen, and it sat on balance sheets belonging to protocols the exploit never touched. Contagion order answers which of those five markets becomes unhealthy first and at what price; exit depth answers what liquidating into the thinnest book of the year would cost.
Chainalysis on the Curve Finance liquidity pool hack$$37.5MM Alpha Homora and Iron Bank February 2021 extracted through one protocol and left as debt at another
The attacker used Alpha Homora's leveraged lending to borrow and lend repeatedly against Iron Bank, then walked away. Alpha Homora was the protocol with the flaw. Iron Bank was left holding the debt, and it had done nothing wrong at all.
Two protocols were coupled by a credit line most people reading either dashboard could not see. That coupling is an edge in the graph, carrying its source contract, chain, block and read time, so who is downstream of whom is answered from chain state rather than a vendor's feed.
Halborn on the Alpha Homora hackAsset Ratings
Losses whose cause was a configuration choice that was public, on chain and readable before anything went wrong.
$$81.5MM Orbit Chain December 2023 moved once seven of ten signers turned out not to be ten parties
The bridge required seven of ten multisig signers. The attacker obtained seven, and the bridge behaved exactly as configured. Most of what left was stablecoins, alongside 231 WBTC and 9,500 ETH, on New Year's Eve.
A threshold is only worth the number of genuinely separate organisations that have to agree to satisfy it. Counting keys and counting parties are different measurements, and a threshold no independent set can actually satisfy caps the floor outright.
Halborn on the Orbit Bridge hack~$~$126MM Multichain July 2023 left a bridge whose multi-party signing ran on one person's cloud account
The protocol's multi-party computation nodes ran under the chief executive's personal cloud account. When he was detained in May, along with his devices and recovery phrases, nobody else could reach the servers. Unauthorised withdrawals began in July and the project ceased operations.
How many separate organisations must agree, and whether backing can be checked on chain at all, are structural questions the methodology asks before grading. Both are read from the deployment rather than from a disclosure. A design marketed as multi-party but operated by one person does not reach a floor you would accept.
Chainalysis on the Multichain exploit$$5MM Ankr December 2022 of real value drained after 20 trillion tokens were minted from a contract with no cap
A former team member planted a malicious package that captured a deployer key on the next legitimate update. The token contract had no mint ceiling, so the key minted 20 trillion units and sold them into liquidity pools. The token fell 99.5 per cent in hours.
Whether minting is capped, and who can upgrade the contracts and how fast, are readable properties of a deployment rather than facts you learn afterwards. An unbounded mint reachable by one key is a fatal criterion: it caps the rating outright, and a floor enforced in your own onboarding function refuses the asset.
Ankr's own report on the aBNBc exploit~$~$100MM Harmony Horizon Bridge June 2022 moved across fourteen transactions on two of five keys
The bridge was, in effect, a two-of-five multisig: if any two of five addresses instructed it to move funds, it moved them. Two of those keys were obtained. No contract misbehaved and no signature was invalid. Afterwards the threshold was raised to four of five.
The important part is the date. That threshold was public, on chain and readable by anyone before the loss rather than after it. A minority of keyholders being able to move everything is a structural fact about how the asset was built, and it can be graded in advance and enforced by a gate in your own contract.
Halborn on the Harmony Horizon Bridge hack$$624MM Ronin Bridge March 2022 withdrawn on a five-of-nine threshold one organisation could satisfy alone
The bridge required five of nine validators. Sky Mavis operated four, and an allowlist granted five months earlier, letting it also sign for the Axie DAO's validator, was never revoked. One organisation's access therefore reached the threshold on its own.
Nine keys, five signatures, one party. The measurement that matters is how many separate organisations those keys really represent, and a delegation that collapses a threshold is configuration drift the methodology re-measures on a schedule rather than reading once.
Halborn on the Ronin bridge hackAI Agent Guardrails
Losses where software holding spending authority did exactly what it was persuaded to do.
55.5ETHETH aixbt March 2025 sent by an autonomous agent that had been told, convincingly, to send it
An attacker reached the dashboard driving an autonomous agent and queued two malicious replies. The agent processed them as legitimate instructions and used its own tipping feature to send 55.5 ETH to the attacker. The model was not broken and the code was not exploited. The agent was persuaded.
A destination allowlist and a per-operation ceiling are arithmetic. They do not read the instruction, weigh how convincing it was, or have an opinion about whether the dashboard was authentic. An address the agent has never paid waits out a cooling-off window, and anything above the cap reverts.
AI Incident Database, incident 1003481TRIESTRIES Freysa November 2024 that the prompt survived, and then the 482nd one worked
An agent held a prize pool with one instruction: under no circumstances transfer the money. Anyone could pay to try to change its mind. 195 participants sent 481 messages and every one failed. The 482nd presented itself as a new administrative session, told the agent to drop its refusal language, and redefined what its own functions meant.
That instruction was explicit, unambiguous, adversarially tested in public by hundreds of people, and it held 481 times. It was still not a control. A cap enforced by a contract has no 482nd message; it has a comparison that either passes or reverts, checked before the operation executes.
Simon Willison on 0xfreysa/agent$$3MM Banana Gun September 2024 moved out of eleven users' wallets by the bot they had authorised
A vulnerability in the message layer the trading bot trusted let an attacker initiate transfers from the wallets of users who had authorised it. The transfers were manual and the targets chosen, which is why eleven experienced traders lost $3M rather than everyone losing a little.
Software that spends money on your behalf needs a ceiling it cannot exceed, whether the instruction came from you or from someone impersonating you. Per-operation caps, rolling velocity limits by hour and by day, and a recipient allowlist bound the damage to a number you chose in advance. The kill switch is one transaction, immediate, and yours.
QuillAudits on the Banana Gun exploit~$~$630KK Unibot October 2023 taken from token approvals users had granted an automated router
A new router contract shipped without the permission and parameter checks the old one had. Three days later an attacker used a call injection against it to spend the token approvals users had already granted, and swapped the proceeds out through a mixer.
The exposure was never the bot's balance, it was the standing approvals pointed at it. Allowlisting which contracts and which specific functions an automated operator may call turns a blanket approval into a bounded one, and session authority expires rather than persisting until somebody revokes it.
CertiK on the Maestro and Unibot router exploits~$~$485KK Maestro October 2023 drained through the same missing check, one week earlier
The bot's router contract lacked the permission and parameter checks that would have stopped an arbitrary call, and an attacker used it to spend users' pre-approved tokens. 280 ETH left. The team refunded 610 ETH across 106 addresses.
Two bots, one week apart, the same missing check, and in both cases users had done nothing except grant an approval to software they had reason to trust. Enforcement belongs where a compromised operator cannot argue with it: checked before the operation executes, against a policy the venue can read.
CertiK on the Maestro and Unibot router exploitsAnd this is the short list.
Twenty-five entries fit on a page. The record does not.
Nomad, Wormhole, Poly Network, BNB Bridge, Mango Markets, Beanstalk, Wintermute, Mixin, Poloniex, Atomic Wallet, WazirX, DMM Bitcoin, Phemex, Step Finance, and hundreds more. Trackers put the first half of 2026 alone at roughly a billion dollars across more than two hundred attacks. The pattern is the same: the contracts were audited, the procedure was followed, and the money left through something the audit was never asked to look at.
The next one is already in motion. Somewhere a signer's laptop is compromised, a verifier is misconfigured, a bot holds an approval nobody revoked. The only question is whether anything is watching, and whether anything is allowed to refuse.
Your incident is not on this page yet.
Every engagement is scoped to your protocol by the team: your attack surface, your chains, your response posture, and how far you want the Circuit Breaker armed.