setup-local-testnet

Spin up a local Anvil testnet with Uniswap deployed and pre-seeded liquidity. One command gives you a full development environment with funded accounts, real Uniswap pools, and zero gas costs. Use when developing, testing, or demoing Uniswap agent workflows.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "setup-local-testnet" with this command: npx skills add wpank/setup-local-testnet

Setup Local Testnet

Overview

Spins up a local Anvil testnet forking a live chain with all Uniswap contracts available, pre-funded test accounts, and real pool state. This is the foundation for all local testing -- every other testnet skill depends on it.

Why this is 10x better than doing it manually:

  1. One command: Instead of writing 30+ lines of shell script to start Anvil, impersonate whales, fund accounts, and verify contracts, you say "set up a local testnet" and it's done.
  2. Pre-funded accounts: Each test account gets 10,000 ETH plus 1M USDC, 1M USDT, 10K DAI, 100 WETH, and 10K UNI -- ready for any testing scenario.
  3. Real pool state: Fork mode gives you every Uniswap pool with real liquidity, real prices, and real tick state. No mocking required.
  4. Contract discovery: Returns all relevant Uniswap contract addresses (V3Factory, NonfungiblePositionManager, UniversalRouter, Permit2, QuoterV2) so you can immediately interact with them.
  5. Port management: Automatically finds an available port, handles conflicts, and cleans up previous testnets.
  6. Follow-up integration: Output is designed to feed directly into create-test-pool and time-travel skills.

When to Use

Activate when the user says anything like:

  • "Set up a local testnet"
  • "Start a local Anvil fork"
  • "I need a test environment for Uniswap"
  • "Fork Ethereum locally"
  • "Set up a dev environment"
  • "I want to test without spending real gas"
  • "Spin up Anvil with Uniswap"
  • "Create a test environment for my agent"

Do NOT use when the user already has a testnet running and just wants to add pools (use create-test-pool) or advance time (use time-travel).

Parameters

ParameterRequiredDefaultHow to Extract
modeNofork"fork" or "mock" -- fork is the default and recommended
forkFromNoethereum"ethereum", "base", "arbitrum", "optimism", "polygon"
blockNumberNolatestSpecific block number if the user mentions one
seedLiquidityNotrueSet to false only if user says "empty testnet" or "no tokens"
fundedAccountsNo3Number of accounts (1-5) if user specifies
portNoautoSpecific port if user mentions one

Workflow

Step 1: Check Prerequisites

Before calling the MCP tool, verify the environment:

  1. Anvil availability: The tool will return a clear error if Anvil is not installed. If you see TESTNET_ANVIL_NOT_FOUND, tell the user:

    Anvil (Foundry) is required but not installed.
    Install: curl -L https://foundry.paradigm.xyz | bash && foundryup
    
  2. Network access: Fork mode requires network access to the chain's RPC. If you see TESTNET_STARTUP_TIMEOUT, suggest checking network connectivity or trying a different chain.

Step 2: Extract Parameters

Parse the user's request for any specific requirements:

  • Chain preference: "fork Base" → forkFrom: "base"
  • Block number: "at block 19000000" → blockNumber: 19000000
  • Account count: "5 test accounts" → fundedAccounts: 5
  • No funding: "empty testnet" → seedLiquidity: false

If the user doesn't specify, use all defaults (fork Ethereum, 3 funded accounts, seed liquidity).

Step 3: Call setup_local_testnet

Call mcp__uniswap__setup_local_testnet with the extracted parameters.

Step 4: Present Results

Format the response as a rich summary:

Local Testnet Ready

  RPC URL:    http://127.0.0.1:8545
  Chain ID:   31337
  Mode:       Fork of Ethereum at block 19,234,567

  Funded Accounts:
  ┌──────────────────────────────────────────────────────────────────────┐
  │ #  Address                                    ETH       USDC        │
  │ 1  0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 10,000    1,000,000  │
  │ 2  0x70997970C51812dc3A010C7d01b50e0d17dc79C8 10,000    1,000,000  │
  │ 3  0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC 10,000    1,000,000  │
  └──────────────────────────────────────────────────────────────────────┘

  Key Contracts:
    V3Factory:                      0x1F98431c8aD98523631AE4a59f267346ea31F984
    NonfungiblePositionManager:     0xC36442b4a4522E871399CD717aBDD847Ab11FE88
    UniversalRouter:                0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD
    Permit2:                        0x000000000022D473030F116dDEE9F6B43aC78BA3
    QuoterV2:                       0x61fFE014bA17989E743c5F6cB21bF9697530B21e

  Available Pools (from fork):
    USDC/WETH 0.05% (V3)  — 0x88e6A0c2dDD26FEEb64F039a2c41296FcB3f5640
    USDC/WETH 0.30% (V3)  — 0x8ad599c3A0ff1De082011EFDDc58f1908eb6e6D8
    USDT/WETH 0.30% (V3)  — 0x4e68Ccd3E89f51C3074ca5072bbAC773960dFa36
    WBTC/WETH 0.30% (V3)  — 0xCBCdF9626bC03E24f779434178A73a0B4bad62eD

  Private Keys (for wallet config):
    Account #1: 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80
    Account #2: 0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d
    Account #3: 0x5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a

Step 5: Suggest Next Steps

Always end with actionable follow-ups:

  Next Steps:
  - Create a custom pool: "Create a WETH/DAI pool with thin liquidity"
  - Test time-dependent logic: "Advance time by 7 days"
  - Test a swap: "Get a quote for 1 WETH → USDC on the local testnet"
  - Fund more tokens: "Fund account #1 with 10,000 WBTC"
  - Configure your MCP server: Set RPC_URL_1=http://127.0.0.1:8545 in .env

Important Notes

  • Anvil must be installed. This skill requires Foundry's Anvil. If not installed, provide the installation command.
  • Fork mode requires network access. The initial fork downloads state from the live chain's RPC. Subsequent operations are local.
  • Port conflicts are handled automatically. If port 8545 is in use, the tool finds the next available port.
  • Previous testnets are cleaned up. Starting a new testnet kills any existing one.
  • Private keys are Anvil defaults. These are well-known test keys -- never use them on mainnet.
  • The testnet persists until the MCP server process exits or a new testnet is started.

Error Handling

ErrorUser-Facing MessageSuggested Action
TESTNET_ANVIL_NOT_FOUND"Anvil (Foundry) is not installed."Install: curl -L https://foundry.paradigm.xyz | bash && foundryup
TESTNET_STARTUP_TIMEOUT"Anvil did not start within 30s. Fork RPC may be unreachable."Check network, try a different chain, or retry
TESTNET_INVALID_FORK_CHAIN"Chain X is not supported for forking."Use ethereum, base, arbitrum, optimism, or polygon
TESTNET_MOCK_NOT_IMPLEMENTED"Mock mode is not yet implemented."Use fork mode instead
TESTNET_SETUP_FAILED"Failed to set up testnet: {reason}"Check Anvil installation and network access

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

Raspberry Pi Manager

Manage Raspberry Pi devices — GPIO control, system monitoring (CPU/temp/memory), service management, sensor data reading, and remote deployment. Use when you...

Registry SourceRecently Updated
Coding

LinkdAPI

Complete LinkdAPI integration OpenClaw skill. Includes all 50+ endpoints, Python/Node.js/Go SDKs, authentication, rate limits, and real-world examples. Use t...

Registry SourceRecently Updated
Coding

Tesla Commander

Command and monitor Tesla vehicles via the Fleet API. Check status, control climate/charging/locks, track location, and analyze trip history. Use when you ne...

Registry SourceRecently Updated
0154
Profile unavailable