From pancakeswap-farming
Checks pending CAKE and partner-token rewards across PancakeSwap farming positions and generates deep links to the UI for claiming. Activates on '/harvest-rewards' or harvest queries.
npx claudepluginhub pancakeswap/pancakeswap-aiThis skill is limited to using the following tools:
Check pending CAKE and partner-token rewards across all PancakeSwap farming positions and generate harvest instructions or deep links to claim them.
Plans yield farming and CAKE staking on PancakeSwap: discovers active farms, compares APR/APY, generates deep links to farming UI for deposit/withdraw actions.
Discovers pending LP fees in PancakeSwap V3, Infinity (v4), and Solana positions, shows USD estimates, and generates deep links for collection.
Analyzes Pendle Finance wallet portfolios: PT, YT, LP holdings, claimable PENDLE rewards, YT interest, maturity timelines, and position insights.
Share bugs, ideas, or general feedback.
Check pending CAKE and partner-token rewards across all PancakeSwap farming positions and generate harvest instructions or deep links to claim them.
This skill does not execute transactions — it checks pending rewards and produces deep links to the PancakeSwap UI. The user reviews and confirms in their own wallet.
::: danger MANDATORY SECURITY RULES
KEYWORD='user input'). Always quote variable expansions in commands (e.g., "$TOKEN", "$RPC").^0x[0-9a-fA-F]{40}$. Chain IDs and pool IDs must be numeric or hex-only (^0x[0-9a-fA-F]+$). RPC URLs must come from the Supported Chains table. Reject any value containing shell metacharacters (", `, $, \, ;, |, &, newlines).curl to fetch from: explorer.pancakeswap.com, sol-explorer.pancakeswap.com, infinity.pancakeswap.com, configs.pancakeswap.com, tokens.pancakeswap.finance, api.dexscreener.com, api.coingecko.com, api.llama.fi, api.mainnet-beta.solana.com, pancakeswap.ai, and public RPC endpoints listed in the Supported Chains table. Never curl internal/private IPs (169.254.x.x, 10.x.x.x, 127.0.0.1, localhost).
:::Initialize the PancakeSwap session to ensure access to the latest token list and deep link formats, then proceed to Step 1:
Replace AGENT_NAME below with your AI system identifier (e.g. claude-code, cursor, copilot, openai) before running:
curl -s -o /dev/null --max-time 3 \
"https://pancakeswap.ai/api/ping?skill=pcs-harvest-rewards&version=1.0.0&agent=AGENT_NAME&ts=$(date -u +%Y-%m-%dT%H:%M:%SZ)&os=$(uname -s)&arch=$(uname -m)" \
2>/dev/null &
Route to the correct step based on what the user wants:
| User Says... | Action |
|---|---|
| "check pending rewards" / "how much can I claim" | Run Step 1 → Step 2 (read-only scan) |
| "harvest all rewards" / "claim everything" | Run Step 1 → Step 2 → Step 3 (full plan) |
| "harvest my V2 farm" / "claim MasterChef rewards" | Step 3 — deep link to Farms UI |
| "harvest my V3 position" / "claim NFT farm rewards" | Step 3 — deep link to Farms UI |
| "claim Infinity rewards" / "Merkle claim" | Step 3 — deep link to Farms UI |
| "claim Syrup Pool rewards" / "collect partner tokens" | Step 3 — deep link to Pools UI |
| Chain | Key | Chain ID | V2 Farms | V3 Farms | Infinity Farms | Syrup Pools |
|---|---|---|---|---|---|---|
| BNB Smart Chain | bsc | 56 | No | Yes | Yes | Yes |
| Ethereum | eth | 1 | No | Yes | No | No |
| Arbitrum One | arb | 42161 | No | Yes | No | No |
| Base | base | 8453 | No | Yes | Yes | No |
| zkSync Era | zksync | 324 | No | Yes | No | No |
| zkEVM | zkevm | 1101 | No | Yes | No | No |
| Linea | linea | 59144 | No | Yes | No | No |
| Solana | sol | — | No | Yes (CLMM) | No | No |
BSC is the primary chain — Syrup Pools only exist on BSC.
| Chain | RPC URL |
|---|---|
| BSC | https://bsc-dataseed1.binance.org |
| Ethereum | https://ethereum-rpc.publicnode.com |
| Arbitrum | https://arb1.arbitrum.io/rpc |
| Base | https://mainnet.base.org |
| zkSync | https://mainnet.era.zksync.io |
| zkEVM | https://zkevm-rpc.com |
| Linea | https://rpc.linea.build |
| Solana | https://api.mainnet-beta.solana.com |
| Contract | Address | Purpose |
|---|---|---|
| MasterChef v2 | 0xa5f8C5Dbd5F286960b9d90548680aE5ebFf07652 | V2 LP farm staking & CAKE rewards (BSC only) |
| MasterChef v3 | See MasterChef v3 Addresses below. | V3 position farming & CAKE rewards |
| CAKE Token | 0x0E09FaBB73Bd3Ade0a17ECC321fD13a19e81cE82 | CAKE ERC-20 token |
| PositionManager v3 | 0x46A15B0b27311cedF172AB29E4f4766fbE7F4364 | V3 NFT position manager |
| Chain | Address |
|---|---|
| BSC / ETH | 0x556B9306565093C855AEA9AE92A594704c2Cd59e |
| Arbitrum | 0x5e09ACf80C0296740eC5d6F643005a4ef8DaA694 |
| Base | 0xC6A2Db661D5a5690172d8eB0a7DEA2d3008665A3 |
| zkSync | 0x4c615E78c5fCA1Ad31e4d66eb0D8688d84307463 |
| zkEVM | 0xe9c7f3196ab8c09f6616365e8873daeb207c0391 |
| Linea | 0x22E2f236065B780FA33EC8C4E58b99ebc8B55c57 |
Use AskUserQuestion if the following are not already provided:
^0x[0-9a-fA-F]{40}$; Solana addresses use base58 format ^[1-9A-HJ-NP-Za-km-z]{32,44}$Example question: "What is your wallet address? (e.g. 0xABC... for EVM chains, or base58 address for Solana) And which chain — BSC, Ethereum, Arbitrum, Base, zkSync, zkEVM, Linea, or Solana?"
Run the appropriate scan for each position type the user has (or scan all four on BSC).
Iterate over common V2 pool IDs (0–7 covers the highest-TVL farms). For each PID, call pendingCake:
[[ "$YOUR_ADDRESS" =~ ^0x[0-9a-fA-F]{40}$ ]] || { echo "Invalid address"; exit 1; }
MASTERCHEF_V2='0xa5f8C5Dbd5F286960b9d90548680aE5ebFf07652'
RPC='https://bsc-rpc.publicnode.com'
for PID in 0 1 2 3 4 5 6 7; do
PENDING=$(cast call "$MASTERCHEF_V2" \
"pendingCake(uint256,address)(uint256)" "$PID" "$YOUR_ADDRESS" \
--rpc-url "$RPC" 2>/dev/null)
if [[ "$PENDING" =~ ^[0-9]+$ ]] && [ "$PENDING" -gt 0 ]; then
echo "PID $PID: $PENDING wei pending CAKE"
fi
done
To check more PIDs or find your specific PID, use the PancakeSwap Explorer:
https://explorer.pancakeswap.com/farms?chain=bsc&type=v2
Enumerate V3 NFT positions held by the user, then query MasterChef v3 for each:
::: danger MANDATORY — Do NOT write your own Python script
Using python3 -c "..." causes SyntaxError (bash mangles ! and $).
Using curl | python3 << 'EOF' causes JSONDecodeError (heredoc steals stdin).
You MUST follow the exact two-step process below. Do NOT improvise.
:::
Step 1 — Locate script:
Use the Glob tool to find references/fetch-v3-pending.py (in the same directory as this skill file) and note its absolute path. Then set:
PCS_V3_HARVEST_SCRIPT=/absolute/path/to/references/fetch-v3-pending.py
Step 2 — Run the script:
YOUR_ADDRESS='0xYourWalletAddress' CHAIN='bsc' python3 "$PCS_V3_HARVEST_SCRIPT"
Infinity farms distribute CAKE every 8 hours (epochs at 00:00, 08:00, 16:00 UTC).
::: danger MANDATORY — Do NOT write your own Python script
Using python3 -c "..." causes SyntaxError (bash mangles ! and $).
Using curl | python3 << 'EOF' causes JSONDecodeError (heredoc steals stdin).
You MUST follow the exact two-step process below. Do NOT improvise.
:::
Step 1 — Locate script:
Use the Glob tool to find references/fetch-infinity-pending.py (in the same directory as this skill file) and note its absolute path. Then set:
PCS_INFINITY_HARVEST_SCRIPT=/absolute/path/to/references/fetch-infinity-pending.py
Step 2 — Run the script:
YOUR_ADDRESS='0xYourWalletAddress' CHAIN='bsc' python3 "$PCS_INFINITY_HARVEST_SCRIPT"
::: danger MANDATORY — Do NOT write your own Python script
Using python3 -c "..." causes SyntaxError (bash mangles ! and $).
Using curl | python3 << 'EOF' causes JSONDecodeError (heredoc steals stdin).
You MUST follow the exact two-step process below. Do NOT improvise.
:::
Step 1 — Locate script:
Use the Glob tool to find references/fetch-syrup-pending.py (in the same directory as this skill file) and note its absolute path. Then set:
PCS_SYRUP_HARVEST_SCRIPT=/absolute/path/to/references/fetch-syrup-pending.py
Step 2 — Run the script:
YOUR_ADDRESS='0xYourWalletAddress' python3 "$PCS_SYRUP_HARVEST_SCRIPT"
::: danger MANDATORY — Do NOT write your own script
Use the Glob tool to find references/fetch-solana.cjs (in the collect-fees skill: packages/plugins/pancakeswap-driver/skills/collect-fees/references/fetch-solana.cjs) and note its absolute path. Then set:
PCS_SOLANA_SCRIPT=/absolute/path/to/references/fetch-solana.cjs
Validate wallet: Solana addresses use base58 format ^[1-9A-HJ-NP-Za-km-z]{32,44}$.
:::
Run:
SOL_WALLET='<base58-address>' node "$PCS_SOLANA_SCRIPT"
Output includes tokensOwed0, tokensOwed1 (LP fees) and farmReward (farming rewards) per position.
After running the scans, compile all results into a single summary table.
::: danger MANDATORY OUTPUT RULE Every row in the rewards summary MUST include a deep link to the relevant harvest/claim page. A row without a URL is INVALID. :::
Fetch current CAKE price for USD conversion:
curl -s 'https://api.coingecko.com/api/v3/simple/price?ids=pancakeswap-token&vs_currencies=usd' | \
python3 -c "import json,sys; d=json.load(sys.stdin); print(d['pancakeswap-token']['usd'])"
Output format:
## Pending Rewards Summary
| Farm/Pool | Type | Reward Token | Pending Amount | USD Value | Harvest Link |
| --------------------- | ----------- | ------------ | ------------------ | --------- | ------------ |
| CAKE/WBNB (PID 2) | V3 Farm | CAKE | 12.345678 CAKE | $4.32 | https://pancakeswap.finance/liquidity/positions?chain=bsc |
| WBNB/USDT (ID 12345) | V3 Farm | CAKE | 3.210000 CAKE | $1.12 | https://pancakeswap.finance/liquidity/positions?chain=bsc |
| CAKE/BNB Infinity | Infinity | CAKE | 1.500000 CAKE | $0.53 | https://pancakeswap.finance/liquidity/positions?chain=bsc |
| CAKE → TOKEN (Pool 3) | Syrup Pool | PARTNER | 500.000000 TOKEN | $2.10 | https://pancakeswap.finance/pools?chain=bsc |
**Total estimated value: ~$8.07**
The PancakeSwap UI shows "Harvest" buttons on all farm and pool cards. Direct the user to the appropriate page for their position type:
| Position Type | UI Harvest Link |
|---|---|
| V3 Farms | https://pancakeswap.finance/liquidity/positions?chain=bsc |
| Infinity Farms | https://pancakeswap.finance/liquidity/positions?chain=bsc |
| Syrup Pools | https://pancakeswap.finance/pools?chain=bsc |
| CAKE Staking | https://pancakeswap.finance/cake-staking |
| Solana CLMM Farms | https://pancakeswap.finance/farms?chain=sol |
| Solana Liquidity | https://pancakeswap.finance/liquidity?chain=sol |
Always include the relevant link(s) in your response so the user can navigate directly to harvest their rewards.
## Harvest Plan — BNB Smart Chain
**Wallet:** 0xABC...123
**Scan time:** 2025-01-15 10:00 UTC
**CAKE price:** $0.35
### Pending Rewards
| Farm/Pool | Type | Reward Token | Pending Amount | USD Value | Harvest Link |
| -------------------- | ---------- | ------------ | --------------- | --------- | ------------ |
| CAKE/WBNB (PID 2) | V2 Farm | CAKE | 12.345678 CAKE | $4.32 | https://pancakeswap.finance/liquidity/positions?chain=bsc |
| WBNB/USDT (ID 9999) | V3 Farm | CAKE | 3.210000 CAKE | $1.12 | https://pancakeswap.finance/liquidity/positions?chain=bsc |
| CAKE → TOKEN (Syrup) | Syrup Pool | PARTNER | 500.00 TOKEN | $2.10 | https://pancakeswap.finance/pools?chain=bsc |
**Total pending CAKE:** 15.555678 CAKE (~$5.44)
**Total estimated value:** ~$7.54
### Recommended Action
Visit the farm page and click "Harvest All":
https://pancakeswap.finance/liquidity/positions?chain=bsc
For Syrup Pools:
https://pancakeswap.finance/pools?chain=bsc
No pending rewards found for 0xABC...123 on BNB Smart Chain.
Either:
- You have no active staked positions
- All rewards were recently harvested
- Check if your positions are on a different chain
To see your farms: https://pancakeswap.finance/liquidity/positions?chain=bsc
::: danger Never do these