Public registry of Uniswap v4 hook deployments across all supported chains.
hooks/<chain>/<address>.json— individual hook files, one per deployed hookhooklist.json— auto-generated aggregate of all hook files (built by CI on merge)chains.json— chain name → chain ID + block explorer API mappingschema.json— JSON Schema for hook filesscripts/aggregate.py— reads all hook files, validates against schema, outputshooklist.jsonscripts/validate.py— validates hook JSON files againstschema.jsonscripts/verify_flags.py— verifies hook flags match the address bitmaskscripts/parse_etherscan.py— parses Etherscan API responses, extracts source files to.sources/.github/workflows/analyze-hook.yml— CI: on issue open, Claude analyzes the hook and opens a PR.github/workflows/validate.yml— CI: on PR, validates schema + flag bitmask.github/workflows/review-hook.yml— CI: on PR, Claude reviews hook data against on-chain source.github/workflows/regenerate.yml— CI: on merge to main, rebuildshooklist.json.claude/prompts/analyze-hook.md— prompt for the analyze-hook workflow.claude/prompts/review-hook.md— prompt for the review-hook workflow
Each hook file has three sections: hook (identity + metadata), flags (14 Uniswap v4 permission bits from the address bitmask), and properties (dynamicFee, upgradeable, requiresCustomSwapData). See schema.json for the full spec.
nix-shell -p python312Packages.pytest python312Packages.jsonschema --run "cd scripts && python -m pytest test_aggregate.py -v"
This repository only allows rebase merges (no merge commits, no squash). Use gh pr merge <number> --rebase --delete-branch to merge PRs.
python scripts/aggregate.py