configurator▌
uniswap/uniswap-ai · updated Apr 8, 2026
MDX-style export adds YAML metadata + attribution linking explainx.ai and this canonical listing URL.
Configure Continuous Clearing Auction (CCA) smart contract parameters for fair and transparent token distribution.
CCA Configuration
Configure Continuous Clearing Auction (CCA) smart contract parameters for fair and transparent token distribution.
Runtime Compatibility: This skill uses
AskUserQuestionfor interactive prompts. IfAskUserQuestionis 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 a bulk interactive form configuration flow using AskUserQuestion. Collect parameters in batches to minimize user interaction rounds.
Bulk Interactive Form Rules
- Batch questions - Ask up to 4 questions at once using a single AskUserQuestion call
- Allow direct input - For fields requiring custom values (addresses, numbers):
- Provide a "Not available yet" or "Skip for now" option
- The "Other" option (automatically provided) allows direct custom input
- NEVER ask "Do you have X?" as a separate question
- Store answers - Keep track of all collected values in a configuration object
- Validate after collection - After each batch, validate all inputs before proceeding
- Show progress - After each batch, show which parameters are collected and which remain
Configuration Flow
Collect parameters in these batches:
Batch 1: Task Selection (1 question)
Question 1: Task Type
- Prompt: "What would you like to do with CCA?"
- Options: "Configure auction parameters", "Generate supply schedule only", "Review existing config", "Deploy existing config"
After collection: If not "Configure auction parameters", skip to appropriate section.
Batch 2: Basic Configuration (4 questions)
Question 1: Network
- Prompt: "Which network to deploy on?"
- Options: "Ethereum Mainnet", "Unichain (Mainnet)", "Unichain Sepolia (Testnet)", "Base", "Arbitrum", "Sepolia"
- Store:
chainId,blockTime,rpcUrl,currencyDecimals(for selected currency)
Question 2: Token Address
- Prompt: "Token to be auctioned?"
- Options: "Token not deployed yet" (placeholder), Custom address (via "Other")
- Validation: Must be 42 chars starting with 0x
- Store:
token
Question 3: Total Supply
- Prompt: "How many tokens to auction?"
- Options: "100 million tokens (18 decimals)", "1 billion tokens (18 decimals)", "10 billion tokens (18 decimals)", Custom (via "Other")
- Validation: Must be <= 1e30 wei
- Store:
totalSupply
Question 4: Currency
- Prompt: "What currency should bidders use?"
- Options: "ETH (Native)", "USDC on [network]", "USDT on [network]", Custom ERC20 (via "Other")
- Validation: Must be 42 chars starting with 0x or address(0)
- Store:
currency
After collection: Validate all inputs, show summary of basic configuration.
Batch 3: Timing & Pricing (4 questions)
Question 1: Auction Duration
- Prompt: "How long should the auction run?"
- Options: "1 day", "2 days", "3 days", "7 days", Custom blocks (via "Other")
- Calculate blocks based on network block time
- Store:
auctionBlocks
Question 2: Prebid Period
- Prompt: "Include a prebid period? (time when no tokens are sold)"
- Options: "No prebid period (0 blocks)", "12 hours", "1 day", Custom blocks (via "Other")
- Calculate blocks based on network block time
- Store:
prebidBlocks
Question 3: Floor Price
- Prompt: "Starting floor price? (ratio of currency per token)"
- Options: "0.10x (10% of 1:1 ratio)", "0.01x (1% of 1:1 ratio)", "0.001x (0.1% of 1:1 ratio)", Custom ratio (via "Other")
- Calculate Q96 value accounting for decimal differences:
Q96 * ratio / 10^(tokenDecimals - currencyDecimals) - For USDC (6 decimals) and 18-decimal token:
Q96 * ratio / 10^12 - For native ETH (18 decimals) and 18-decimal token:
Q96 * ratio / 10^0 = Q96 * ratio - Store:
floorPriceRatio,floorPrice(Q96),tokenDecimals,currencyDecimals
Question 4: Tick Spacing
- Prompt: "Tick spacing as percentage of floor price?"
- Options: "1% of floor price (Recommended)", "10% of floor price", "0.1% of floor price", Custom percentage (via "Other")
- Calculate:
tickSpacing = int(floorPrice * percentage) - CRITICAL: Round floor price DOWN to be evenly divisible by tick spacing:
roundedFloorPrice = (floorPrice // tickSpacing) * tickSpacing- Verify:
roundedFloorPrice % tickSpacing == 0must be true
- Validate: Tick spacing must be >= 1 basis point of floor price
- Store:
tickSpacingPercentage,tickSpacing(Q96),roundedFloorPrice
After collection: Validate inputs, verify floor price divisibility, calculate and display Q96 values, show timing summary.
Batch 4: Recipients & Launch (4 questions)
Question 1: Tokens Recipient
- Prompt: "Where should unsold tokens be sent?"
- Options: "Same as funds recipient", Custom address (via "Other")
- Validation: Must be 42 chars starting with 0x
- Store:
tokensRecipient
Question 2: Funds Recipient
- Prompt: "Where should raised funds be sent?"
- Options: "Same as tokens recipient", Custom address (via "Other")
- Validation: Must be 42 chars starting with 0x
- Store:
fundsRecipient
Question 3: Start Time
- Prompt: "When should the auction start?"
- Options: "In 1 hour", "In 6 hours", "In 24 hours", Custom block number (via "Other")
- Fetch current block number from RPC and calculate
- Store:
startBlock - Calculate:
endBlock = startBlock + prebidBlocks + auctionBlocks,claimBlock = endBlock
Question 4: Minimum Funds Required
- Prompt: "Require minimum currency raised for graduation?"
- Options: "No minimum (0)", "100 ETH", "1000 ETH", Custom amount in wei (via "Other")
- Store:
requiredCurrencyRaised
After collection: Validate addresses, fetch current block from RPC, calculate full block timeline.
Batch 5: Optional Hook (1 question)
Question 1: Validation Hook
- Prompt: "Use a validation hook contract?"
- Options: "No validation hook", Custom hook address (via "Other")
- Validation: Must be 42 chars starting with 0x (if provided)
- Store:
validationHook
After collection: Validate hook address if provided.
Step 6: Generate Supply Schedule
If MCP server is not running, provide instructions to start it:
# Navigate to MCP server directory
cd packages/plugins/uniswap-cca/mcp-server/supply-schedule
# Run setup script (first time only)
chmod +x setup.sh
./setup.sh
# Start the MCP server
python3 server.py
Once the MCP server is running, call the cca-supply-schedule__generate_supply_schedule MCP tool with the collected parameters. The tool expects a JSON object:
{
"auction_blocks": 86400,
"prebid_blocks": 0
}
Replace the values with the actual auctionBlocks and prebidBlocks collected from the user.
If the MCP tool is unavailable, use the fallback Python algorithm directly (see Supply Schedule Configuration section).
Store: supplySchedule
Step 7: Generate and Display Configuration
After collecting all parameters and generating the supply schedule, display the complete JSON configuration in the CLI output:
{
"[chainId]": {
"token": "...",
"totalSupply": ...,
"currency": "...",
"tokensRecipient": "...",
"fundsRecipient": "...",
"startBlock": ...,
"endBlock": ...,
"claimBlock": ...,
"tickSpacing": ...,
"validationHook": "...",
"floorPrice": ...,
"requiredCurrencyRaised": ...,
"supplySchedule": [...]
}
}
Do NOT automatically create a file. Let the user copy the JSON or specify a filepath to save it.
Step 8: Display Summary
Show the user a comprehensive formatted summary including:
- Network and chain ID
- Token and currency details
- Block timeline (start, end, claim) with human-readable times
- Pricing (floor price, tick spacing) in both Q96 and ratio formats
- Recipients (tokens, funds)
- Supply schedule summary (total phases, final block percentage)
- Validation checklist (all validation rules passed/failed)
Step 9: Next Steps
Ask the user what they want to do:
- "Save to file" (ask for filepath, default:
script/auction-config.json) - "View deployment instructions" (suggest using the deployer skill)
- "Modify configuration"
- "Exit" (just end, they can copy the JSON from CLI output)
Important Notes
- Validate in batches - Validate all inputs after each batch collection
- Fetch current block number from RPC when calculating start/end blocks
- Calculate Q96 values correctly for floor price and tick spacing:
- CRITICAL: Account for decimal differences:
Q96 * ratio / 10^(tokenDecimals - currencyDecimals) - USDC is 6 decimals on all networks - divide by 10^12 for 18-decimal tokens
- Native ETH is 18 decimals - no adjustment needed for 18-decimal tokens
- CRITICAL: Account for decimal differences:
- Round floor price to be evenly divisible by tick spacing:
roundedFloorPrice = (floorPrice // tickSpacing) * tickSpacing- MUST verify:
roundedFloorPrice % tickSpacing == 0
- Use the MCP tool for supply schedule generation (provide setup instructions if not running)
- Minimize interaction rounds - Collect as many params as reasonable per batch
Network-Specific Constants
Store these for quick reference:
const NETWORKS = {
1: {
name: 'Mainnet',
blockTime: 12,
rpc: 'https://ethereum-rpc.publicnode.com',
usdc: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',
},
130: {
name: 'Unichain',
blockTime: 1,
rpc: 'https://mainnet.unichain.org',
usdc: '0x078D782b760474a361dDA0AF3839290b0EF57AD6',
},
1301: {
name: 'Unichain Sepolia (Testnet)',
blockTime: 2,
rpc: 'https://sepolia.unichain.org',
usdc: '0x078D782b760474a361dDA0AF3839290b0EF57AD6',
},
8453: {
name: 'Base',
blockTime: 2,
rpc: 'https://mainnet.base.org',
usdc: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913',
},
42161: {
name: 'Arbitrum',
blockTime: 2,
rpc: 'https://arb1.arbitrum.io/rpc',
usdc: '0xaf88d065e77c8cc2239327c5edb3a432268e5831',
},
11155111: {
name: 'Sepolia',
blockTime: 12,
rpc: 'https://ethereum-sepolia-rpc.publicnode.com',
usdc: '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238',
},
};
// Q96 = 2^96 (JavaScript BigInt notation)
const Q96 = 79228162514264337593543950336n;
Python equivalent:
# Q96 = 2**96
Q96 = 79228162514264337593543950336
Overview
CCA (Continuous Clearing Auction) is a novel auction mechanism that generalizes the uniform-price auction into continuous time. It provides fair price discovery for bootstrapping initial liquidity while eliminating timing games and encouraging early participation.
Key features:
- Fair price discovery: Continuous clearing with no timing games
- Transparent distribution: Supply released on a predetermined schedule
- Flexible configuration: Customizable auction parameters and schedules
- Multi-chain support: Canonical deployment across EVM chains
- Factory deployment: Consistent addresses via CREATE2
Quick Decision Guide
| Task... | Use This Section |
|---|---|
| Configure auction parameters | Configuration Guide |
| Generate supply schedule | Supply Schedule Configuration |
| Understand auction mechanics | Technical Overview |
Configuration Guide
Auction Parameters
CCA auctions are configured through the AuctionParameters struct:
struct AuctionParameters {
address currency; // Token to raise funds in (address(0) for ETH)
address tokensRecipient; // Address to receive leftover tokens
address fundsRecipient; // Address to receive all raised funds
uint64How to use configurator on Cursor
AI-first code editor with Composer
Prerequisites
Before installing skills in Cursor, ensure your development environment meets these requirements:
- ›Cursor installed and configured on your development machine
- ›Node.js version 16.0+ with npm package manager (verify with
node --version) - ›Active project directory or workspace where you want to add configurator
Execute installation command
Execute the skills CLI command in your project's root directory to begin installation:
The skills CLI fetches configurator from GitHub repository uniswap/uniswap-ai and configures it for Cursor.
Select Cursor when prompted
The CLI will show a list of available agents. Use arrow keys to navigate and space to select Cursor:
Verify installation
Confirm successful installation by checking the skill directory location:
Reload or restart Cursor to activate configurator. Access the skill through slash commands (e.g., /configurator) or your agent's skill management interface.
Security & Verification Notice
We perform automated surface-level scans (Gen AI Scanner, Socket, Snyk) during installation. These checks detect common vulnerabilities but do not guarantee complete security. Always review skill source code and verify the publisher's reputation before production use.
Skills execute code in your development environment. Always verify the publisher's identity, review recent commits, and test in isolated environments before production deployment.
List & Monetize Your Skill
Submit your Claude Code skill and start earning
Use Cases▌
User Story & Requirements Generation
Create detailed user stories, acceptance criteria, and feature specs
Example
Generate user stories for 'password reset feature' with acceptance criteria, edge cases, and test scenarios
Reduce spec writing time by 50%, ensure comprehensive coverage
Competitive Analysis
Research competitors, compare features, identify gaps
Example
Analyze 5 competitor products, create feature comparison matrix, suggest differentiation opportunities
Complete competitive research in 2 hours instead of 2 days
Roadmap Prioritization
Evaluate features using frameworks (RICE, ICE, Kano) and create prioritized backlogs
Example
Score 20 feature ideas using RICE framework, generate prioritized roadmap with rationale
Make data-driven prioritization decisions faster
Stakeholder Communication
Draft PRDs, status updates, and stakeholder presentations
Example
Create executive summary of Q3 roadmap, monthly progress report, feature launch announcement
Save 3-5 hours/week on communication overhead
Implementation Guide▌
Prerequisites
- ›Claude Desktop or compatible AI client
- ›Access to product documentation and roadmap tools (Jira, Notion, etc.)
- ›Understanding of product management frameworks (RICE, Jobs-to-be-Done, etc.)
- ›Stakeholder contact information and communication channels
Time Estimate
30-60 minutes to see productivity improvements
Installation Steps
- 1.Install product management skill
- 2.Start with user story generation for known feature
- 3.Progress to competitive analysis: research 2-3 competitors
- 4.Use for roadmap prioritization: apply RICE/ICE scoring
- 5.Draft stakeholder communications and refine based on feedback
- 6.Build template library for recurring PM tasks
- 7.Share effective prompts with product team
Common Pitfalls
- ⚠Not validating competitive research—verify facts before sharing
- ⚠Accepting user stories without involving engineering team
- ⚠Over-relying on frameworks without qualitative judgment
- ⚠Not customizing outputs to company culture and communication style
- ⚠Skipping stakeholder validation of generated requirements
Best Practices▌
✓ Do
- +Validate research and competitive analysis with real data
- +Collaborate with engineering when generating technical requirements
- +Customize frameworks and templates to your company context
- +Use skill for first drafts, refine with stakeholder input
- +Document successful prompt patterns for PM tasks
- +Combine AI efficiency with human judgment and intuition
✗ Don't
- −Don't publish competitive analysis without fact-checking
- −Don't finalize user stories without engineering review
- −Don't make prioritization decisions solely on AI scoring
- −Don't skip customer validation of generated requirements
- −Don't ignore company-specific context and culture
💡 Pro Tips
- ★Provide context: company goals, constraints, customer feedback
- ★Ask for alternatives: 'Show 3 ways to prioritize this roadmap'
- ★Request stakeholder-specific formatting: 'Executive summary vs. engineering spec'
- ★Use skill for 70% generation + 30% customization to company needs
When to Use This▌
✓ Use When
Use for user story writing, competitive research, roadmap prioritization, stakeholder communication, and PRD drafting. Best for reducing repetitive documentation and research work.
✗ Avoid When
Avoid for strategic product vision (requires deep customer empathy), pricing decisions (needs market and financial expertise), or when face-to-face customer discovery is more valuable than speed.
Learning Path▌
- 1Basic: user stories, feature specs, status updates
- 2Intermediate: competitive analysis, prioritization frameworks, PRDs
- 3Advanced: product strategy, go-to-market planning, OKR setting
- 4Expert: product vision, market positioning, business model innovation
Discussion
Product Hunt–style comments (not star reviews)- No comments yet — start the thread.
Ratings
4.5★★★★★63 reviews- ★★★★★Camila Abebe· Dec 28, 2024
configurator reduced setup friction for our internal harness; good balance of opinion and flexibility.
- ★★★★★Jin Rao· Dec 16, 2024
configurator is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
- ★★★★★Hana Iyer· Dec 8, 2024
I recommend configurator for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
- ★★★★★Chinedu Kim· Dec 4, 2024
Registry listing for configurator matched our evaluation — installs cleanly and behaves as described in the markdown.
- ★★★★★Diya Verma· Nov 27, 2024
Solid pick for teams standardizing on skills: configurator is focused, and the summary matches what you get after install.
- ★★★★★Diya Tandon· Nov 23, 2024
Keeps context tight: configurator is the kind of skill you can hand to a new teammate without a long onboarding doc.
- ★★★★★Henry Perez· Nov 19, 2024
configurator is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
- ★★★★★Henry Gonzalez· Nov 7, 2024
configurator reduced setup friction for our internal harness; good balance of opinion and flexibility.
- ★★★★★Olivia Menon· Oct 26, 2024
Registry listing for configurator matched our evaluation — installs cleanly and behaves as described in the markdown.
- ★★★★★Diya Menon· Oct 18, 2024
configurator has been reliable in day-to-day use. Documentation quality is above average for community skills.
showing 1-10 of 63