Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/aeonfun/aeonnpx agentmods add skills/aeonfun/aeon/deploy-uni-hookWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/aeonfun/aeon/deploy-uni-hook)<a href="https://agentmods.dev/skills/aeonfun/aeon/deploy-uni-hook"><img src="https://agentmods.dev/badge/skills/aeonfun/aeon/deploy-uni-hook/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/aeonfun/aeon/deploy-uni-hook"><img src="https://agentmods.dev/badge/skills/aeonfun/aeon/deploy-uni-hook.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00123 | $0.06987 |
| Opus 5.5 | $0.00049 | $0.02795 |
| Sonnet 5.5 | $0.00025 | $0.01397 |
| Haiku 4.5 | $0.00012 | $0.00699 |
Grade A, and why
deploy-uni-hook scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
Copies of this mod
2 near-identical copies found in the catalogue:
- deploy-uni-hook — 100% identical, 0 lines differ
- deploy-uni-hook — 89% identical, 49 lines differ
How it starts
The opening of the file, as written. The whole thing — 192 lines — stays where its author put it; the contents beside it link to each section on GitHub.
${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) orfreeform(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 inchains.tsv(run./hook-deploy.sh chainsto list). Defaultbase-sepolia. Testnets:base-sepolia,unichain-sepolia,arbitrum-sepolia. Mainnets (testnet: false, e.g.base,ethereum,unichain,arbitrum,optimism,polygon,bnb,avalanche, ...) require BOTHarm:and an explicitchain:— the skill never targets mainnet by default.base-mainnetis accepted as an alias forbase.
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)
- Mainnet needs a triple lock. Never target a
testnet: falsechain unless${var}has BOTHarm:AND an explicitchain:<mainnet-name>— AND the instance hasHOOK_MAINNET_OK=1set as a repo variable (a third, operator-level lock enforced insidehook-deploy.sh, exit 7; store it as a variable, not a secret - a secret value of1masks every1in the run log, so tx hashes and links print as***). An instance that never authorized mainnet cannot broadcast there even if an armed message asks it to. This skill must only run on an instance whose inbound path is owner-gated (TELEGRAM_ALLOWED_USER_ID/ the multi-channel allowlist) — a mainnet deploy spends real gas, so an untrusted sender must never be able to dispatch it. On a mainnet chain, first read the deployer balance withcast balanceand abort (DEPLOY_HOOK_UNDERFUNDED) if it cannot cover the simulation'sEstimated amount required;hook-deploy.shindependently enforces a funding floor (exit 8), an optionalMAX_GAS_GWEIgas-price ceiling (exit 9), and warns if the deployer holds more thanHOOK_MAX_FLOAT_ETH(default 0.25) — a deploy key must hold gas float only, never LP or treasury capital. Log a clearMAINNETwarning in the output. - Simulate before every broadcast. If the simulation reverts, do not broadcast. Report the revert and exit
DEPLOY_HOOK_SIM_FAILED. - Dry-run is the default. Broadcast only when
${var}starts witharm:. - Key hygiene. The deployer key is a burner. Never print it. Never put it on a shell command line — always go through
./hook-deploy.sh, which reads it from the env inside the script. - Idempotency. Before broadcasting, read
memory/state/hook-deploys.json. If an identical brief already deployed within the last hour, do not re-deploy. The deploy script is also idempotent at the address level: it deploys to the canonical address (the first flag-matching CREATE2 salt for this exact(creationCode, flags, PoolManager)). If that address already holds code, an identical hook is already live, so the script logsALREADY_DEPLOYED <addr>and does nothing — the runner reports the existing address instead of deploying a duplicate. (HookMiner itself skips occupied addresses, so without this check a re-run would silently deploy another copy at a new address.)
What ships with it
12 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- hook-deploy.sh 18 KB runs code
- templates/AeonFee.sol 5.3 KB
- templates/chains.tsv 4.1 KB
- templates/DeployHook.s.sol 10 KB
- templates/DynamicFeeHook.sol 3.8 KB
- templates/foundry.toml 351 B
- templates/hook.env.example 755 B
- templates/Hook.sol 4.1 KB
- templates/Hook.t.sol 12 KB
- templates/HookFeeHook.sol 2.9 KB
- templates/MockERC20.sol 1.7 KB
- templates/NoOpHook.sol 1.5 KB
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago Changed · +17 lines · +16 tokens per session 6d9e2cb969f7
- 1mo ago Changed · +2 lines 8e88807e17f9
- 1mo ago Changed · +46 lines 605b296d976d
- 1mo ago First seen · 127 lines · 107 tokens per session scan A e232a3a30edf
deploy-uni-hook is a skill published in the GitHub repository aeonfun/aeon (782 stars, last pushed today), licensed MIT. It adds 123 tokens to every session and 6,987 once invoked, about $0.0005 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
flowcraft-config
Author, validate, and troubleshoot complete FlowCraft configuration: deployment documents (deploy.yaml with the runtime section, inference/workspace/sandbox/tool sub-documents, core/memory contracts, and graph JSON node wiring), craft.yaml application definitions, and plugin.json manifests. Use when writing or…
hello
What the hello plugin contributes to anvil; handed to agents by the host.
blockchain-web3
Solidity smart contracts, Web3 development, DeFi protocols, NFTs, EVM chains, Hardhat/Foundry tooling, and blockchain security. Use when writing smart contracts, building dApps, auditing contract security, or integrating Web3 wallets.
agent-blockchain-developer
Specialist subagent: Solidity, smart contracts, Web3, EVM, DeFi protocols, and blockchain development specialist. Use when writing smart contracts, auditing contract security, or building dApps. Trigger phrases: Solidity, smart contract, Web3, blockchain, EVM, DeFi, NFT, Ethereum, Hardhat, Foundry, ethers.js, wagmi.
api-interface-design
Use when designing public APIs, module boundaries, provider adapters, tool schemas, or data contracts.
explore
Explore the codebase and summarize how the project is wired.