SwanBluechipDefendMonthly reportsHow sureHack history
Hack history / Defend

What would have stopped them

Each way attackers got in, the controls that answer it, and how to check a control is really in place. Built from 3,121 counted thefts ($35.26B) and public security guidance.

Where the money wentSelf-checkWhere to look nowWhat came backWhat the lists missKeys, accounts and infrastructureSmart contract bugPhishing and scamsInsidersBridge and cross-chainPrice, oracle and governanceReview methodsSources

Most thefts are code bugs; most dollars go through keys and accounts.

IN PLAIN WORDSBugs in code happen most often (37% of thefts) but each one is usually small. Stolen keys and hacked machines are rarer, yet they took 47% of all the money. So the biggest wins come from guarding keys, not only from checking code.

Where the money went

Share of dollars stolen
Share of thefts

Bars by year: dollars stolen that year through that way in, scaled per box. Check against an outside count: Chainalysis puts 43.8% of 2024's stolen funds through private key compromise; here keys and accounts hold 33% of 2024, and 65% with signer phishing, where sources file some key thefts (DMM Bitcoin, $305M) as phishing.

Where to look now

IN PLAIN WORDSSome kinds of attack are growing and some are fading. Each line is one control: the hollow dot is how often its kind of attack happened from 2021 to 2024, the filled dot since 2025. Red lines are growing: check those controls first.

Review first: Fuzz or prove the invariants (10.8% → 15.3% of thefts), Access checks on every privileged function (9.9% → 12.8% of thefts), Verify every message and proof (1.6% → 3.9% of thefts), Cross-check oracles, stop on stale (1.3% → 2.5% of thefts), Snapshot votes, timelock proposals (0.7% → 1.8% of thefts)

Base: 1,607 counted thefts from 2021 to 2024, 812 since 2025, insiders left out (the sources stopped listing most rug pulls after 2024, so their fall is coverage, not safety). *Dollars leave out each window's single largest theft (Ronin Bridge, Binance CEX), which would otherwise decide the whole line. Individual phishing is undercounted here: CertiK counted 248 phishing incidents in 2025 against a handful in these lists, so the phishing lines are a floor.

Self-check

IN PLAIN WORDSTick the controls you already have. The first bar shows how much of the money stolen so far went through holes those controls close; the second, how ready you are to catch an attack and get money back. Pick who you are to see only your controls. Your ticks stay in this browser only.
Prevent: past losses answered0%
Detect and respond: ready0%
Prevent boxes carry the dollars of the methods they answer; detect and respond boxes split their way in's share.

What came back

IN PLAIN WORDSAfter a theft, money comes back in four ways: the attacker returns it (often for a bounty), an issuer or exchange freezes it, police seize it, or the platform pays users back. Attackers give money back most often after bridge and cross-chain thefts (5% of them), so a bounty offer is worth having ready. Money taken by insiders comes back in <1% of dollars.
Way inDollars back, as sources stateBackThefts by outcome
Keys, accounts and infrastructure
18%Returned by the attacker 10Frozen 21Recovered or seized 23Users reimbursed 31
Smart contract bug
27%Returned by the attacker 51Frozen 14Recovered or seized 38Users reimbursed 32
Phishing and scams
9%Returned by the attacker 1Frozen 4Recovered or seized 3Users reimbursed 3
Insiders: rug pulls, frauds, collapses
<1%Returned by the attacker 1Frozen 4Recovered or seized 6
Other
7%Returned by the attacker 4Frozen 1Recovered or seized 3Users reimbursed 2
Bridge and cross-chain
44%Returned by the attacker 5Frozen 5Recovered or seized 4Users reimbursed 7
Price, oracle and governance
10%Returned by the attacker 11Frozen 9Recovered or seized 10Users reimbursed 5

$5.99B of $35.26B came back in all, as sources state it (17%). Outcomes are read from source descriptions and are a floor: many returns are never reported back to the lists. Thefts by outcome: incidents whose description names that outcome.

Keys, accounts and infrastructure

The contracts work as written: the attacker holds a key, or a machine or service that can use one. 618 thefts, $16.72B (47% of counted dollars).

Methods, by dollars

Key Leaked via Infrastructure · 39$6.64B
Weak Key Generation · 10$3.64B
Hot Wallet Key Compromised · 60$3.12B
Private Key Compromised · 71$1.25B
Validator Key Compromised · 11$891.6M
Supply Chain Attack · 21$238.7M

Largest cases

Binance CEX 2026 · $6.30BLuBian 2020 · $3.50BRonin Bridge 2022 · $624MCoincheck 2018 · $534M

Controls: prevent, detect, respond

Smart contract bug

The contract does what its code says, and the code allows the theft. 1,170 thefts, $5.56B (16% of counted dollars).

Methods, by dollars

Improper Access Control · 143$1.28B
Arithmetic Error · 34$504.2M
Signature Verification Flaw · 14$422.9M
Proxy Upgrade Hijack · 6$420.5M
Reentrancy · 64$387M
Donation Attack · 16$368.7M

Largest cases

Poly Network 2021 · $611MPortal 2022 · $326MDrift Trade 2026 · $285MCetus CLMM 2025 · $223M

Audits

Of 158 code-bug thefts whose audit status a source states, 67 had no audit, 46 were hit in code the audit did not cover, 43 were audited with the scope not stated, and 2 in audited code. Audit scope matters as much as the audit.

Controls: prevent, detect, respond

Phishing and scams

A person is led to approve, run or reveal something: a signer, an employee, a holder. 160 thefts, $4.05B (11% of counted dollars).

Methods, by dollars

Signer Phishing · 5$1.70B
Phishing · 30$1.06B
not stated · 66$555M
Malware · 12$332.3M
Scam · 12$221.4M
Phishing attack · 15$70M

Largest cases

Bybit 2025 · $1.46BFTX 2022 · $477MDMM Bitcoin 2024 · $305MCrypto holder loses $283 million to scammer impersonating wa 2026 · $282M

Controls: prevent, detect, respond

Insiders: rug pulls, frauds, collapses

The people who run it take the money: a rug pull, an admin drain, an exchange that stops paying out. 349 thefts, $3.92B (11% of counted dollars).

Methods, by dollars

Scam · 4$2.53B
Rug Pull · 244$688.4M
not stated · 48$339.8M
Admin Drain · 21$180.8M
Liquidity Rug · 9$69.8M
Unknown · 1$56.5M

Largest cases

Thodex 2021 · $2.50BLIBRA 2025 · $250MFreeway halts withdrawals, accused of $160 million rug pull 2022 · $160MArgentinian president Javier Milei promotes memecoin that th 2025 · $107M

Controls: prevent, detect, respond

Bridge and cross-chain

Funds locked on one chain are released on another on a message the bridge should not have trusted. 94 thefts, $1.69B (5% of counted dollars).

Methods, by dollars

Proof Verifier Bug · 4$572.8M
Unbacked Cross-Chain Mint · 7$334.4M
Cross-Chain Message Spoofing · 7$308.4M
Forged Proof · 19$270.5M
Unknown · 3$113.3M
Bridge Logic Flaw · 17$34.7M

Largest cases

Binance Bridge 2022 · $570MLiquid Network 2026 · $320MKelp 2026 · $292.5MNomad 2022 · $190M

Controls: prevent, detect, respond

Price, oracle and governance

The code is correct; the price, vote or market it trusts is moved within a block or two. 346 thefts, $1.34B (4% of counted dollars).

Methods, by dollars

Spot Price Manipulation · 134$839.9M
Flashloan Governance Attack · 5$187.9M
Market Maker Bot Exploited · 1$100M
Malicious Proposal · 18$59.3M
Stale Oracle Price · 8$31.6M
Governance Attack · 2$30M

Largest cases

Beanstalk 2022 · $182MCREAM Lending 2021 · $130MMango Markets V3 2022 · $115MBitget 2025 · $100M

Controls: prevent, detect, respond

What these lists miss: phishing of individuals

IN PLAIN WORDSMost phishing steals from one person at a time, so it rarely makes the hack lists this data comes from. A firm that watches wallet-drainer sites counts far more. The top bar is their count, the bottom bar is ours: the gap is what this page cannot see.
Scam Sniffer: wallet drainers on EVM chains
This dataset: phishing of individuals
2023
$295.5M · 324,000 victims
$61M · 23 incidents · 10 of $1M+
report
2024
$494M · 332,000 victims · 30 cases of $1M+
$96.5M · 12 incidents · 6 of $1M+
report
2025
$83.8M · 106,106 victims · 11 cases of $1M+
$96.5M · 8 incidents · 4 of $1M+
report

The two do not count the same thing: Scam Sniffer counts drainer signatures on EVM chains (no address poisoning, no fake support), this dataset counts the cases the hack lists carry, on any chain. Some of ours are theirs (the $55.5M setOwner theft of August 2024 is in both). Scam Sniffer publishes yearly totals and a few cases dated by month, with no reuse licence, so they are shown here as a reference and not added as incidents. Their 2025 drop (−83%) is their finding, not ours.

Review methods and what they cover

IN PLAIN WORDSDifferent checks catch different holes. A code audit cannot see a stolen key, and a key review cannot see a bug. Pick checks so every coloured column has a dot.
MethodKeysSmartPhishingInsiders:OtherBridgePricePast $ in reach
Code audit, scope matched to the deployed code····24%
Invariant fuzzing or formal verification····24%
Fork test of flash loan and oracle attacks······4%
Key inventory and key ceremony review·····52%
Signing drill with an independent second check·····59%
Access review: staff, partners, CI and hosting····63%
Phishing and red-team exercise·····59%
On-chain monitoring with a pause runbook···72%
Owner powers and liquidity lock read······11%

Past $ in reach: the counted dollars of the ways in the method looks at. It is an upper bound: a method in reach of a hole still has to be done well to find it.

Sources and limits

Losses and methods are this dataset's counted thefts, with each method as the first source names it; a control's dollars are the losses of the methods it answers, split between controls that answer the same method. Detect and respond controls split their way in's share evenly and count toward the second score. A control marked "from the data" is this site's reading of repeated cases, without an outside standard behind it. Guidance is general: it is not an audit of any system and does not promise a control would have stopped a given theft.

Cite this pageSwanBluechip, "What would have stopped them", Crypto hack history, https://swan-hack-tracker.pages.dev/history/defend/ (data as of 2026-10-31).
All incidentsDatasetHow sure