Plan liquidity provision on PancakeSwap. Use when user says "add liquidity on pancakeswap", "provide liquidity", "LP on pancakeswap", "farm pancakeswap", or describes wanting to deposit tokens into liquidity pools.
Plan liquidity provision on PancakeSwap by gathering user intent, discovering tokens, assessing pool metrics, recommending price ranges and fee tiers, and generating a ready-to-use deep link.
This skill does not execute transactions — it plans liquidity provision. Output is a deep link URL to the PancakeSwap position creation interface, pre-filled with LP parameters.
::: danger MANDATORY SECURITY RULES
^0x[0-9a-fA-F]{40}$. Reject shell metacharacters.open/xdg-open with https://pancakeswap.finance/ URLs.
:::| Chain | Chain ID | Key | Pool Types |
|---|---|---|---|
| BNB Smart Chain | 56 | bsc | V2, V3, StableSwap, Infinity |
| Ethereum | 1 | eth | V3 |
| Arbitrum One | 42161 | arb | V3 |
| Base | 8453 | base | V3, Infinity |
| zkSync Era | 324 | zksync | V3 |
| Linea | 59144 | linea | V3 |
| opBNB | 204 | opbnb | V3 |
Ask (batch up to 4): Token A, Token B, Amount, Chain (default BSC). Optional: farm yield interest, price range preference.
# DexScreener search
KEYWORD='pancake'; CHAIN="bsc"
curl -s -G "https://api.dexscreener.com/latest/dex/search" --data-urlencode "q=$KEYWORD" | \
jq --arg chain "$CHAIN" '[.pairs[] | select(.chainId == $chain and .dexId == "pancakeswap") | {symbol: .baseToken.symbol, address: .baseToken.address, liquidity: (.liquidity.usd // 0)}] | sort_by(-.liquidity) | .[0:5]'
# Official token list
curl -s "https://tokens.pancakeswap.finance/pancakeswap-default.tokenlist.json" | \
jq --arg sym "CAKE" '.tokens[] | select(.symbol == $sym) | {name, symbol, address, chainId, decimals}'
RPC="https://bsc-dataseed1.binance.org"; TOKEN="0x..."
[[ "$TOKEN" =~ ^0x[0-9a-fA-F]{40}$ ]] || { echo "Invalid token address"; exit 1; }
cast call "$TOKEN" "name()(string)" --rpc-url "$RPC"
cast call "$TOKEN" "symbol()(string)" --rpc-url "$RPC"
cast call "$TOKEN" "decimals()(uint8)" --rpc-url "$RPC"
Red flags: eth_call → 0x, name/symbol mismatch, deployed < 48h, single-wallet liquidity.
TOKEN_A="0x0E09FaBB73Bd3Ade0a17ECC321fD13a19e81cE82"; CHAIN_ID="bsc"
curl -s "https://api.dexscreener.com/latest/dex/tokens/${TOKEN_A}" | \
jq --arg dex "pancakeswap" --arg chain "$CHAIN_ID" '[.pairs[] | select(.dexId == $dex and .chainId == $chain) | {pairAddress, feeTier, liquidity: .liquidity.usd, volume24h: .volume.h24}]'
curl -s "https://api.llama.fi/pools" | \
jq '[.data[] | select(.project == "pancakeswap-amm-v3") | {pool: .symbol, chain, apy, apyBase, tvlUsd}] | sort_by(-.apy) | .[0:10]'
| Range | IL at 2x | IL at 5x |
|---|---|---|
| Full (±∞) | 0% | 0% |
| ±50% | 0.6% | 5.7% |
| ±25% | 0.2% | 1.8% |
| ±10% | 0.03% | 0.31% |
Profiles:
| Fee Tier | Best For |
|---|---|
| 0.01% (100) | Stablecoin pairs (USDC/USDT) |
| 0.05% (500) | Correlated pairs |
| 0.25% (2500) | Large caps (CAKE, BNB, ETH) — default |
| 1.0% (10000) | Small caps, volatile pairs |
StableSwap (BSC only): 0.04%–0.1%, amplified. Best for USDT/USDC/BUSD.
# V3