{
  "schemaVersion": "1.0",
  "item": {
    "slug": "setup-dca",
    "name": "Uniswap Setup DCA",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/wpank/setup-dca",
    "canonicalUrl": "https://clawhub.ai/wpank/setup-dca",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/setup-dca",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=setup-dca",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "slug": "setup-dca",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-10T10:43:33.747Z",
      "expiresAt": "2026-05-17T10:43:33.747Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=setup-dca",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=setup-dca",
        "contentDisposition": "attachment; filename=\"setup-dca-0.1.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "setup-dca"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/setup-dca"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/setup-dca",
    "agentPageUrl": "https://openagent3.xyz/skills/setup-dca/agent",
    "manifestUrl": "https://openagent3.xyz/skills/setup-dca/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/setup-dca/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Overview",
        "body": "Sets 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.\n\nWhy this is 10x better than doing it manually:\n\nOptimal path selection: Automatically discovers the best swap route across all Uniswap pool versions and fee tiers for your token pair. Manual DCA often uses suboptimal routes, losing 0.1-0.5% per execution to unnecessary slippage.\nApproval management: Handles the Permit2 approval flow correctly -- a common source of failed DCA executions. One-time setup that covers all future executions.\nTwo automation modes: Self-execute mode (agent triggers swaps) for development and testing, or Gelato keeper mode (on-chain automation) for trustless production execution. Without this skill, setting up Gelato keepers requires understanding task creation, resolver contracts, and fee funding.\nBuilt-in safety: Every execution routes through the safety pipeline with slippage guards, balance checks, and circuit breakers. Manual DCA has no guardrails -- a misconfigured bot can drain a wallet on a single bad swap.\nCost projection: Before committing, shows projected total cost including gas, slippage, and keeper fees over the full DCA period. No surprises."
      },
      {
        "title": "When to Use",
        "body": "Activate when the user says anything like:\n\n\"Set up dollar-cost averaging on Uniswap\"\n\"Create a recurring swap\"\n\"Auto-buy ETH with USDC weekly\"\n\"Build a DCA bot\"\n\"DCA into ETH every day with $100\"\n\"Set up weekly buys of WBTC\"\n\"Accumulate UNI over the next 3 months\"\n\"Schedule recurring swaps from USDC to ETH\"\n\nDo 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)."
      },
      {
        "title": "Parameters",
        "body": "ParameterRequiredDefaultHow to ExtracttargetAssetYes--Token to accumulate: \"ETH\", \"WBTC\", \"UNI\", \"SOL\", or 0x addressamountPerExecutionYes--Amount per swap: \"$100\", \"100 USDC\", \"0.1 ETH worth\"inputTokenNoUSDCToken to spend: \"USDC\", \"USDT\", \"DAI\", \"WETH\"frequencyNoweekly\"daily\", \"weekly\", \"biweekly\", \"monthly\"totalExecutionsNo--Number of executions: \"52 weeks\", \"12 months\", \"indefinite\"chainNoethereumTarget chain: \"ethereum\", \"base\", \"arbitrum\"slippageToleranceNo50 (0.5%)Max slippage in basis points per executionkeeperModeNoself-execute\"self-execute\" (agent-triggered) or \"gelato\" (on-chain keeper automation)startImmediatelyNotrueWhether to execute the first swap now\n\nIf the user doesn't provide amountPerExecution or targetAsset, ask for them -- never guess a DCA strategy."
      },
      {
        "title": "Workflow",
        "body": "DCA SETUP PIPELINE\n  ┌──────────────────────────────────────────────────────────────────────┐\n  │                                                                      │\n  │  Step 1: VALIDATE & ANALYZE                                          │\n  │  ├── Check wallet balance (enough for at least 3 executions)         │\n  │  ├── Verify target asset exists on chain                             │\n  │  ├── Get current price of target asset                               │\n  │  └── Output: Balance check + current price baseline                  │\n  │          │                                                           │\n  │          ▼                                                           │\n  │                                                                      │\n  │  Step 2: FIND OPTIMAL SWAP PATH                                      │\n  │  ├── Discover all pools for inputToken/targetAsset                   │\n  │  ├── Get quotes across fee tiers at DCA amount                       │\n  │  ├── Select path with lowest price impact at execution size          │\n  │  └── Output: Best route + expected slippage per execution            │\n  │          │                                                           │\n  │          ▼                                                           │\n  │                                                                      │\n  │  Step 3: COST PROJECTION                                             │\n  │  ├── Estimate gas cost per execution                                 │\n  │  ├── Calculate total cost over full DCA period                       │\n  │  ├── Project keeper fees (if Gelato mode)                            │\n  │  ├── Compare DCA vs lump-sum at current price                        │\n  │  └── Output: Full cost breakdown + projection                        │\n  │          │                                                           │\n  │          ▼                                                           │\n  │                                                                      │\n  │  Step 4: USER CONFIRMATION                                           │\n  │  ├── Present: strategy summary + cost projection                     │\n  │  ├── Ask: \"Proceed with this DCA strategy?\"                          │\n  │  └── User must explicitly confirm                                    │\n  │          │                                                           │\n  │          ▼                                                           │\n  │                                                                      │\n  │  Step 5: CONFIGURE & EXECUTE                                         │\n  │  ├── Check/set Permit2 approval for inputToken                       │\n  │  ├── If startImmediately: execute first swap via trade-executor      │\n  │  ├── If gelato: create Gelato task with resolver + fund keeper       │\n  │  ├── If self-execute: write DCA config to .uniswap/dca-config.json  │\n  │  └── Output: Configuration + first execution result                  │\n  │          │                                                           │\n  │          ▼                                                           │\n  │                                                                      │\n  │  Step 6: MONITORING SETUP                                            │\n  │  ├── Record baseline: price, balance, execution count                │\n  │  ├── Set up execution tracking                                       │\n  │  └── Output: DCA dashboard with next execution time                  │\n  │                                                                      │\n  └──────────────────────────────────────────────────────────────────────┘"
      },
      {
        "title": "Step 1: Validate & Analyze",
        "body": "Check prerequisites before committing to a strategy:\n\nCall mcp__uniswap__get_agent_balance to verify the wallet has sufficient inputToken balance for at least 3 executions (safety buffer).\nCall mcp__uniswap__get_token_price for the targetAsset to establish a price baseline.\nCall mcp__uniswap__check_safety_status to verify spending limits can accommodate the DCA.\n\nPresent to user:\n\nStep 1/6: Validation\n\n  Wallet Balance: 5,200 USDC on Ethereum\n  DCA Budget:     $100/week x 52 weeks = $5,200 total\n  Balance Check:  PASS (covers full DCA period)\n\n  Target Asset:   ETH at $1,960.00\n  Per Execution:  ~0.051 ETH per $100\n\n  Proceeding to path selection...\n\nGate 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."
      },
      {
        "title": "Step 2: Find Optimal Swap Path",
        "body": "Call mcp__uniswap__get_pools_by_token_pair for inputToken/targetAsset on the target chain.\nCall mcp__uniswap__get_quote at the amountPerExecution size for the top 2-3 pools to compare price impact.\nSelect the route with the lowest price impact at the DCA execution size.\n\nPresent to user:\n\nStep 2/6: Path Selection\n\n  Best Route: USDC -> WETH via 0.05% pool (V3, Ethereum)\n  Pool TVL:   $285M\n  Impact:     ~0.01% per $100 execution\n  Alternative: 0.3% pool (0.02% impact -- slightly worse)\n\n  Proceeding to cost projection..."
      },
      {
        "title": "Step 3: Cost Projection",
        "body": "Calculate the full cost of the DCA strategy:\n\nStep 3/6: Cost Projection\n\n  DCA Strategy: $100 USDC -> ETH weekly for 52 weeks\n\n  Per Execution:\n    Swap Amount:   $100.00\n    Est. Slippage: ~$0.01 (0.01%)\n    Gas Cost:      ~$2.50 (at current gas)\n    Net Purchase:  ~$97.49 of ETH\n\n  Full Period (52 weeks):\n    Total Spent:   $5,200.00\n    Est. Gas:      ~$130.00 (2.5%)\n    Est. Slippage: ~$0.52 (0.01%)\n    Net Invested:  ~$5,069.48\n\n  At Current Price ($1,960/ETH):\n    Lump Sum Now:  2.653 ETH for $5,200\n    DCA Estimate:  ~2.587 ETH (varies with price)\n\n  Ready for your confirmation..."
      },
      {
        "title": "Step 4: User Confirmation",
        "body": "Present the full strategy summary and ask for explicit confirmation:\n\nDCA Strategy Confirmation\n\n  Buy:        ETH with USDC\n  Amount:     $100 per execution\n  Frequency:  Weekly (every 7 days)\n  Duration:   52 executions\n  Chain:      Ethereum\n  Route:      USDC/WETH 0.05% (V3)\n  Slippage:   0.5% max\n  Mode:       Self-execute (agent-triggered)\n  Start:      Immediately (first swap now)\n  Total Cost: ~$5,200 + ~$130 gas\n\n  Proceed with this DCA strategy? (yes/no)\n\nOnly proceed to Step 5 if the user explicitly confirms."
      },
      {
        "title": "Step 5: Configure & Execute",
        "body": "Delegate the first execution to Task(subagent_type:trade-executor):\n\nExecute this swap as the first DCA execution:\n- Sell: {amountPerExecution} {inputToken}\n- Buy: {targetAsset}\n- Chain: {chain}\n- Slippage tolerance: {slippageTolerance} bps\n- Context: This is execution 1 of {totalExecutions} in a DCA strategy.\n  Route through the {fee}% pool for optimal execution at this size.\n\nAfter execution, write the DCA configuration:\n\nFor self-execute mode, write .uniswap/dca-config.json:\n\n{\n  \"strategy\": \"dca\",\n  \"inputToken\": \"USDC\",\n  \"targetAsset\": \"WETH\",\n  \"amountPerExecution\": \"100000000\",\n  \"frequency\": \"weekly\",\n  \"nextExecution\": \"2026-02-17T00:00:00Z\",\n  \"totalExecutions\": 52,\n  \"completedExecutions\": 1,\n  \"chain\": \"ethereum\",\n  \"chainId\": 1,\n  \"route\": {\n    \"pool\": \"0x...\",\n    \"fee\": 500,\n    \"version\": \"v3\"\n  },\n  \"slippageTolerance\": 50,\n  \"status\": \"active\",\n  \"createdAt\": \"2026-02-10T00:00:00Z\",\n  \"executionHistory\": []\n}\n\nFor Gelato mode, create a Gelato Automate task with:\n\nResolver: check if block.timestamp >= nextExecution\nExecutor: swap via Universal Router with the configured route\nFund the Gelato task with ETH for keeper fees"
      },
      {
        "title": "Step 6: Monitoring Setup",
        "body": "Step 6/6: DCA Active\n\n  First Execution:\n    Sold:     100 USDC\n    Received: 0.0510 WETH ($99.96)\n    Gas:      $2.30\n    Tx:       https://etherscan.io/tx/0x...\n\n  Schedule:\n    Next:     2026-02-17 (7 days)\n    Remaining: 51 executions\n    Mode:     Self-execute\n\n  Config: .uniswap/dca-config.json"
      },
      {
        "title": "Successful Setup",
        "body": "DCA Strategy Active\n\n  Strategy:\n    Buy:        ETH with USDC\n    Amount:     $100 per execution\n    Frequency:  Weekly\n    Duration:   52 executions (~1 year)\n    Chain:      Ethereum\n    Route:      USDC/WETH 0.05% (V3)\n    Mode:       Self-execute\n\n  First Execution:\n    Sold:       100 USDC\n    Received:   0.0510 WETH ($99.96)\n    Slippage:   0.04%\n    Gas:        $2.30\n    Tx:         https://etherscan.io/tx/0x...\n\n  Projections:\n    Total Budget:    $5,200 + ~$130 gas\n    Est. ETH:        ~2.59 ETH (at current prices)\n    Next Execution:  2026-02-17\n\n  Config: .uniswap/dca-config.json\n  Status: ACTIVE -- 1/52 executions complete"
      },
      {
        "title": "Setup Without Immediate Execution",
        "body": "DCA Strategy Configured (Not Started)\n\n  Strategy:\n    Buy:        ETH with USDC\n    Amount:     $100 per execution\n    Frequency:  Weekly\n    Chain:      Ethereum\n    Route:      USDC/WETH 0.05% (V3)\n    Mode:       Self-execute\n\n  First Execution: 2026-02-17 (scheduled)\n  Config: .uniswap/dca-config.json\n  Status: CONFIGURED -- awaiting first execution"
      },
      {
        "title": "Important Notes",
        "body": "DCA is a long-term strategy. This skill sets up the configuration and optionally executes the first swap. Subsequent executions depend on the keeper mode: self-execute requires the agent to be running, Gelato mode runs autonomously on-chain.\nSelf-execute mode requires the agent to be online. If the agent is offline when an execution is due, it will execute on the next run. Gelato mode is fully autonomous and does not require the agent.\nGas costs matter for small DCA amounts. At $2-5 per swap on Ethereum mainnet, a $10/week DCA loses 20-50% to gas. The skill warns if gas exceeds 5% of the execution amount and suggests Base or Arbitrum for cheaper execution.\nSlippage is typically negligible for DCA. DCA amounts are usually small relative to pool TVL, so price impact is minimal. The skill still enforces the slippage tolerance as a safety guard.\nThe DCA config file is the source of truth. The .uniswap/dca-config.json file tracks execution history, next execution time, and strategy parameters. Deleting it effectively cancels the DCA.\nTo cancel a DCA, delete the config file or set status to \"cancelled\". For Gelato mode, the Gelato task must also be cancelled on-chain.\nL2 chains are recommended for small DCA amounts. Base and Arbitrum have gas costs 10-100x lower than Ethereum mainnet, making small DCA strategies viable."
      },
      {
        "title": "Error Handling",
        "body": "ErrorUser-Facing MessageSuggested ActionInsufficient balance\"Wallet has {X} {inputToken} but DCA needs at least {Y} for 3 executions.\"Fund wallet or reduce amount per executionTarget asset not found\"Could not find {targetAsset} on {chain}.\"Check spelling or provide contract addressNo pools found\"No Uniswap pools found for {inputToken}/{targetAsset} on {chain}.\"Try a different chain or token pairGas too high\"Gas cost (~${X}) exceeds 5% of execution amount (${Y}). Consider using Base.\"Switch to an L2 chain for cheaper executionSafety check failed\"Safety limits would be exceeded by this DCA strategy.\"Adjust spending limits or reduce DCA amountApproval failed\"Could not approve {inputToken} for Permit2: {reason}.\"Check wallet permissions and retryFirst execution failed\"First DCA execution failed: {reason}. Strategy configured but not started.\"Fix the issue and manually trigger first executionGelato setup failed\"Could not create Gelato automation task: {reason}.\"Use self-execute mode insteadConfig write failed\"Could not write DCA configuration: {reason}.\"Check file permissionsWallet not configured\"No wallet configured. Cannot execute DCA.\"Set up wallet with setup-agent-walletSpending limit exceeded\"DCA total (${X}) exceeds daily spending limit (${Y}).\"Adjust spending limits or reduce DCA frequency/amount"
      }
    ],
    "body": "Setup DCA\nOverview\n\nSets 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.\n\nWhy this is 10x better than doing it manually:\n\nOptimal path selection: Automatically discovers the best swap route across all Uniswap pool versions and fee tiers for your token pair. Manual DCA often uses suboptimal routes, losing 0.1-0.5% per execution to unnecessary slippage.\nApproval management: Handles the Permit2 approval flow correctly -- a common source of failed DCA executions. One-time setup that covers all future executions.\nTwo automation modes: Self-execute mode (agent triggers swaps) for development and testing, or Gelato keeper mode (on-chain automation) for trustless production execution. Without this skill, setting up Gelato keepers requires understanding task creation, resolver contracts, and fee funding.\nBuilt-in safety: Every execution routes through the safety pipeline with slippage guards, balance checks, and circuit breakers. Manual DCA has no guardrails -- a misconfigured bot can drain a wallet on a single bad swap.\nCost projection: Before committing, shows projected total cost including gas, slippage, and keeper fees over the full DCA period. No surprises.\nWhen to Use\n\nActivate when the user says anything like:\n\n\"Set up dollar-cost averaging on Uniswap\"\n\"Create a recurring swap\"\n\"Auto-buy ETH with USDC weekly\"\n\"Build a DCA bot\"\n\"DCA into ETH every day with $100\"\n\"Set up weekly buys of WBTC\"\n\"Accumulate UNI over the next 3 months\"\n\"Schedule recurring swaps from USDC to ETH\"\n\nDo 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).\n\nParameters\nParameter\tRequired\tDefault\tHow to Extract\ntargetAsset\tYes\t--\tToken to accumulate: \"ETH\", \"WBTC\", \"UNI\", \"SOL\", or 0x address\namountPerExecution\tYes\t--\tAmount per swap: \"$100\", \"100 USDC\", \"0.1 ETH worth\"\ninputToken\tNo\tUSDC\tToken to spend: \"USDC\", \"USDT\", \"DAI\", \"WETH\"\nfrequency\tNo\tweekly\t\"daily\", \"weekly\", \"biweekly\", \"monthly\"\ntotalExecutions\tNo\t--\tNumber of executions: \"52 weeks\", \"12 months\", \"indefinite\"\nchain\tNo\tethereum\tTarget chain: \"ethereum\", \"base\", \"arbitrum\"\nslippageTolerance\tNo\t50 (0.5%)\tMax slippage in basis points per execution\nkeeperMode\tNo\tself-execute\t\"self-execute\" (agent-triggered) or \"gelato\" (on-chain keeper automation)\nstartImmediately\tNo\ttrue\tWhether to execute the first swap now\n\nIf the user doesn't provide amountPerExecution or targetAsset, ask for them -- never guess a DCA strategy.\n\nWorkflow\n                           DCA SETUP PIPELINE\n  ┌──────────────────────────────────────────────────────────────────────┐\n  │                                                                      │\n  │  Step 1: VALIDATE & ANALYZE                                          │\n  │  ├── Check wallet balance (enough for at least 3 executions)         │\n  │  ├── Verify target asset exists on chain                             │\n  │  ├── Get current price of target asset                               │\n  │  └── Output: Balance check + current price baseline                  │\n  │          │                                                           │\n  │          ▼                                                           │\n  │                                                                      │\n  │  Step 2: FIND OPTIMAL SWAP PATH                                      │\n  │  ├── Discover all pools for inputToken/targetAsset                   │\n  │  ├── Get quotes across fee tiers at DCA amount                       │\n  │  ├── Select path with lowest price impact at execution size          │\n  │  └── Output: Best route + expected slippage per execution            │\n  │          │                                                           │\n  │          ▼                                                           │\n  │                                                                      │\n  │  Step 3: COST PROJECTION                                             │\n  │  ├── Estimate gas cost per execution                                 │\n  │  ├── Calculate total cost over full DCA period                       │\n  │  ├── Project keeper fees (if Gelato mode)                            │\n  │  ├── Compare DCA vs lump-sum at current price                        │\n  │  └── Output: Full cost breakdown + projection                        │\n  │          │                                                           │\n  │          ▼                                                           │\n  │                                                                      │\n  │  Step 4: USER CONFIRMATION                                           │\n  │  ├── Present: strategy summary + cost projection                     │\n  │  ├── Ask: \"Proceed with this DCA strategy?\"                          │\n  │  └── User must explicitly confirm                                    │\n  │          │                                                           │\n  │          ▼                                                           │\n  │                                                                      │\n  │  Step 5: CONFIGURE & EXECUTE                                         │\n  │  ├── Check/set Permit2 approval for inputToken                       │\n  │  ├── If startImmediately: execute first swap via trade-executor      │\n  │  ├── If gelato: create Gelato task with resolver + fund keeper       │\n  │  ├── If self-execute: write DCA config to .uniswap/dca-config.json  │\n  │  └── Output: Configuration + first execution result                  │\n  │          │                                                           │\n  │          ▼                                                           │\n  │                                                                      │\n  │  Step 6: MONITORING SETUP                                            │\n  │  ├── Record baseline: price, balance, execution count                │\n  │  ├── Set up execution tracking                                       │\n  │  └── Output: DCA dashboard with next execution time                  │\n  │                                                                      │\n  └──────────────────────────────────────────────────────────────────────┘\n\nStep 1: Validate & Analyze\n\nCheck prerequisites before committing to a strategy:\n\nCall mcp__uniswap__get_agent_balance to verify the wallet has sufficient inputToken balance for at least 3 executions (safety buffer).\nCall mcp__uniswap__get_token_price for the targetAsset to establish a price baseline.\nCall mcp__uniswap__check_safety_status to verify spending limits can accommodate the DCA.\n\nPresent to user:\n\nStep 1/6: Validation\n\n  Wallet Balance: 5,200 USDC on Ethereum\n  DCA Budget:     $100/week x 52 weeks = $5,200 total\n  Balance Check:  PASS (covers full DCA period)\n\n  Target Asset:   ETH at $1,960.00\n  Per Execution:  ~0.051 ETH per $100\n\n  Proceeding to path selection...\n\n\nGate 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.\n\nStep 2: Find Optimal Swap Path\nCall mcp__uniswap__get_pools_by_token_pair for inputToken/targetAsset on the target chain.\nCall mcp__uniswap__get_quote at the amountPerExecution size for the top 2-3 pools to compare price impact.\nSelect the route with the lowest price impact at the DCA execution size.\n\nPresent to user:\n\nStep 2/6: Path Selection\n\n  Best Route: USDC -> WETH via 0.05% pool (V3, Ethereum)\n  Pool TVL:   $285M\n  Impact:     ~0.01% per $100 execution\n  Alternative: 0.3% pool (0.02% impact -- slightly worse)\n\n  Proceeding to cost projection...\n\nStep 3: Cost Projection\n\nCalculate the full cost of the DCA strategy:\n\nStep 3/6: Cost Projection\n\n  DCA Strategy: $100 USDC -> ETH weekly for 52 weeks\n\n  Per Execution:\n    Swap Amount:   $100.00\n    Est. Slippage: ~$0.01 (0.01%)\n    Gas Cost:      ~$2.50 (at current gas)\n    Net Purchase:  ~$97.49 of ETH\n\n  Full Period (52 weeks):\n    Total Spent:   $5,200.00\n    Est. Gas:      ~$130.00 (2.5%)\n    Est. Slippage: ~$0.52 (0.01%)\n    Net Invested:  ~$5,069.48\n\n  At Current Price ($1,960/ETH):\n    Lump Sum Now:  2.653 ETH for $5,200\n    DCA Estimate:  ~2.587 ETH (varies with price)\n\n  Ready for your confirmation...\n\nStep 4: User Confirmation\n\nPresent the full strategy summary and ask for explicit confirmation:\n\nDCA Strategy Confirmation\n\n  Buy:        ETH with USDC\n  Amount:     $100 per execution\n  Frequency:  Weekly (every 7 days)\n  Duration:   52 executions\n  Chain:      Ethereum\n  Route:      USDC/WETH 0.05% (V3)\n  Slippage:   0.5% max\n  Mode:       Self-execute (agent-triggered)\n  Start:      Immediately (first swap now)\n  Total Cost: ~$5,200 + ~$130 gas\n\n  Proceed with this DCA strategy? (yes/no)\n\n\nOnly proceed to Step 5 if the user explicitly confirms.\n\nStep 5: Configure & Execute\n\nDelegate the first execution to Task(subagent_type:trade-executor):\n\nExecute this swap as the first DCA execution:\n- Sell: {amountPerExecution} {inputToken}\n- Buy: {targetAsset}\n- Chain: {chain}\n- Slippage tolerance: {slippageTolerance} bps\n- Context: This is execution 1 of {totalExecutions} in a DCA strategy.\n  Route through the {fee}% pool for optimal execution at this size.\n\n\nAfter execution, write the DCA configuration:\n\nFor self-execute mode, write .uniswap/dca-config.json:\n\n{\n  \"strategy\": \"dca\",\n  \"inputToken\": \"USDC\",\n  \"targetAsset\": \"WETH\",\n  \"amountPerExecution\": \"100000000\",\n  \"frequency\": \"weekly\",\n  \"nextExecution\": \"2026-02-17T00:00:00Z\",\n  \"totalExecutions\": 52,\n  \"completedExecutions\": 1,\n  \"chain\": \"ethereum\",\n  \"chainId\": 1,\n  \"route\": {\n    \"pool\": \"0x...\",\n    \"fee\": 500,\n    \"version\": \"v3\"\n  },\n  \"slippageTolerance\": 50,\n  \"status\": \"active\",\n  \"createdAt\": \"2026-02-10T00:00:00Z\",\n  \"executionHistory\": []\n}\n\n\nFor Gelato mode, create a Gelato Automate task with:\n\nResolver: check if block.timestamp >= nextExecution\nExecutor: swap via Universal Router with the configured route\nFund the Gelato task with ETH for keeper fees\nStep 6: Monitoring Setup\nStep 6/6: DCA Active\n\n  First Execution:\n    Sold:     100 USDC\n    Received: 0.0510 WETH ($99.96)\n    Gas:      $2.30\n    Tx:       https://etherscan.io/tx/0x...\n\n  Schedule:\n    Next:     2026-02-17 (7 days)\n    Remaining: 51 executions\n    Mode:     Self-execute\n\n  Config: .uniswap/dca-config.json\n\nOutput Format\nSuccessful Setup\nDCA Strategy Active\n\n  Strategy:\n    Buy:        ETH with USDC\n    Amount:     $100 per execution\n    Frequency:  Weekly\n    Duration:   52 executions (~1 year)\n    Chain:      Ethereum\n    Route:      USDC/WETH 0.05% (V3)\n    Mode:       Self-execute\n\n  First Execution:\n    Sold:       100 USDC\n    Received:   0.0510 WETH ($99.96)\n    Slippage:   0.04%\n    Gas:        $2.30\n    Tx:         https://etherscan.io/tx/0x...\n\n  Projections:\n    Total Budget:    $5,200 + ~$130 gas\n    Est. ETH:        ~2.59 ETH (at current prices)\n    Next Execution:  2026-02-17\n\n  Config: .uniswap/dca-config.json\n  Status: ACTIVE -- 1/52 executions complete\n\nSetup Without Immediate Execution\nDCA Strategy Configured (Not Started)\n\n  Strategy:\n    Buy:        ETH with USDC\n    Amount:     $100 per execution\n    Frequency:  Weekly\n    Chain:      Ethereum\n    Route:      USDC/WETH 0.05% (V3)\n    Mode:       Self-execute\n\n  First Execution: 2026-02-17 (scheduled)\n  Config: .uniswap/dca-config.json\n  Status: CONFIGURED -- awaiting first execution\n\nImportant Notes\nDCA is a long-term strategy. This skill sets up the configuration and optionally executes the first swap. Subsequent executions depend on the keeper mode: self-execute requires the agent to be running, Gelato mode runs autonomously on-chain.\nSelf-execute mode requires the agent to be online. If the agent is offline when an execution is due, it will execute on the next run. Gelato mode is fully autonomous and does not require the agent.\nGas costs matter for small DCA amounts. At $2-5 per swap on Ethereum mainnet, a $10/week DCA loses 20-50% to gas. The skill warns if gas exceeds 5% of the execution amount and suggests Base or Arbitrum for cheaper execution.\nSlippage is typically negligible for DCA. DCA amounts are usually small relative to pool TVL, so price impact is minimal. The skill still enforces the slippage tolerance as a safety guard.\nThe DCA config file is the source of truth. The .uniswap/dca-config.json file tracks execution history, next execution time, and strategy parameters. Deleting it effectively cancels the DCA.\nTo cancel a DCA, delete the config file or set status to \"cancelled\". For Gelato mode, the Gelato task must also be cancelled on-chain.\nL2 chains are recommended for small DCA amounts. Base and Arbitrum have gas costs 10-100x lower than Ethereum mainnet, making small DCA strategies viable.\nError Handling\nError\tUser-Facing Message\tSuggested Action\nInsufficient balance\t\"Wallet has {X} {inputToken} but DCA needs at least {Y} for 3 executions.\"\tFund wallet or reduce amount per execution\nTarget asset not found\t\"Could not find {targetAsset} on {chain}.\"\tCheck spelling or provide contract address\nNo pools found\t\"No Uniswap pools found for {inputToken}/{targetAsset} on {chain}.\"\tTry a different chain or token pair\nGas too high\t\"Gas cost (~${X}) exceeds 5% of execution amount (${Y}). Consider using Base.\"\tSwitch to an L2 chain for cheaper execution\nSafety check failed\t\"Safety limits would be exceeded by this DCA strategy.\"\tAdjust spending limits or reduce DCA amount\nApproval failed\t\"Could not approve {inputToken} for Permit2: {reason}.\"\tCheck wallet permissions and retry\nFirst execution failed\t\"First DCA execution failed: {reason}. Strategy configured but not started.\"\tFix the issue and manually trigger first execution\nGelato setup failed\t\"Could not create Gelato automation task: {reason}.\"\tUse self-execute mode instead\nConfig write failed\t\"Could not write DCA configuration: {reason}.\"\tCheck file permissions\nWallet not configured\t\"No wallet configured. Cannot execute DCA.\"\tSet up wallet with setup-agent-wallet\nSpending limit exceeded\t\"DCA total (${X}) exceeds daily spending limit (${Y}).\"\tAdjust spending limits or reduce DCA frequency/amount"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/wpank/setup-dca",
    "publisherUrl": "https://clawhub.ai/wpank/setup-dca",
    "owner": "wpank",
    "version": "0.1.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/setup-dca",
    "downloadUrl": "https://openagent3.xyz/downloads/setup-dca",
    "agentUrl": "https://openagent3.xyz/skills/setup-dca/agent",
    "manifestUrl": "https://openagent3.xyz/skills/setup-dca/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/setup-dca/agent.md"
  }
}