configurator
Configure CCA (Continuous Clearing Auction) smart contract parameters through an interactive bulk form flow. Use when user says…
Generate Uniswap v4 hook contracts via OpenZeppelin MCP. Use when building custom swap logic, async swaps, hook-owned liquidity, custom curves, dynamic fees, MEV protection, limit orders, or oracle hooks.
$ npx -y skills add uniswap/uniswap-ai --skill v4-hook-generator --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/v4-hook-generatorContext preview
The summary Claude sees to decide when to auto-load this skill.
Generate Uniswap v4 hook contracts via OpenZeppelin MCP. Use when building custom swap logic, async swaps, hook-owned liquidity, custom curves, dynamic fees, MEV protection, limit orders, or oracle hooks.
name: v4-hook-generator description: 'Generate Uniswap v4 hook contracts via OpenZeppelin MCP. Use when building custom swap logic, async swaps, hook-owned liquidity, custom curves, dynamic fees, MEV protection, limit orders, or oracle hooks.' allowed-tools: Read, Glob, Grep, WebFetch, Bash model: opus license: MIT metadata: author: uniswap version: '1.0.0'
Generate Uniswap v4 hook contracts via the OpenZeppelin Contracts Wizard MCP tool. This skill guides you through selecting the right hook type, configuring permissions and utilities, assembling the canonical MCP JSON, and invoking the MCP tool to produce ready-to-compile Solidity code.
> **Security companion**: Generated hook code touches fund-handling contracts. Always apply the > `v4-security-foundations` skill immediately after generation to audit permissions, delta > accounting, and access control before deploying to any network.
Use this skill when you need to:
**Prerequisite / companion skill**: `v4-security-foundations` — run it before writing custom logic and again before deployment. Hook misconfiguration can drain user funds.
Choose the base hook type that matches your primary goal. If your hook has multiple goals, choose the type that covers the most critical concern and layer additional logic on top.
| Goal | Use Hook | | -------------------- | -------------------------- | | Custom swap logic | `BaseHook` | | Async/delayed swaps | `BaseAsyncSwap` | | Hook-owned liquidity | `BaseCustomAccounting` | | Custom curve | `BaseCustomCurve` | | Dynamic LP fees | `BaseDynamicFee` | | Dynamic swap fees | `BaseOverrideFee` | | Post-swap fees | `BaseDynamicAfterFee` | | Fixed hook fees | `BaseHookFee` | | MEV protection | `AntiSandwichHook` | | JIT protection | `LiquidityPenaltyHook` | | Limit orders | `LimitOrderHook` | | Yield on idle | `ReHypothecationHook` | | Oracle | `BaseOracleHook` | | V3-compatible oracle | `OracleHookWithV3Adapters` |
**Selection tips**:
built-in logic provides concrete value.
pricing algorithm.
(traders vs. JIT LPs). Clarify which attack vector you are mitigating.
`IUniswapV3Pool`-compatible oracle interface.
Before calling the MCP tool, confirm all six decisions:
1. **Hook type** — chosen from the decision table above 2. **Permissions to enable** — only the callbacks your logic actually uses (`beforeSwap`, `afterSwap`, etc.) 3. **Utility libraries** — `currencySettler`, `safeCast`, `transientStorage` as needed 4. **Shares** — `false`, `ERC20`, `ERC6909`, or `ERC1155` 5. **Access control** — `ownable`, `roles`, or `managed` 6. **Hook inputs** — `blockNumberOffset`, `maxAbsTickDelta` (only for hook types that use them)
All 14 permission flags with guidance on when to enable each. Start with all flags `false` and enable only what your hook logic requires. Every enabled permission increases the hook's attack surface and requires a specific bit to be set in the hook's deployed address (see address encoding note below).
| Permission Flag | Enable When | Risk | | --------------------------------- | --------------------------------------------------------------------------------------------------------------- | -------- | | `beforeInitialize` | You need to validate or restrict pool creation params | LOW | | `afterInitialize` | You need to set up state after a pool is created | LOW | | `beforeAddLiquidity` | You need to gate or transform LP deposits | MEDIUM | | `afterAddLiquidity` | You track LP positions or distribute rewards | LOW | | `beforeRemoveLiquidity` | You need lock-up periods or fee-on-exit logic | HIGH | | `afterRemoveLiquidity` | You track position removals for accounting | LOW | | `beforeSwap` | You modify swap behavior, apply dynamic fees, or block | HIGH | | `afterSwap` | You observe final swap state for oracles or accounting | MEDIUM | | `beforeDonate` | You restrict who may donate to the pool | LOW | | `afterDonate` | You track donation events
Uniswap-specific AI tools (skills, plugins, agents) for developers and AI agents integrating the Uniswap ecosystem.
Configure CCA (Continuous Clearing Auction) smart contract parameters through an interactive bulk form flow. Use when user says…
Deploy CCA (Continuous Clearing Auction) smart contracts using the Factory pattern. Use when user says "deploy auction", "deploy…
This skill should be used when the user asks to "provide liquidity", "create LP position", "add liquidity to pool", "become a…
This skill should be used when the user asks to "swap tokens", "trade ETH for USDC", "exchange tokens on Uniswap", "buy tokens",…
Security-first Uniswap v4 hook development. Use when user mentions "v4 hooks", "hook security", "PoolManager", "beforeSwap",…
Interactively collect and validate the parameters for a Uniswap v4 Permissioned Pool setup - chain, underlying token, allowlist…