setup-dcaSet up a non-custodial dollar-cost averaging strategy on Uniswap. Use when user wants to create recurring swaps, auto-buy ETH/BTC/SOL with USDC on a schedule, or build a DCA bot. Covers USDC approval, swap path selection, frequency configuration, Gelato keeper automation, and monitoring. Works on local testnet for development or mainnet for production.
Install via ClawdBot CLI:
clawdbot install wpank/setup-dcaSets up a complete non-custodial dollar-cost averaging strategy on Uniswap. Instead of manually executing swaps on a schedule, remembering to check prices, finding optimal routes, and managing approvals, this skill configures the entire DCA lifecycle in one command: validates the strategy, selects the best swap path, configures execution frequency, handles Permit2 approvals, executes the first swap, and sets up ongoing automation.
Why this is 10x better than doing it manually:
Activate when the user says anything like:
Do NOT use when the user wants a one-time swap (use execute-swap instead), wants to manage an existing DCA (not yet supported -- cancel and recreate), or wants to DCA into LP positions (use full-lp-workflow instead).
| Parameter | Required | Default | How to Extract |
| -------------------- | -------- | ------------ | ------------------------------------------------------------------------------- |
| targetAsset | Yes | -- | Token to accumulate: "ETH", "WBTC", "UNI", "SOL", or 0x address |
| amountPerExecution | Yes | -- | Amount per swap: "$100", "100 USDC", "0.1 ETH worth" |
| inputToken | No | USDC | Token to spend: "USDC", "USDT", "DAI", "WETH" |
| frequency | No | weekly | "daily", "weekly", "biweekly", "monthly" |
| totalExecutions | No | -- | Number of executions: "52 weeks", "12 months", "indefinite" |
| chain | No | ethereum | Target chain: "ethereum", "base", "arbitrum" |
| slippageTolerance | No | 50 (0.5%) | Max slippage in basis points per execution |
| keeperMode | No | self-execute | "self-execute" (agent-triggered) or "gelato" (on-chain keeper automation) |
| startImmediately | No | true | Whether to execute the first swap now |
If the user doesn't provide amountPerExecution or targetAsset, ask for them -- never guess a DCA strategy.
DCA SETUP PIPELINE
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β Step 1: VALIDATE & ANALYZE β
β βββ Check wallet balance (enough for at least 3 executions) β
β βββ Verify target asset exists on chain β
β βββ Get current price of target asset β
β βββ Output: Balance check + current price baseline β
β β β
β βΌ β
β β
β Step 2: FIND OPTIMAL SWAP PATH β
β βββ Discover all pools for inputToken/targetAsset β
β βββ Get quotes across fee tiers at DCA amount β
β βββ Select path with lowest price impact at execution size β
β βββ Output: Best route + expected slippage per execution β
β β β
β βΌ β
β β
β Step 3: COST PROJECTION β
β βββ Estimate gas cost per execution β
β βββ Calculate total cost over full DCA period β
β βββ Project keeper fees (if Gelato mode) β
β βββ Compare DCA vs lump-sum at current price β
β βββ Output: Full cost breakdown + projection β
β β β
β βΌ β
β β
β Step 4: USER CONFIRMATION β
β βββ Present: strategy summary + cost projection β
β βββ Ask: "Proceed with this DCA strategy?" β
β βββ User must explicitly confirm β
β β β
β βΌ β
β β
β Step 5: CONFIGURE & EXECUTE β
β βββ Check/set Permit2 approval for inputToken β
β βββ If startImmediately: execute first swap via trade-executor β
β βββ If gelato: create Gelato task with resolver + fund keeper β
β βββ If self-execute: write DCA config to .uniswap/dca-config.json β
β βββ Output: Configuration + first execution result β
β β β
β βΌ β
β β
β Step 6: MONITORING SETUP β
β βββ Record baseline: price, balance, execution count β
β βββ Set up execution tracking β
β βββ Output: DCA dashboard with next execution time β
β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Check prerequisites before committing to a strategy:
mcpuniswapget_agent_balance to verify the wallet has sufficient inputToken balance for at least 3 executions (safety buffer).mcpuniswapget_token_price for the targetAsset to establish a price baseline.mcpuniswapcheck_safety_status to verify spending limits can accommodate the DCA.Present to user:
Step 1/6: Validation
Wallet Balance: 5,200 USDC on Ethereum
DCA Budget: $100/week x 52 weeks = $5,200 total
Balance Check: PASS (covers full DCA period)
Target Asset: ETH at $1,960.00
Per Execution: ~0.051 ETH per $100
Proceeding to path selection...
Gate check: If the wallet balance covers fewer than 3 executions, warn the user and ask if they want to proceed with a shorter DCA period.
mcpuniswapget_pools_by_token_pair for inputToken/targetAsset on the target chain.mcpuniswapget_quote at the amountPerExecution size for the top 2-3 pools to compare price impact.Present to user:
Step 2/6: Path Selection
Best Route: USDC -> WETH via 0.05% pool (V3, Ethereum)
Pool TVL: $285M
Impact: ~0.01% per $100 execution
Alternative: 0.3% pool (0.02% impact -- slightly worse)
Proceeding to cost projection...
Calculate the full cost of the DCA strategy:
Step 3/6: Cost Projection
DCA Strategy: $100 USDC -> ETH weekly for 52 weeks
Per Execution:
Swap Amount: $100.00
Est. Slippage: ~$0.01 (0.01%)
Gas Cost: ~$2.50 (at current gas)
Net Purchase: ~$97.49 of ETH
Full Period (52 weeks):
Total Spent: $5,200.00
Est. Gas: ~$130.00 (2.5%)
Est. Slippage: ~$0.52 (0.01%)
Net Invested: ~$5,069.48
At Current Price ($1,960/ETH):
Lump Sum Now: 2.653 ETH for $5,200
DCA Estimate: ~2.587 ETH (varies with price)
Ready for your confirmation...
Present the full strategy summary and ask for explicit confirmation:
DCA Strategy Confirmation
Buy: ETH with USDC
Amount: $100 per execution
Frequency: Weekly (every 7 days)
Duration: 52 executions
Chain: Ethereum
Route: USDC/WETH 0.05% (V3)
Slippage: 0.5% max
Mode: Self-execute (agent-triggered)
Start: Immediately (first swap now)
Total Cost: ~$5,200 + ~$130 gas
Proceed with this DCA strategy? (yes/no)
Only proceed to Step 5 if the user explicitly confirms.
Delegate the first execution to Task(subagent_type:trade-executor):
Execute this swap as the first DCA execution:
- Sell: {amountPerExecution} {inputToken}
- Buy: {targetAsset}
- Chain: {chain}
- Slippage tolerance: {slippageTolerance} bps
- Context: This is execution 1 of {totalExecutions} in a DCA strategy.
Route through the {fee}% pool for optimal execution at this size.
After execution, write the DCA configuration:
For self-execute mode, write .uniswap/dca-config.json:
{
"strategy": "dca",
"inputToken": "USDC",
"targetAsset": "WETH",
"amountPerExecution": "100000000",
"frequency": "weekly",
"nextExecution": "2026-02-17T00:00:00Z",
"totalExecutions": 52,
"completedExecutions": 1,
"chain": "ethereum",
"chainId": 1,
"route": {
"pool": "0x...",
"fee": 500,
"version": "v3"
},
"slippageTolerance": 50,
"status": "active",
"createdAt": "2026-02-10T00:00:00Z",
"executionHistory": []
}
For Gelato mode, create a Gelato Automate task with:
block.timestamp >= nextExecutionStep 6/6: DCA Active
First Execution:
Sold: 100 USDC
Received: 0.0510 WETH ($99.96)
Gas: $2.30
Tx: https://etherscan.io/tx/0x...
Schedule:
Next: 2026-02-17 (7 days)
Remaining: 51 executions
Mode: Self-execute
Config: .uniswap/dca-config.json
DCA Strategy Active
Strategy:
Buy: ETH with USDC
Amount: $100 per execution
Frequency: Weekly
Duration: 52 executions (~1 year)
Chain: Ethereum
Route: USDC/WETH 0.05% (V3)
Mode: Self-execute
First Execution:
Sold: 100 USDC
Received: 0.0510 WETH ($99.96)
Slippage: 0.04%
Gas: $2.30
Tx: https://etherscan.io/tx/0x...
Projections:
Total Budget: $5,200 + ~$130 gas
Est. ETH: ~2.59 ETH (at current prices)
Next Execution: 2026-02-17
Config: .uniswap/dca-config.json
Status: ACTIVE -- 1/52 executions complete
DCA Strategy Configured (Not Started)
Strategy:
Buy: ETH with USDC
Amount: $100 per execution
Frequency: Weekly
Chain: Ethereum
Route: USDC/WETH 0.05% (V3)
Mode: Self-execute
First Execution: 2026-02-17 (scheduled)
Config: .uniswap/dca-config.json
Status: CONFIGURED -- awaiting first execution
.uniswap/dca-config.json file tracks execution history, next execution time, and strategy parameters. Deleting it effectively cancels the DCA.status to "cancelled". For Gelato mode, the Gelato task must also be cancelled on-chain.| Error | User-Facing Message | Suggested Action |
| -------------------------- | ---------------------------------------------------------------------------------- | ----------------------------------------------------- |
| Insufficient balance | "Wallet has {X} {inputToken} but DCA needs at least {Y} for 3 executions." | Fund wallet or reduce amount per execution |
| Target asset not found | "Could not find {targetAsset} on {chain}." | Check spelling or provide contract address |
| No pools found | "No Uniswap pools found for {inputToken}/{targetAsset} on {chain}." | Try a different chain or token pair |
| Gas too high | "Gas cost (~${X}) exceeds 5% of execution amount (${Y}). Consider using Base." | Switch to an L2 chain for cheaper execution |
| Safety check failed | "Safety limits would be exceeded by this DCA strategy." | Adjust spending limits or reduce DCA amount |
| Approval failed | "Could not approve {inputToken} for Permit2: {reason}." | Check wallet permissions and retry |
| First execution failed | "First DCA execution failed: {reason}. Strategy configured but not started." | Fix the issue and manually trigger first execution |
| Gelato setup failed | "Could not create Gelato automation task: {reason}." | Use self-execute mode instead |
| Config write failed | "Could not write DCA configuration: {reason}." | Check file permissions |
| Wallet not configured | "No wallet configured. Cannot execute DCA." | Set up wallet with setup-agent-wallet |
| Spending limit exceeded | "DCA total (${X}) exceeds daily spending limit (${Y})." | Adjust spending limits or reduce DCA frequency/amount |
AI Usage Analysis
Analysis is being generated⦠refresh in a few seconds.
Connect Claude to Clawdbot instantly and keep it connected 24/7. Run after setup to link your subscription, then auto-refreshes tokens forever.
ERC-8004 Trustless Agents - Register, discover, and build reputation for AI agents on Ethereum. Use when registering agents on-chain, querying agent registries, giving/receiving reputation feedback, or interacting with the AI agent trust layer.
Autonomous crypto trading on Base via Bankr. Use for trading tokens, monitoring launches, executing strategies, or managing a trading portfolio. Triggers on "trade", "buy", "sell", "launch", "snipe", "profit", "PnL", "portfolio balance", or any crypto trading task on Base.
Deploy ERC20 tokens on Base using Clanker SDK. Create tokens with built-in Uniswap V4 liquidity pools. Supports Base mainnet and Sepolia testnet. Requires PRIVATE_KEY in config.
Query DeFi portfolio data across 50+ chains via Zapper's GraphQL API. Use when the user wants to check wallet balances, DeFi positions, NFT holdings, token prices, or transaction history. Supports Base, Ethereum, Polygon, Arbitrum, Optimism, and more. Requires ZAPPER_API_KEY.
Interact with Solana blockchain via Helius APIs. Create/manage wallets, check balances (SOL + tokens), send transactions, swap tokens via Jupiter, and monitor addresses. Use for any Solana blockchain operation, crypto wallet management, token transfers, DeFi swaps, or portfolio tracking.