The DAO hack of 2016 forced Ethereum to hard-fork itself. $60 million gone through a reentrancy bug that, in hindsight, everyone wishes had been caught earlier.
So we ran the contract through our production security engine — today, exactly as it ships, no retro-fitted rules — and it caught both kill vectors in 44 milliseconds.
Then we did five more.
The Setup
We took six of the most infamous smart contract disasters in history from the public not-so-smart-contracts corpus (Trail of Bits) and ran them through the Nexus EVM Sentinel engine v5.7.2 — the same engine that's live and callable right now.
No cherry-picking. No tuning. The exact production endpoint.
The Results
| Historic Disaster | Loss | Verdict | Latency |
|---|---|---|---|
| The DAO (2016) | $60M | 🔴 CRITICAL — BS-006 Reentrancy + BS-013 Privilege Takeover | 44 ms |
| Unprotected (Parity-class) | $280M class | 🔴 CRITICAL — BS-013 Unprotected Owner | 8 ms |
| The Run (bad randomness) | ~$800K | 🔴 CRITICAL — BS-012 Bad Randomness | 13 ms |
| SpankChain (2018) | $40K | 🟠 HIGH — BS-006 Reentrancy + BS-007 Replay | 43 ms |
| King of the Ether Throne (2016) | ~$150K | 🟠 HIGH — BS-006 + BS-009 | 12 ms |
| Rubixi (2016 pyramid) | ~$13K | 🟡 MEDIUM — BS-009 | 12 ms |
Six for six. Median latency: 12.5 ms.
The Details That Matter
The DAO — two vectors, one pass
The engine flagged payOut, refund, and executeProposal as reentrancy surfaces and caught the unprotected account-management function in the same scan. Two independent kill vectors, 44 ms.
The Run — entropy hiding in a private helper
The block.number-derived "randomness" lived in a private function reached through a fallback→init→Participate call chain. Naive pattern matching on public functions misses it. The engine's call-graph closure caught it — flagged critical.
Unprotected — 8 milliseconds
changeOwner with no access control. The same bug class that froze $280M in Parity's multi-sig. Eight milliseconds — less time than this sentence took to read.
Why This Isn't Just Regex Noise
Every rule in the engine was forged on real-world corpus cases and proven with negative controls before shipping:
- 13 breach scenarios (BS-001 → BS-013), each derived from real incident classes
- Quantitative Gas Asymmetry ratio — the validator-DoS vector, measured not guessed
-
EIP-1153 aware —
tstorereentrancy guards are recognized as valid, not flagged - ERC-4626 aware — open deposit/mint in a vault is by-design, not a bug
- Benchmarked vs Slither on the same corpus: 8/8 historic ToB cases recalled vs Slither's 4/8, with 0 false positives on clean OpenZeppelin code
Try It Yourself — Free, 13ms, No Signup
The dry-run endpoint is free forever:
curl -X POST https://xibzsthfrbomefnvbicb.supabase.co/functions/v1/hello-world/gateway/dry-run \
-H "Content-Type: application/json" \
-d '{"source_code": "contract T { function transfer(address t, uint256 a) public { } }"}'
Paste any Solidity contract. Get 13 breach scenarios, the gas asymmetry ratio, and a deployable verdict — before you finish reading this paragraph.
The Full Attestation — $2.25
When you want everything the engine knows about your contract, POST /x402/fitness/full returns in one machine-readable attestation:
- Gas Efficiency Rank — per-function estimates vs. a mainnet-calibrated cohort (USDC, WMATIC, Uniswap, OpenZeppelin — calibrated against 368+ real Polygon transactions)
-
Dependency advisories — from your packages and imports auto-extracted from your Solidity, each with its raw CVSS vector (
CVSS:3.1/AV:N/AC:L/...) parsed to a real score - Exploitability Score 0–100 per advisory — fixed public formula, no vibes
- Source match — your source vs. the deployed bytecode on-chain (Blockscout-verified)
-
CycloneDX SBOM — facts only,
legal_weight: 0
Payment is x402-native: HTTP 402 with a valid accepts envelope (USDC on Polygon). Your agent pays and gets the attestation in the same exchange. No invoices, no accounts.
curl -X POST https://xibzsthfrbomefnvbicb.supabase.co/functions/v1/hello-world/x402/fitness/full \
-H "Content-Type: application/json" \
-H "x-client-id: your-agent-id" \
-d '{"files": [{"path": "C.sol", "source": "<your source>"}], "address": "<polygon address>"}'
The historic contracts had one advantage yours doesn't: we already know how their stories ended.
Yours hasn't been exploited yet. Keep it that way.
Full writeup with all six case details: audits/HISTORIC_BUGS_TEASER.md
Engine: Nexus EVM Sentinel · v5.7.2-frontier · deterministic, independently verifiable, legal_weight: 0
Top comments (0)