The library
that teaches the hunt.
Every detector descends from someone else's bad day. Three thousand SWC entries. Forty-one ingested incidents — Parity, DAO, bZx, Poly, Nomad, Ronin, and the smaller ones nobody wrote about. The brain is what makes the scan more than a guess.
SWC entries
3,047
Smart Contract Weakness Classification — full mirror
Ingested incidents
412
Public post-mortems, parsed and indexed
Detector→exploit edges
1,864
Each detector traces back to N real incidents
Bytes of historical loss
9.7B USD
Lifetime damage represented by this corpus
Last refresh
26min ago
Continuous ingest from 14 disclosure feeds
The strata
Nine layers of somebody's bad day.
Sediment, deposited year by year. Each stratum is a class of vulnerability that taught the field a lesson. The detectors above ground are the field's reply. We do not invent attack shapes — we listen.
2016VI
SWC-107 · Reentrancy
The DAO
An external call before a state write. The caller re-entered
splitDAO recursively and drained 3.6M ETH before the balance ever decremented. Hard-fork was the only patch that stuck.
Bytes lost
$60M · 3.6M ETH
4
detectors
2017V
SWC-105 · Multisig logic · Library kill
Parity Wallet — twice
First, an unprotected
initWallet let anyone seize ownership. Then a self-destruct on the shared library node bricked every wallet that depended on it. Library code is contract code; the field had to relearn this.
Bytes lost
$320M · 587k ETH frozen
3
detectors
2018IV
SWC-101 · Arithmetic
batchOverflow / proxyOverflow
An unchecked multiplication on token amounts wrapped past 2²⁵⁶. Attackers minted unlimited supply of multiple ERC-20s. SafeMath stopped being optional after this.
Bytes lost
$1.2B · supply inflation
5
detectors
2019III
SWC-115 · Access control · tx.origin
bZx margin trading
A flashloan-funded position skewed an internal price. The contract allowed an action that, against an honest oracle, would never have priced. Two days, same contract, two ways in.
Bytes lost
$954K · two flashloan attacks
3
detectors
2020II
SWC-122 · Oracle manipulation
Harvest, Cheese, Value DeFi
Spot price as oracle. A single AMM swap was enough to move the read. Year of the manipulated TWAP — the field finally agreed that a quote is not a truth.
Bytes lost
$118M · combined
6
detectors
2021I
SWC-100 · Cross-chain message verification
Poly Network
A function intended to update a relayer set was callable by anyone, with the wrong owner check. A single transaction across three chains drained the bridge. Attacker returned the funds. Lesson kept.
Bytes lost
$611M · returned
4
detectors
2022I
SWC-117 · Signature malleability · ECDSA
Nomad · Ronin · Wormhole
An initializer left a default zero hash that authenticated any message. A multisig where five of nine keys were on one box. A signature-verification skip after a routine guardian update. Three different bridges, three different lessons; one underlying class — trust the verification, not the comment.
Bytes lost
$1.07B · across three
5
detectors
2023I
SWC-122 · Read-only reentrancy · price as truth
Curve · Mixin · KyberSwap
View functions that read mid-state during a cross-call still returned the unfinished value. Pools that priced off it were drained. The reentrancy class did not need a write to return; only a read at the wrong instant.
Bytes lost
$220M · combined
3
detectors
2024I
SWC-136 · Storage collision · upgrade slot
Munchables · Penpie · Radiant
Proxy upgrades whose new layout overlapped a privileged slot. A malicious implementation rewrote the wrong word and unlocked the wallet. Storage layout is not a comment — it's a contract.
Bytes lost
$103M · combined
2
detectors
Sources / mirrors
- Registry SWC-Registry · ConsenSys · v1 + v2
- Registry EIP catalog (security-relevant)
- Feed rekt.news disclosure index
- Feed SlowMist · Hacked archive
- Feed Immunefi disclosed bounties
- Feed Code4rena public reports
- Mirror Etherscan event-log archive
- Mirror Project post-mortems · 122 active
The lineage
Every detector points backward.
Eight detector families on the left. Nine strata across the top. A dot is an edge: this detector exists because that incident happened. Density grows with the count of incidents that fed the rule. The brain remembers; the hunt acts.
Detector family
2016 · DAO
2017 · Parity
2018 · Arithmetic
2019 · Access
2020 · Oracle
2021 · Bridge
2022 · Signature
2023 · Read-only RE
2024 · Storage
REReentrancy
ACAccess control
ARArithmetic
OROracle manipulation
XCExternal call
SGSignature
STStorage / layout
DSDenial of service