Audit tooling

Pre-audit checklists

Pick a protocol category. You get the root causes that killed similar protocols, the protocols they killed, and the checks that find them.

Tokens & ERC-20

01

Overflow in batch transfers

value * count (or value + fee) wraps unchecked — the sum passes the balance check while each receiver gets the huge value.

KilledBEC ($6B at peak)SmartMesh

Checks

  • Every batch transfer: checked math on the sum?
  • grep -rn "unchecked" <repo> in transfer logic
02

Public _transfer / _mint

A transfer helper left public (or default visibility) lets anyone move anyone's tokens.

KilledCF Token

Checks

  • grep -rn "function _transfer\|function _mint\|function _burn" <repo> — visibility correct on all?
03

Mint-on-self-transfer

transfer(ownAddress) triggers the reward/burn logic on the sender — looping self-transfers inflates the balance.

KilledLPC

Checks

  • Self-transfer must be a no-op. Test transfer(address(this), x).
04

Fee-on-transfer vs accounting

The token takes a cut on transfer but the contract books the full amount — the ledger desyncs.

KilledFee-on-transfer class

Checks

  • Balance by delta: measure before/after, never trust the argument
05

Permit replay / signature flaws

Missing nonce/chainId/domain checks (or malleable signatures) let permits replay or be forged.

KilledSignature-validation class

Checks

  • permit: nonce++, chainId bound, s-malleability check?
06

Backdoor mint / owner relay

A hidden owner-only drain or an ownership chain relayed through dozens of wallets empties everything locked.

KilledDxSale locker ($7.3M via 89-wallet relay)SKP rug

Checks

  • Map every privileged function — is any of them a silent drain?