
Deployer
Deploy Uniswap Continuous Clearing Auction (CCA) contracts on-chain via the factory pattern when you already have a validated auction config and need reproducible CREATE2 addresses.
Install
npx skills add https://github.com/uniswap/uniswap-ai --skill deployerWhat is this skill?
- 7-step deployment workflow: disclaimer → config → validate → plan → confirm → commands → post-deploy
- CREATE2 via ContinuousClearingAuctionFactory for consistent addresses across chains
- Required pre-flight: educational disclaimer acknowledgment, config validation, factory address verification
- Allowed tooling: Read, Glob, Grep, Bash(forge:*), Bash(cast:*), Bash(curl:*), AskUserQuestion (or conversational fallbac
- Interactive parameter collection when AskUserQuestion is unavailable
Adoption & trust: 620 installs on skills.sh; 212 GitHub stars; 2/3 security scanners passed (skills.sh audits).
Recommended Skills
Journey fit
Contract deployment is the last gated step before an auction goes live on a network—canonical shelf is Ship because safety disclaimers, validation, and user confirmation mirror launch prep, not day-two ops tuning. Launch subphase fits factory deployments and go-live commands (forge/cast) rather than ongoing monitoring or infra patches.
Common Questions / FAQ
Is Deployer safe to install?
skills.sh reports 2 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.
SKILL.md
READMESKILL.md - Deployer
# CCA Deployment Deploy Continuous Clearing Auction (CCA) smart contracts using the `ContinuousClearingAuctionFactory` with CREATE2 for consistent addresses across chains. > **Runtime Compatibility:** This skill uses `AskUserQuestion` for interactive prompts. If `AskUserQuestion` is not available in your runtime, collect the same parameters through natural language conversation instead. ## Instructions for Claude Code When the user invokes this skill, guide them through the CCA deployment process with appropriate safety warnings and validation. ### Pre-Deployment Requirements Before proceeding with deployment, you MUST: 1. **Show educational disclaimer** and get user acknowledgment 2. **Validate configuration file** if provided 3. **Verify factory address** for the target network 4. **Confirm deployment parameters** with user ### Deployment Workflow 1. **Show Educational Disclaimer** (REQUIRED) 2. **Load or Request Configuration** 3. **Validate Configuration** 4. **Display Deployment Plan** 5. **Get User Confirmation** 6. **Provide Deployment Commands** 7. **Post-Deployment Steps** --- ## ⚠️ Educational Use Disclaimer **IMPORTANT: Before proceeding with deployment, you must acknowledge:** This tool and all deployment instructions are provided **for educational purposes only**. AI-generated deployment commands may contain errors or security vulnerabilities. **You must:** 1. ✅ **Review all configurations carefully** before deploying 2. ✅ **Verify all parameters** (addresses, pricing, schedules) are correct 3. ✅ **Test on testnets first** before deploying to mainnet 4. ✅ **Audit your contracts** before deploying with real funds **Use AskUserQuestion to confirm the user acknowledges these warnings before proceeding with deployment steps.** ### Input Validation Rules Before interpolating ANY user-provided value into forge/cast commands or deployment scripts: - **Ethereum addresses**: MUST match `^0x[a-fA-F0-9]{40}$` — reject otherwise - **Chain IDs**: MUST be from the supported chains list (1, 130, 143, 1301, 8453, 42161, 11155111) - **Numeric values** (supply, prices, blocks, chain IDs): MUST be non-negative and match `^[0-9]+\.?[0-9]*$` - **REJECT** any input containing shell metacharacters: `;`, `|`, `&`, `$`, `` ` ``, `(`, `)`, `>`, `<`, `\`, `'`, `"`, newlines - **Never** pass raw user input directly to shell commands without validation ### ⚠️ Permission Safety **Do NOT auto-approve `Bash(forge:*)` or `Bash(cast:*)` in your Claude Code settings.** Always require per-invocation approval for commands that spend gas or broadcast transactions. The PreToolUse hooks in `.claude/hooks/` provide programmatic validation as a safety net, but user approval per command is the primary control. --- ## 🔐 Private Key Security **CRITICAL: Handling private keys safely is essential for secure deployments.** ### ⚠️ Never Do These - ❌ **Never** store private keys in git repositories or config files - ❌ **Never** paste private keys directly in command line (visible in shell history) - ❌ **Never** share private keys or store them in shared environments - ❌ **Never** use mainnet private keys on untrusted computers - ❌ **Never** use `--private-key` flag (blocked by PreToolUse hook) ### ✅ Recommended Practices #### Option 1: Hardware Wallets (Most Secure) Use Ledger or Trezor hardware wallets with the `--ledger` flag: ```bash forge script script/Example.s.sol:ExampleScript \ --rpc-url $RPC_URL \ --broadcast \ --ledger ``` #### Option 2: Encrypted Keystore Create an encrypted keystore with `cast wallet import`: ```bash # I