Findings

Every exploit found. Every attacker stopped.

Critical
1
High
3
Medium
1
Low
1
Info
1

We are Satoshi's Army.

Our engine does not just run predefined rules. We operate the largest and most aggressive simulation, try-and-error, and back-testing system in Web3 security. We chain attack events, replay exploit sequences, and actively hunt for new vulnerability patterns — ones that no existing tool has catalogued, no registry has named.

We find what others miss. We name it, document it, and build a detector for it — before the next protocol gets hit.

Think of us as the antivirus of smart contracts. Not just signature-matching against known threats — actively seeking the unknown, discovering new attack surfaces, and publishing our findings to protect everyone.

This is a non-stop war field. On one side: attackers trying to break into people's wallets, drain protocols, steal savings. On the other: us — Satoshi's Army. Engineers, researchers, and contributors who chose a side and showed up.

We are the last non-governmental, non-private-equity security team that works for people, by people. Our users are not a product. Our roadmap is not controlled by a board. We are here to make sure that every user, every family, every friend who touches DeFi has someone watching their six.

Not a GPT wrapper Finds novel vulnerabilities Non-governmental People by people Satoshi's Army
Critical 01 / 07
0.97

Reentrancy drains the vault

Vault.sol:184 — withdraw()

External call returns control before balance is decremented. Attacker re-enters recursively, draining full TVL in one transaction.

High 02 / 07
0.99

Missing access control on transferOwnership

Access.sol:92 — transferOwnership()

No onlyOwner modifier. Any caller can rotate the ownership pointer and unlock all admin functions in one transaction.

High 03 / 07
0.91

Read-only reentrancy leaks stale state

Vault.sol:67 — balanceOf()

View function called mid-transaction returns pre-update state. Integrators reading this to price collateral accept inflated balances.

High 04 / 07
0.94

Unchecked return on low-level call in claim

Rewards.sol:214 — claim()

Result of .call{value:}() discarded. Silent failure path marks the user paid while funds stay in contract.

Medium 05 / 07
0.86

Integer truncation in mint loses high bits

Token.sol:148 — mint()

uint256 downcast to uint128 without bounds check. Values above 2¹²⁸ wrap silently — supply ledger is wrong.

Low 06 / 07
0.99

Missing zero-address check in register

Registry.sol:19 — register()

Recovery requires a redeploy if address(0) is registered as a permitted caller. Not exploitable alone; recovery cost is asymmetric.

Total findings
7
across 3 files
PoC exploits
4
runnable · forge-ready
Est. remediation
3days
with provided fixes
Audit cost saved
$28k
vs. enterprise audit firm
For everyone who isn't a Solidity engineer

No need to know the code. The AI translates and fixes.

Every finding ships with two human-readable companions: a plain-English explanation of what went wrong, and an auto-generated patch that resolves it. You don't need to read Solidity to ship a safer contract.

Plain English RE-01 · Critical

"Your vault hands out money before writing down what's gone."

When a user withdraws, the contract sends ETH first and only then updates their balance. A malicious contract can hijack that gap — re-call withdraw() from its fallback before the balance is zeroed — and drain the entire vault in one transaction. Same family as the 2016 DAO hack.

In short Update state first. Then transfer. Never the other way around.
Auto-fix · drop-in patch + checks-effects-interactions
184- (bool ok,) = msg.sender.call{value: amt}("");
185- require(ok, "transfer failed");
186- balances[msg.sender] -= amt;
184+ balances[msg.sender] -= amt;
185+ (bool ok,) = msg.sender.call{value: amt}("");
186+ require(ok, "transfer failed");
Apply One click in the dashboard, or copy as a forge patch. Re-runs the scan and confirms the finding is cleared.
Plain-English coverage 514/514 detectors
Auto-fix coverage 88/514 detectors
Fix → re-scan loop 2.1s avg
Reviewed by SWC + 9 incident records
Next · Brain

The Brain. Every detector descends from someone's bad day.

See the brain
v3.24.0 · findings