This is a comprehensive guide for querying DeFi yield and APY data across protocols, chains, and token types. It covers the get_yield_pools tool with filtering by token, chain, protocol, category, stablecoin-only mode, and TVL thresholds. The most valuable bit is the APY convention reminder: values are already percentages, so don't multiply by 100. It distinguishes between lending and borrowing rates, explains token family matching for variants like ETH/wETH/stETH, and includes capacity assessment guidance for capital allocation. The historical data and volatility features are solid for comparing stability across pools. Use this when users ask about yields, best pools, or borrowing costs, and you need structured queries instead of guessing parameter names.
npx -y skills add defillama/defillama-skills --skill yield-strategies --agent claude-codeInstalls into .claude/skills of the current project.
APY values are already percentages: apy = 2.32 means 2.32%.
Do NOT multiply by 100. This is the most common mistake when working with yield data.
defillama:get_yield_pools| Want | Parameter | Example |
|---|---|---|
| Pools with specific token | token | "coingecko:ethereum" |
| Pools on specific chain | chain | "ethereum" |
| Pools from specific protocol | protocol | "aave" |
| Pools from protocol category | category | "Lending", "DEXes" |
| Only stablecoin pools | stablecoin_only | true |
| Minimum APY threshold | min_apy | 5 (= 5%) |
| Minimum TVL | min_tvl | 1000000 (= $1M) |
| Include borrow-side data | include_borrow | true |
token: "coingecko:ethereum"chain: "ethereum"The token param expects canonical token keys (e.g., coingecko:ethereum) and uses dim.pool_set() for family resolution. coingecko:ethereum finds pools containing ETH, wETH, stETH, cbETH, and all other variants in the ETH family -- not just native ETH.
sort_by accepts strings like: "apy desc", "tvl desc", "apy_base desc", "apy_reward desc"
Each result includes: symbol, protocol (sub-protocol slug), parent_protocol, category, chain, apy, apy_base, apy_reward, apy_base_borrow, apy_reward_borrow, tvl, total_supply, total_borrow
period param (7d, 30d, 90d, 180d, 365d) for daily APY/TVL time-series historyinclude_volatility: true to add APY volatility stats (apy_avg_30d, apy_median_30d, apy_std_30d, cv_30d) — current queries onlystart_date / end_date for custom date ranges (overrides period)For lending protocols, borrowing rate data is available:
apy_base_borrow: Base borrowing cost (what you pay)apy_reward_borrow: Reward offset on borrowing (incentives you earn)apy_base_borrow - apy_reward_borrowUse include_borrow: true to ensure borrow columns are populated.
When allocating capital, check pool TVL. Allocating more than 10% of a pool's TVL may cause significant rate impact or slippage. Larger pools absorb capital more easily.
Example 1:
User: "Best stablecoin lending yields"
Tool call: defillama:get_yield_pools(stablecoin_only: true, category: "Lending", sort_by: "apy desc")
Example 2:
User: "Top ETH yield pools with over $1M TVL"
Tool call: defillama:get_yield_pools(token: "coingecko:ethereum", min_tvl: 1000000, sort_by: "apy desc")
Example 3:
User: "Cheapest borrowing rates for stablecoins on Arbitrum"
Tool call: defillama:get_yield_pools(stablecoin_only: true, chain: "arbitrum", category: "Lending", include_borrow: true, sort_by: "apy_base_borrow asc")
Example 4:
User: "Where can I earn yield on USDC?"
Tool call: defillama:get_yield_pools(token: "coingecko:usd-coin", sort_by: "apy desc", min_tvl: 100000)
Example 5:
User: "Aave yields on Ethereum"
Tool call: defillama:get_yield_pools(protocol: "aave", chain: "ethereum", sort_by: "apy desc")
juliusbrussee/caveman
mattpocock/skills
shadcn/improve
obra/superpowers
forrestchang/andrej-karpathy-skills
vercel-labs/skills