--- name: market-analysis description: Patterns for DeFi market analysis, screening, and comparison using DefiLlama MCP tools. Covers valuation ratios (P/S, P/F), growth screening with pct_change columns, multi-metric protocol comparison, category comparison, and cross-entity analysis. Use when users ask to compare protocols, screen for undervalued projects, analyze growth trends, or do sector analysis. --- # DeFi Market Analysis ## Valuation Ratios Pre-computed in `defillama:get_protocol_metrics` and `defillama:get_category_metrics`: - `ps_ratio` = mcap / annualised revenue. Lower = potentially undervalued relative to revenue. - `pf_ratio` = mcap / annualised fees. Lower = more fee-efficient valuation. ## Growth Screening Use `*_pct_change` columns for momentum analysis. Values are **decimals** (0.35 = +35%, -0.13 = -13%). Available windows: `*_7d_pct_change`, `*_30d_pct_change`, `*_90d_pct_change` Metrics with pct_change: `tvl_base`, `fees_1d`, `revenue_1d`, `price`, `volume_dexs_1d` Sort by any pct_change column to find fastest movers. ## Protocol Comparison Use array params for side-by-side comparison in a single call: ``` defillama:get_protocol_metrics( protocol: ["aave", "compound-v3", "morpho"], metrics: ["tvl_base", "fees_1d", "revenue_1d", "ps_ratio"] ) ``` This returns one row per protocol, which is more efficient than calling once per protocol. ## Category Comparison Use `defillama:get_category_metrics` to compare DeFi sectors: ``` defillama:get_category_metrics( category: "Lending", metrics: ["tvl_base", "fees_1d", "protocol_count"] ) ``` Call once per category in parallel for side-by-side comparison. ## Token Sector Screening Use `defillama:get_token_prices` for token-level analysis: ``` defillama:get_token_prices(token: "coingecko:ethereum", period: "30d") ``` ## Historical Trends Use `period` for trend analysis: - Short-term: `7d` or `30d` - Medium-term: `90d` or `180d` - Long-term: `365d` - Custom range: `start_date` / `end_date` (YYYY-MM-DD) overrides `period` Historical queries return daily data points with a `date` column. ## Cross-Entity Analysis Compare across entity types using parallel tool calls: - "ETH price vs Ethereum TVL" -> `defillama:get_token_prices` + `defillama:get_chain_metrics` - "Aave TVL vs AAVE token price" -> `defillama:get_protocol_metrics` + `defillama:get_token_prices` - "Lending vs DEX category" -> two `defillama:get_category_metrics` calls in parallel ## Examples **Example 1:** User: "Most undervalued DeFi protocols by P/S ratio" Tool call: `defillama:get_protocol_metrics(sort_by: "ps_ratio asc", limit: 20, metrics: ["tvl_base", "revenue_1d", "ps_ratio", "mcap"])` **Example 2:** User: "Which protocols grew TVL most in last 30 days?" Tool call: `defillama:get_protocol_metrics(sort_by: "tvl_base_30d_pct_change desc", limit: 10, metrics: ["tvl_base", "tvl_base_30d_pct_change"])` **Example 3:** User: "Compare Aave and Compound fees" Tool call: `defillama:get_protocol_metrics(protocol: ["aave", "compound-v3"], metrics: ["tvl_base", "fees_1d", "revenue_1d"])` **Example 4:** User: "Compare Lending vs DEX fees and TVL" Tool call: `defillama:get_category_metrics(category: ["Lending", "DEX"], metrics: ["tvl_base", "fees_1d", "revenue_1d"])` **Example 5:** User: "Aave TVL trend over 90 days" Tool call: `defillama:get_protocol_metrics(protocol: "aave", metrics: ["tvl_base"], period: "90d")` **Example 6:** User: "Aave fees in Q1 2025" Tool call: `defillama:get_protocol_metrics(protocol: "aave", metrics: ["fees_1d"], start_date: "2025-01-01", end_date: "2025-03-31")`