Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

Setup Local Anvil Testnet

v0.1.0

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.

0· 792·0 current·0 all-time
Security Scan
VirusTotalVirusTotal
Suspicious
View report →
OpenClawOpenClaw
Benign
medium confidence
Purpose & Capability
Name/description match the instructions: the SKILL.md describes starting an Anvil fork, seeding accounts and Uniswap pools, and returning RPC URL/contract addresses/private keys. The skill is instruction-only and expects an MCP tool (mcp__uniswap__setup_local_testnet) to perform the actual work — this is consistent with a wrapper/orchestration skill.
Instruction Scope
Instructions stay within the stated purpose (check Anvil, parse parameters, call the MCP tool, format results). They will present private keys and funded account details to the user (expected for a local testnet). The document also suggests running the Foundry install command (curl ... | bash) if Anvil is missing — that is an out-of-band installation step the user should consider carefully.
Install Mechanism
This is instruction-only (no install spec, no code files to execute). README points to adding the skill via npx/clawhub; the SKILL.md itself does not install arbitrary binaries. The only external install the instructions reference is the standard Foundry installer (curl pipe to bash), which is common but should be treated as an explicit user action and audited before running.
Credentials
The skill declares no required env vars, but fork mode realistically needs a chain RPC endpoint (Alchemy/Infura/custom RPC) to fork from; SKILL.md mentions network access/timeouts but does not declare or ask for an RPC API key. That omission may be an implementation detail of the MCP tool, but you should confirm where the RPC URL comes from. Also, the skill outputs private keys for funded accounts — normal for local Anvil forks but sensitive if reused or transmitted elsewhere.
Persistence & Privilege
The skill does not request elevated persistence (always:false) and does not instruct modifying other skills or system-wide settings. It will manage a local Anvil process/port and clean it up per its description — expected for this functionality.
Assessment
This skill appears to do what it claims (start a local Anvil fork, seed Uniswap pools, and return accounts/contracts), but check these before installing or running: 1) Confirm where the fork RPC comes from — the MCP tool or you will need to supply an RPC URL / API key (Alchemy/Infura/etc.). Don't assume anonymous public RPCs will be used. 2) The SKILL.md suggests running Foundry's installer (curl ... | bash) if Anvil is missing — audit that installer and run it yourself if you trust the source. 3) The skill will print private keys for test accounts (normal for local forks). Treat those keys as sensitive for any environment where networked components might read them; never reuse them on mainnet. 4) Verify the MCP tool implementations (mcp__uniswap__setup_local_testnet, fund_test_account, get_supported_chains) come from a trusted source or inspect their code before allowing autonomous execution. 5) If you are uncertain, run this skill in an isolated VM/container and ensure it uses a known RPC endpoint. These checks would change the confidence to high if satisfied.

Like a lobster shell, security has layers — review code before you run it.

latestvk978p8afnrc5808p8kmajr7egd80w64j
792downloads
0stars
1versions
Updated 14h ago
v0.1.0
MIT-0

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

Comments

Loading comments...