Real hunter.ci scan verdicts on open-source Uniswap v4 hook repos. Every row is a real Foundry run transcribed from the JSON beside this page (leaderboard.json) — nothing is hand-edited. NEEDS_CONFIG / ERROR rows show why Hunter declined to run, so a PASS you see here is one Hunter actually earned.
3 PASS · 0 FAIL across 6 hook(s) in 4 repo(s). A PASS is value-conservation under fuzzing — a floor, not a full audit.
| Repo | Hook | Verdict | Detail |
|---|---|---|---|
AqilJaafree/v4-dynamic |
DynamicFeeHook |
✅ PASS | 5290 successful value-bearing ops across 5 handlers – the PASS is exercised |
asyncswap/async-swap |
AsyncRouter |
⏭️ NEEDS_CONFIG | no hook permissions detected (flags=0x0000) – not a deployable v4 hook, or its permissions are fully inherited (re-run with –flags 0xNNNN) |
asyncswap/async-swap |
ChronicleOracleAdapter |
⏭️ NEEDS_CONFIG | no hook permissions detected (flags=0x0000) – not a deployable v4 hook, or its permissions are fully inherited (re-run with –flags 0xNNNN) |
asyncswap/async-swap |
AsyncSwap |
⚠️ ERROR | forge could not build/run the suite: unresolved import: dependencies/v4-core-4/lib/solmate/src/auth/Owned.sol – the project is missing the dependencies de… |
leprechaun-dao/liquidation-hook |
FlashLiquidationHook |
✅ PASS | 3634 successful value-bearing ops across 5 handlers – the PASS is exercised [auto-mocked external deps: ILiquidationProtocol – result is conditional on ass… |
uniswapfoundation/v4-template |
Counter |
✅ PASS | 5317 successful value-bearing ops across 5 handlers – the PASS is exercised |
git clone --recurse-submodules https://github.com/<owner>/<repo> && cd <repo>
pipx run hunter-invariants scan src --json-out report.json # or: pip install, then python -m hunter.ci
Fuzzing, not proof; not a full audit. Deterministic generator, no LLM. Source: https://github.com/hunterinvariants/hunter-invariants.