Individual skill
deploy-uni-hook
Generate, simulate, audit, and deploy a Uniswap v4 hook + test pool from a brief, on any Uniswap v4 chain (every testnet and mainnet) - pre-audited templates or a from-scratch freeform hook (flags auto-derived; static audit + dangerous-pattern scan + a behavioral forge test + fork sim gate the deploy). Dry-run by default; explicit arm: to broadcast; testnet default, mainnet behind a double opt-in; records the deploy to main. Every deployed hook inherits a mandatory 10 bps AeonFee protocol fee.
skills/deploy-uni-hook/SKILL.md
Source commit 25575a6be3bfab41925964de55654056a2fe0c39
What was checked
- Matches the observed repository HEAD
- Yes
- Scanner rules are current
- No
- Repository scan complete
- No
- Skill scan complete
- No
- Observed behavior
- Not checked yet
- Last checked
- Nov 6, 2026
These are observations at the recorded commit, not a guarantee of safety. Review the source before running it.
Install this skill
Choose an agent in your Stack or copy a command below. Commands fetch the pinned commit and copy only this skill directory. Existing destinations are refused. Copying a command does not install anything.
An install command is unavailable: current rules, complete repository and skill scans, an eligible behavior level and a permitted license are required.
Repository context
- Repository stars (not skill ratings)
- 789
- Repository last updated
- Nov 7, 2026
- License
- MIT
Observed agent integration: No specific integration evidence. Standard SKILL.md installation does not imply verified compatibility.
- ai-agents Repository topic
- claude-code Repository topic
- agent-framework Repository topic
- agents Repository topic
- ai Repository topic
- anthropic Repository topic
- claude Repository topic
- harness Repository topic
- llm Repository topic
- automation Repository topic
- crypto Declared skill tag
- dev Declared skill tag
- onchain Declared skill tag
- security Derived category
- testing Derived category
Files and excerpt
File metadata and permitted, redacted excerpts come from the recorded scan. Source links are pinned to that commit.
Browse files
SKILL.mdcore · 27,783 bytesSKILL.mdcore · 27,783 bytesSKILL.mdcore · 27,783 bytesSKILL.mdcore · 27,783 bytesSKILL.mdcore · 27,783 bytesSKILL.mdcore · 27,783 bytesSKILL.mdcore · 27,783 bytesSKILL.mdcore · 27,783 bytesSKILL.mdcore · 27,783 bytesSKILL.mdcore · 27,783 bytesSKILL.mdcore · 27,783 byteshook-deploy.shruns · 21,387 bytestemplates/AeonFee.solasset · 5,478 bytestemplates/DeployHook.s.solasset · 10,994 bytestemplates/DynamicFeeHook.solasset · 3,932 bytestemplates/Hook.solasset · 4,327 bytestemplates/Hook.t.solasset · 12,111 bytestemplates/HookFeeHook.solasset · 3,056 bytestemplates/MockERC20.solasset · 1,778 bytestemplates/NoOpHook.solasset · 1,641 bytestemplates/chains.tsvasset · 4,246 bytestemplates/foundry.tomlasset · 351 bytestemplates/hook.env.exampleasset · 1,087 bytes
Read excerpt
> **${var}** — the hook brief. Grammar: `[arm:][template:<name>] [chain:<name>] <brief>`
> - `` (empty) → print help and exit `DEPLOY_HOOK_EMPTY`.
> - `<brief>` → **dry-run**: generate, compile, mine, and simulate. Never broadcasts. *[default — no prefix]*
> - `arm:<brief>` → **broadcast**: do the full dry-run first, then deploy for real if the simulation passes.
> - `template:<name>` → force a mode: `dynamic` | `noop` | `skim` (pre-audited templates) or `freeform` (build a whole hook from the prompt). Omit to auto-pick: a brief that matches a template uses it; anything else → `freeform`.
> - `chain:<name>` → any Uniswap v4 chain in `chains.tsv` (run `./hook-deploy.sh chains` to list). Default `base-sepolia`. Testnets: `base-sepolia`, `unichain-sepolia`, `arbitrum-sepolia`. Mainnets (`testnet: false`, e.g. `base`, `ethereum`, `unichain`, `arbitrum`, `optimism`, `polygon`, `bnb`, `avalanche`, ...) require BOTH `arm:` and an explicit `chain:` — the skill never targets mainnet by default. `base-mainnet` is accepted as an alias for `base`.
Today is ${today}. This skill turns a one-line brief into a live Uniswap v4 hook. It is built to be safe: it simulates every deploy before it broadcasts, it defaults to a dry-run on testnet, and it needs an explicit `arm:` to move on-chain.
## Why this design
A hook binding is immutable and a bad hook can brick a pool or steal funds. So the gates sit BEFORE the deploy: two of them (`dry-run` then `arm:`), a mandatory simulation, and idempotent state. Everything after the broadcast is just recording what already happened — appended to `memory/state/hook-deploys.json` on `main`, no PR (there is nothing left to review). The Foundry flow is the proven one — mine a CREATE2 salt so the address carries the right hook-flag bits, deploy, initialize the pool, add liquidity, run one swap.
## Safety contract (do not skip)