{
  "schemaVersion": "1.0",
  "item": {
    "slug": "create-test-pool",
    "name": "Uniswap Create Test Pool",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/wpank/create-test-pool",
    "canonicalUrl": "https://clawhub.ai/wpank/create-test-pool",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/create-test-pool",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=create-test-pool",
    "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",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/create-test-pool"
    },
    "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/create-test-pool",
    "agentPageUrl": "https://openagent3.xyz/skills/create-test-pool/agent",
    "manifestUrl": "https://openagent3.xyz/skills/create-test-pool/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/create-test-pool/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": "Deploys a custom Uniswap pool on the local testnet with exact parameters you specify. This lets you create controlled test environments -- thin liquidity pools, extreme price ranges, specific fee tiers -- to test how agents behave under edge conditions.\n\nWhy this is 10x better than doing it manually:\n\nNo Solidity scripting: Creating a V3 pool manually requires calling createAndInitializePoolIfNecessary, computing sqrtPriceX96, calculating tick ranges, approving tokens, and calling mint. This does it all with natural language.\nToken resolution: Say \"WETH/USDC\" and it resolves addresses, decimals, and sorts tokens correctly. No need to look up contract addresses.\nAutomatic funding: If the deployer account doesn't have enough tokens, the tool handles whale impersonation to fund the deployment.\nPrice-to-tick conversion: Specify a price like \"2000\" (USDC per WETH) and the tool computes the correct sqrtPriceX96 and tick range.\nEdge case testing: Create pools with $100 liquidity to test thin-market behavior, or pools at extreme prices to test boundary conditions.\nVerification: After deployment, you can immediately query the pool with get_pool_info to confirm state."
      },
      {
        "title": "When to Use",
        "body": "Activate when the user says anything like:\n\n\"Create a WETH/USDC pool with thin liquidity\"\n\"Deploy a test pool with 0.05% fee\"\n\"Set up a DAI/USDC pool at 1:1\"\n\"Create a pool with only $1000 liquidity\"\n\"Deploy a V2 pair for testing\"\n\"I need a pool with a narrow tick range\"\n\"Create a WBTC/WETH pool at the current price\"\n\"Set up a pool to test high slippage scenarios\"\n\nDo NOT use when no testnet is running (use setup-local-testnet first), or when the user wants to interact with existing mainnet pools (use analyze-pool)."
      },
      {
        "title": "Parameters",
        "body": "ParameterRequiredDefaultHow to Extracttoken0Yes--First token: \"WETH\", \"USDC\", or a 0x addresstoken1Yes--Second token: \"USDC\", \"DAI\", or a 0x addressversionNov3\"v2\" or \"v3\"feeNo3000Fee tier: 100 (0.01%), 500 (0.05%), 3000 (0.3%), 10000 (1%)initialPriceNo--Price of token0 in token1 terms (e.g. 2000 for ETH at $2000)liquidityUsdNo1,000,000Dollar value of initial liquiditytickLowerNoautoV3 lower tick (advanced users only)tickUpperNoautoV3 upper tick (advanced users only)"
      },
      {
        "title": "Step 1: Verify Testnet is Running",
        "body": "If the tool returns TESTNET_NOT_RUNNING, tell the user:\n\nNo local testnet is running. Let me set one up first.\n\nThen suggest using setup-local-testnet or offer to do it for them."
      },
      {
        "title": "Step 2: Extract Parameters",
        "body": "Parse the user's request carefully:\n\nToken pair: \"WETH/USDC\", \"ETH/DAI\", \"WBTC/WETH\"\n\nMap \"ETH\" to \"WETH\" (Uniswap uses wrapped ETH)\n\n\nFee tier: \"0.05% fee\" → 500, \"0.3%\" → 3000, \"1%\" → 10000, \"0.01%\" → 100\nPrice: \"at $2000\" → initialPrice: 2000 (for WETH/USDC)\nLiquidity: \"thin liquidity\" → liquidityUsd: 1000, \"$10M\" → liquidityUsd: 10000000\nVersion: \"V2 pair\" → version: \"v2\", default is \"v3\"\n\nCommon liquidity descriptions:\n\n\"thin\" / \"low\" / \"shallow\" → $1,000 - $10,000\n\"moderate\" / \"normal\" → $100,000 - $1,000,000\n\"deep\" / \"high\" → $10,000,000+"
      },
      {
        "title": "Step 3: Fund Deployer If Needed",
        "body": "If the pool requires tokens the deployer might not have, call mcp__uniswap__fund_test_account first to ensure the deployer (account #1: 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266) has sufficient tokens."
      },
      {
        "title": "Step 4: Deploy the Pool",
        "body": "Call mcp__uniswap__deploy_mock_pool with the extracted parameters."
      },
      {
        "title": "Step 5: Verify and Present",
        "body": "Present the deployed pool with full details:\n\nTest Pool Deployed\n\n  Pool:       WETH/USDC (V3, 0.05% fee)\n  Address:    0xNEW...\n  Price:      1 WETH = 2,000 USDC\n  Liquidity:  ~$1,000,000\n  Tick Range: -204714 to -199514 (±50% around current price)\n\n  Token0: USDC  0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48  (6 decimals)\n  Token1: WETH  0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2  (18 decimals)\n\n  Test Scenarios This Pool Enables:\n  - Swap testing: \"Get a quote for 1 WETH → USDC\"\n  - LP testing: \"Add liquidity to the WETH/USDC pool\"\n  - Price impact: \"What's the price impact of swapping 100 WETH?\"\n  - Time-dependent: \"Advance 7 days and check fee accumulation\""
      },
      {
        "title": "Step 6: Suggest Follow-ups",
        "body": "Next Steps:\n  - Query pool state: \"Get info on pool 0xNEW...\"\n  - Test a swap against this pool\n  - Create another pool with different parameters\n  - Advance time to test fee accumulation: \"Time travel 7 days\""
      },
      {
        "title": "Important Notes",
        "body": "Tokens are automatically sorted. Uniswap requires token0 < token1 by address. The tool handles this.\nV3 pools need initialization. The tool calls createAndInitializePoolIfNecessary which sets the initial price.\nDefault tick range is ±50%. If no tick range is specified, liquidity is spread across a wide range around the initial price.\nDeployer is Anvil account #1. The first Anvil default account is used for deployment.\nPool may already exist on fork. If you fork Ethereum and try to create a WETH/USDC 0.05% pool, it already exists. The tool will add liquidity to the existing pool.\nV2 pools always have 0.3% fee. The fee parameter is ignored for V2."
      },
      {
        "title": "Error Handling",
        "body": "ErrorUser-Facing MessageSuggested ActionTESTNET_NOT_RUNNING\"No local testnet is running.\"Run setup-local-testnet firstTESTNET_TOKEN_NOT_FOUND\"Cannot resolve token X.\"Use a well-known symbol or provide the 0x addressTESTNET_CONTRACT_NOT_FOUND\"NonfungiblePositionManager not found on this chain.\"Fork Ethereum mainnet which has all V3 contractsTESTNET_DEPLOY_POOL_FAILED\"Failed to deploy pool: {reason}\"Check token balances, fund deployer if needed"
      }
    ],
    "body": "Create Test Pool\nOverview\n\nDeploys a custom Uniswap pool on the local testnet with exact parameters you specify. This lets you create controlled test environments -- thin liquidity pools, extreme price ranges, specific fee tiers -- to test how agents behave under edge conditions.\n\nWhy this is 10x better than doing it manually:\n\nNo Solidity scripting: Creating a V3 pool manually requires calling createAndInitializePoolIfNecessary, computing sqrtPriceX96, calculating tick ranges, approving tokens, and calling mint. This does it all with natural language.\nToken resolution: Say \"WETH/USDC\" and it resolves addresses, decimals, and sorts tokens correctly. No need to look up contract addresses.\nAutomatic funding: If the deployer account doesn't have enough tokens, the tool handles whale impersonation to fund the deployment.\nPrice-to-tick conversion: Specify a price like \"2000\" (USDC per WETH) and the tool computes the correct sqrtPriceX96 and tick range.\nEdge case testing: Create pools with $100 liquidity to test thin-market behavior, or pools at extreme prices to test boundary conditions.\nVerification: After deployment, you can immediately query the pool with get_pool_info to confirm state.\nWhen to Use\n\nActivate when the user says anything like:\n\n\"Create a WETH/USDC pool with thin liquidity\"\n\"Deploy a test pool with 0.05% fee\"\n\"Set up a DAI/USDC pool at 1:1\"\n\"Create a pool with only $1000 liquidity\"\n\"Deploy a V2 pair for testing\"\n\"I need a pool with a narrow tick range\"\n\"Create a WBTC/WETH pool at the current price\"\n\"Set up a pool to test high slippage scenarios\"\n\nDo NOT use when no testnet is running (use setup-local-testnet first), or when the user wants to interact with existing mainnet pools (use analyze-pool).\n\nParameters\nParameter\tRequired\tDefault\tHow to Extract\ntoken0\tYes\t--\tFirst token: \"WETH\", \"USDC\", or a 0x address\ntoken1\tYes\t--\tSecond token: \"USDC\", \"DAI\", or a 0x address\nversion\tNo\tv3\t\"v2\" or \"v3\"\nfee\tNo\t3000\tFee tier: 100 (0.01%), 500 (0.05%), 3000 (0.3%), 10000 (1%)\ninitialPrice\tNo\t--\tPrice of token0 in token1 terms (e.g. 2000 for ETH at $2000)\nliquidityUsd\tNo\t1,000,000\tDollar value of initial liquidity\ntickLower\tNo\tauto\tV3 lower tick (advanced users only)\ntickUpper\tNo\tauto\tV3 upper tick (advanced users only)\nWorkflow\nStep 1: Verify Testnet is Running\n\nIf the tool returns TESTNET_NOT_RUNNING, tell the user:\n\nNo local testnet is running. Let me set one up first.\n\n\nThen suggest using setup-local-testnet or offer to do it for them.\n\nStep 2: Extract Parameters\n\nParse the user's request carefully:\n\nToken pair: \"WETH/USDC\", \"ETH/DAI\", \"WBTC/WETH\"\nMap \"ETH\" to \"WETH\" (Uniswap uses wrapped ETH)\nFee tier: \"0.05% fee\" → 500, \"0.3%\" → 3000, \"1%\" → 10000, \"0.01%\" → 100\nPrice: \"at $2000\" → initialPrice: 2000 (for WETH/USDC)\nLiquidity: \"thin liquidity\" → liquidityUsd: 1000, \"$10M\" → liquidityUsd: 10000000\nVersion: \"V2 pair\" → version: \"v2\", default is \"v3\"\n\nCommon liquidity descriptions:\n\n\"thin\" / \"low\" / \"shallow\" → $1,000 - $10,000\n\"moderate\" / \"normal\" → $100,000 - $1,000,000\n\"deep\" / \"high\" → $10,000,000+\nStep 3: Fund Deployer If Needed\n\nIf the pool requires tokens the deployer might not have, call mcp__uniswap__fund_test_account first to ensure the deployer (account #1: 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266) has sufficient tokens.\n\nStep 4: Deploy the Pool\n\nCall mcp__uniswap__deploy_mock_pool with the extracted parameters.\n\nStep 5: Verify and Present\n\nPresent the deployed pool with full details:\n\nTest Pool Deployed\n\n  Pool:       WETH/USDC (V3, 0.05% fee)\n  Address:    0xNEW...\n  Price:      1 WETH = 2,000 USDC\n  Liquidity:  ~$1,000,000\n  Tick Range: -204714 to -199514 (±50% around current price)\n\n  Token0: USDC  0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48  (6 decimals)\n  Token1: WETH  0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2  (18 decimals)\n\n  Test Scenarios This Pool Enables:\n  - Swap testing: \"Get a quote for 1 WETH → USDC\"\n  - LP testing: \"Add liquidity to the WETH/USDC pool\"\n  - Price impact: \"What's the price impact of swapping 100 WETH?\"\n  - Time-dependent: \"Advance 7 days and check fee accumulation\"\n\nStep 6: Suggest Follow-ups\n  Next Steps:\n  - Query pool state: \"Get info on pool 0xNEW...\"\n  - Test a swap against this pool\n  - Create another pool with different parameters\n  - Advance time to test fee accumulation: \"Time travel 7 days\"\n\nImportant Notes\nTokens are automatically sorted. Uniswap requires token0 < token1 by address. The tool handles this.\nV3 pools need initialization. The tool calls createAndInitializePoolIfNecessary which sets the initial price.\nDefault tick range is ±50%. If no tick range is specified, liquidity is spread across a wide range around the initial price.\nDeployer is Anvil account #1. The first Anvil default account is used for deployment.\nPool may already exist on fork. If you fork Ethereum and try to create a WETH/USDC 0.05% pool, it already exists. The tool will add liquidity to the existing pool.\nV2 pools always have 0.3% fee. The fee parameter is ignored for V2.\nError Handling\nError\tUser-Facing Message\tSuggested Action\nTESTNET_NOT_RUNNING\t\"No local testnet is running.\"\tRun setup-local-testnet first\nTESTNET_TOKEN_NOT_FOUND\t\"Cannot resolve token X.\"\tUse a well-known symbol or provide the 0x address\nTESTNET_CONTRACT_NOT_FOUND\t\"NonfungiblePositionManager not found on this chain.\"\tFork Ethereum mainnet which has all V3 contracts\nTESTNET_DEPLOY_POOL_FAILED\t\"Failed to deploy pool: {reason}\"\tCheck token balances, fund deployer if needed"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/wpank/create-test-pool",
    "publisherUrl": "https://clawhub.ai/wpank/create-test-pool",
    "owner": "wpank",
    "version": "0.1.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/create-test-pool",
    "downloadUrl": "https://openagent3.xyz/downloads/create-test-pool",
    "agentUrl": "https://openagent3.xyz/skills/create-test-pool/agent",
    "manifestUrl": "https://openagent3.xyz/skills/create-test-pool/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/create-test-pool/agent.md"
  }
}