Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Add liquidity, remove liquidity, or collect fees on Uniswap V2/V3/V4 pools. Handles the full flow including pool selection, range optimization, approvals, safety checks, and transaction execution. Use when the user wants to LP, provide liquidity, remove a position, or collect accumulated fees.
Add liquidity, remove liquidity, or collect fees on Uniswap V2/V3/V4 pools. Handles the full flow including pool selection, range optimization, approvals, safety checks, and transaction execution. Use when the user wants to LP, provide liquidity, remove a position, or collect accumulated fees.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
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.
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.
This is the primary skill for all liquidity operations on Uniswap. It handles three distinct actions: Add liquidity β Find the best pool, recommend a range, handle approvals, deposit tokens Remove liquidity β Withdraw tokens from an existing position (partial or full) Collect fees β Claim accumulated trading fees from a position Each action delegates to the liquidity-manager agent for execution, with optional pool-researcher delegation for intelligent pool selection. This skill extracts the user's intent, validates parameters, and orchestrates the right agent workflow.
Activate when the user says anything related to providing, removing, or managing Uniswap liquidity: Adding liquidity: "Add liquidity to ETH/USDC" "Provide LP for WETH/USDC on Base" "LP into the best pool for ETH/USDC" "Open a position in UNI/WETH" "I want to LP $5000 into ETH/USDC" "Deposit liquidity into the 0.05% pool" "Add $10K to my WETH/USDC position" Removing liquidity: "Remove my liquidity" "Close my ETH/USDC position" "Withdraw 50% from position #12345" "Exit my LP position" Collecting fees: "Collect my fees" "Claim accumulated fees from position #12345" "How much in fees have I earned?" (check first, then offer to collect)
ParameterRequiredDefaultHow to ExtractactionYesβAlways "add" for this sub-flowtoken0YesβFirst token: "ETH", "WETH", "USDC", or 0x addresstoken1YesβSecond tokenamountYesβDollar amount ("$5000"), token amount ("2.5 ETH"), or bothchainNoethereum"ethereum", "base", "arbitrum", "optimism", "polygon"versionNov3"v2" (passive), "v3" (concentrated), "v4" (hooks)rangeNomedium"narrow" (Β±5%), "medium" (Β±15%), "wide" (Β±50%), "full" (Β±β)feeTierNoAuto-detect"0.01%", "0.05%", "0.3%", "1%" or bps: 100, 500, 3000, 10000
ParameterRequiredDefaultHow to ExtractactionYesβ"remove" or "collect"positionIdYes*βNFT token ID ("position #12345") or found via searchchainNoethereumChain where the position existspercentageNo100"50%", "all", "half" β only for removecollectFeesNotrueWhether to also collect fees when removing *If the user doesn't provide a position ID (e.g., "remove my ETH/USDC position"), search for it using get_positions_by_owner and confirm with the user before proceeding.
Step 1: PARSE INTENT βββ Extract: tokens, amount, chain, version, range, fee tier βββ Normalize: "ETH" β "WETH", "$5K" β "$5000" βββ If any required params missing β ASK the user (don't guess) Step 2: POOL SELECTION (if user didn't specify exact pool) βββ If "best pool" or no fee tier specified: β βββ Delegate to pool-researcher: "Find the best pool for {token0}/{token1} on {chain}" β Pool researcher returns ranked pools with APY, TVL, depth β Pick the recommended pool (or present top 3 if user wants to choose) βββ If specific pool given: use directly Step 3: PRE-FLIGHT CHECKS βββ Check safety status via check_safety_status βββ Verify wallet has sufficient token balances βββ If checks fail β STOP and tell user what's wrong Step 4: DELEGATE TO LIQUIDITY-MANAGER βββ Pass: token0, token1, amount, chain, version, range, feeTier, pool address βββ The liquidity-manager agent handles: β a. Check and execute token approvals (Permit2) β b. Calculate optimal tick range based on range strategy β c. Simulate the add-liquidity transaction β d. Route through safety-guardian for validation β e. Execute the transaction β f. Wait for confirmation βββ Returns: positionId, amounts deposited, tick range, tx hash Step 5: PRESENT RESULT βββ Position ID (NFT token ID) βββ Tokens deposited with USD values βββ Price range (lower price, upper price, current price) βββ Estimated fee APY (from pool-researcher data) βββ Explorer link to the transaction βββ Tip: "Monitor with /track-performance"
Step 1: IDENTIFY POSITION βββ If position ID given β use directly βββ If "my ETH/USDC position" β call get_positions_by_owner β βββ Filter by token pair and chain β βββ If multiple matches β LIST them and ask user to choose β βββ If no matches β tell user "No positions found for {pair}" βββ Confirm: "I found position #{id} β {pair} {feeTier} with {value}. Remove?" Step 2: DELEGATE TO LIQUIDITY-MANAGER βββ Pass: positionId, chain, percentage (default 100%), collectFees βββ Agent handles: fee collection β partial/full removal β safety validation β execution βββ Returns: tokens received, fees collected, tx hash Step 3: PRESENT RESULT βββ Tokens received with USD values βββ Fees collected (if any) βββ Total value received βββ Explorer link βββ If partial removal: remaining position details
Step 1: IDENTIFY POSITION (same as remove) Step 2: CHECK UNCOLLECTED FEES βββ Call get_position to see tokensOwed0 and tokensOwed1 βββ If fees are zero β "No fees to collect on this position" βββ Show fee amounts and ask to proceed Step 3: DELEGATE TO LIQUIDITY-MANAGER βββ Pass: positionId, chain, action: "collect" βββ Returns: fees collected, tx hash Step 4: PRESENT RESULT βββ Fees collected (token amounts + USD values) βββ Explorer link βββ Tip: "Your position is still active and earning more fees"
These are the moments where the skill must stop and ask rather than assume: SituationActionMultiple positions matchList all matches, ask user to pick oneAmount exceeds wallet balanceShow balance, ask if they want a smaller amountPool TVL < $10,000Warn about low liquidity risk, ask to confirmRange strategy not specifiedDefault to "medium" but mention the tradeoffsFirst time LPingBriefly explain IL risk before proceedingRemove > 50% of pool liquidityWarn about price impact on exit
Liquidity Added Successfully Position: #456789 Pool: WETH/USDC 0.05% (V3, Ethereum) Deposited: 0.5 WETH ($980) 980 USDC ($980) Total: $1,960 Range: Lower: $1,700 (tick -204714) Upper: $2,300 (tick -199514) Current: $1,963 β IN RANGE β Width: Β±15% (medium) Expected Fee APY: ~15-21% (based on 7d pool data) Tx: https://etherscan.io/tx/0x... Next steps: - Monitor with: "How are my positions doing?" - Rebalance if out of range: "Rebalance position #456789" - Collect fees anytime: "Collect fees from position #456789"
Liquidity Removed Position: #456789 (CLOSED) Received: 0.52 WETH ($1,020) 950 USDC ($950) Total: $1,970 Fees Collected: 0.01 WETH ($19.60) 15.20 USDC ($15.20) Total fees: $34.80 Net Result: +$44.80 (+2.3%) including fees Tx: https://etherscan.io/tx/0x...
IL risk: Always mention impermanent loss risk when adding liquidity to volatile pairs. Don't bury it. Gas costs: On Ethereum mainnet, LP operations cost $15-50 in gas. Mention this for small positions. Range tradeoffs: Narrow = higher fees but more rebalancing. Wide = lower fees but less maintenance. Always explain. V2 vs V3: V2 is "set and forget" with lower returns. V3 requires active management but earns more. Help the user choose. Never auto-execute: For remove and rebalance, always confirm with the user before executing.
ErrorUser-Facing MessageSuggested ActionWallet not configured"No wallet configured for transactions."Set WALLET_TYPE + PRIVATE_KEY in .envInsufficient balance"You have X but need Y to add liquidity."Reduce amount or swap for needed tokensPool not found"No pool found for X/Y at this fee tier."Try different fee tier or check token namesPosition not found"Position #ID not found on this chain."Check chain and position IDSafety check failed"Transaction blocked by safety: {reason}"Adjust parameters or check safety configTransaction reverted"Transaction failed: {reason}"Check slippage, amounts, or try againliquidity-manager unavailable"Liquidity agent is not available."Check agent configuration
Trading, swaps, payments, treasury, liquidity, and crypto-financial operations.
Largest current source with strong distribution and engagement signals.