关于 defi-data
defi-data 是使用 DeFiLlama MCP 数据工具的参考指南,说明可用指标、实体命名与解析、查询参数、数据约定及常见问题,面向 DeFi 数据分析。
主要功能
- 01数据工具速查表
- 02实体命名与解析指引
- 03周期和日期范围参数
- 04存量与流量指标约定
- 05指标定义与校验说明
- 06错误恢复指引
适用场景
- 01为 DeFi 查询选择合适工具
- 02比较协议、链或代币
- 03避免误读指标数值
MCP 相关
该指南介绍通过 MCP 提供的 DeFiLlama 工具,包括其参数、可接受的实体和数据约定。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ defillama/ defillama-skills --skill defi-data安装后在 Claude Code 中输入/defi-data确认已加载。
详细介绍
DefiLlama MCP 数据参考
工具速查
| 问题 | 工具 | 关键参数 |
|---|---|---|
| DeFi 总锁仓量、全球交易量 | defillama:get_market_totals | metrics(tvl_base、volume_dexs_1d 等) |
| 协议锁仓量、费用、收入 | defillama:get_protocol_metrics | protocol、metrics |
| 链锁仓量、Gas 费用、REV | defillama:get_chain_metrics | chain、metrics |
| 代币价格、市值、历史最高价 | defillama:get_token_prices | token |
| 类别排名 | defillama:get_category_metrics | category |
| 池 APY、借贷利率 | defillama:get_yield_pools | token、chain、category |
| 稳定币供应量 | defillama:get_stablecoin_supply | stablecoin、chain |
| ETF 资金流入/流出 | defillama:get_etf_flows | token(bitcoin/ethereum) |
| 跨链桥交易量 | defillama:get_bridge_flows | bridge、chain |
| CEX 交易量 | defillama:get_cex_volumes | cex |
| 未平仓合约 | defillama:get_open_interest | protocol、chain |
| 黑客攻击/漏洞利用 | defillama:get_events | event_type: "hacks" |
| 融资 | defillama:get_events | event_type: "raises" |
| 协议事件 | defillama:get_events | event_type: "protocol_events" |
| 协议金库 | defillama:get_treasury | treasury |
| 机构持仓 | defillama:get_dat_holdings | institution、token |
| 代币解锁 | defillama:get_token_unlocks | token、query_type(chart、window、day、window_all、ratio、market_window) |
| 协议中的代币锁仓量 | defillama:get_token_tvl | token、protocol |
| 预言机覆盖情况 | defillama:get_oracle_metrics | oracle |
| 用户活动 | defillama:get_user_activity | protocol、chain |
| 利润表 | defillama:get_income_statement | protocol |
| 协议元数据、URL、审计信息 | defillama:get_protocol_info | protocol、category、tag、has_token、chain |
| 链元数据、类型、L2 上级链 | defillama:get_chain_info | chain、chain_type |
| 列出有效类别 | defillama:list_categories | type(protocol、token、chain) |
| 未知实体 slug | defillama:resolve_entity | name |
实体约定
- 协议:小写并以连字符分隔的 slug(
aave、uniswap、compound-v3) - 链:小写(
ethereum、solana、arbitrum) - 代币:使用
coingecko:前缀(coingecko:ethereum、coingecko:bitcoin、coingecko:usd-coin) - CEX:slug 包含后缀(
binance-cex、coinbase-cex、htx、gate-io) - 类别:标题式大小写(
Lending、DEX、Derivatives)
协议与子协议
许多协议有多个版本。数据库会同时跟踪两者:
- 父协议(例如
aave)——用于get_protocol_metrics,汇总所有版本 - 子协议(例如
aave-v3)——单个版本,用于 sub_protocol 视图
resolve_entity 会同时返回 slug(子协议)和 parent_protocol。在 get_protocol_metrics 中使用 parent_protocol。需要查询特定版本时使用 slug。
示例:resolve_entity({name: "compound"}) 返回:
- slug: compound-v2, parent_protocol: compound
- slug: compound-v3, parent_protocol: compound
→ 在 get_protocol_metrics 中使用
protocol: "compound"获取汇总数据。
数组支持
所有实体参数都支持单个值或数组,以便进行比较:
protocol: "aave"或protocol: ["aave", "lido", "compound"]chain: "ethereum"或chain: ["ethereum", "solana"]token: "coingecko:ethereum"或token: ["coingecko:ethereum", "coingecko:bitcoin"]
实体解析
对于知名实体,可直接尝试调用工具——这种方式在 80% 以上的情况下都有效。仅在以下情况使用 defillama:resolve_entity:
- 不确定确切的 slug
- 工具返回 0 行
- 需要消除歧义(例如,“compound” → compound-v2、compound-v3)
- 需要查找 parent_protocol slug
周期参数
所有工具都接受 period(不是 time_range):
current(默认)——最新快照7d、30d、90d、180d、365d——滚动时间窗口
对于自定义日期范围,请使用 start_date 和 end_date(YYYY-MM-DD 格式),而不是 period。如果设置了 start_date,但未设置 end_date,则默认使用今天。
关键约定
存量与流量
聚合规则不同——弄错会导致结果毫无意义:
- 存量(某个时间点的快照):
tvl、price、mcap——绝不要跨日期求和 - 流量(周期内累计):
fees_1d、revenue_1d、volume——可以跨日期求和
百分比格式
数据中有两种不同的约定:
*_pct_change列 = 小数(例如,-0.13 = -13%,0.35 = +35%)。显示时乘以 100。apy列 = 已经是百分比(例如,2.32 = 2.32%)。不要乘以 100。
TVL 组成部分
各组成部分互不重叠——绝不要重复相加:
tvl_base= 默认 TVL(不包括流动性质押和重复计数部分)tvl_ls_only= 不包含在 tvl_base 中的流动性质押部分tvl_dc_only= 不包含在 tvl_base 中的重复计数部分tvl_ls_and_dc= 流动性质押和重复计数部分- 包含流动性质押和重复计数部分的总值 =
tvl_base + tvl_ls_only + tvl_dc_only + tvl_ls_and_dc
费用与收入
fees= 用户支付的总额revenue= 协议的收入份额(费用减去支付给 LP/质押者的款项)holder_revenue= 回购 + 发放给代币持有者的股息- 链级指标:
chain_fees(Gas 费)、chain_revenue、chain_mev、app_fees(链上协议费用)、app_revenue
指标名称模式
协议指标遵循以下模式:
- TVL:
tvl_base、tvl_staking、tvl_borrowed、tvl_pool2、tvl_treasury、tvl_vesting - 流量(后缀为
_1d/_7d/_30d/_90d/_180d/_365d/_ytd/_alltime/_annualised):fees、revenue、holder_revenue、incentive - 交易量(使用相同后缀):
volume_dexs、volume_aggregators、volume_derivatives、volume_aggr_derivatives、volume_options - 市场:
price、mcap、fdv、fdv_outstanding、token_volume、ps_ratio、pf_ratio pct_change变体仅适用于_current视图
链指标使用 chain_fees、chain_revenue、chain_mev、app_fees、app_revenue,而不是 fees、revenue。
每日视图中,流量/交易量指标只有 _1d 后缀。
重要注意事项
- Category 列:
get_protocol_metrics没有 Category 列。类别级数据请使用get_category_metrics。 - FDV:绝不要按 FDV 排序——不可靠的
total_supply数据会导致排名毫无意义。请改按mcap排序。 - 估值:
ps_ratio= mcap / 年化收入。pf_ratio= mcap / 年化费用。数值越低,可能越被低估。 - 指标验证:协议/链/类别指标会根据实际数据库列进行验证。无效指标会返回最接近的匹配项建议。
- NULL 值:NULL 表示数据不可用,而不是 $0。不要将 NULL 报告为零。
- 参数接受字符串或数组:
protocol: "aave"或protocol: ["aave", "lido"]。参数名称为单数(protocol,而不是protocols)。 - sort_by 格式:类似
"tvl_base desc"或"fees_1d desc"的字符串。
示例
示例 1:
用户:“Aave 的 TVL 是多少?”
工具调用:defillama:get_protocol_metrics(protocol: "aave", metrics: ["tvl_base"])
示例 2:
用户:“手续费最高的 5 条链”
工具调用:defillama:get_chain_metrics(sort_by: "chain_fees_1d desc", limit: 5)
示例 3:
用户:“过去 90 天的 ETH 价格历史”
工具调用:defillama:get_token_prices(token: "coingecko:ethereum", period: "90d")
示例 4: 用户:“比较 ETH 价格和 Ethereum 链的 TVL” 并行调用工具:
defillama:get_token_prices(token: "coingecko:ethereum")defillama:get_chain_metrics(chain: "ethereum")
示例 5:
用户:“今年最大的 DeFi 黑客攻击事件”
工具调用:defillama:get_events(event_type: "hacks", sort_by: "amount desc", limit: 10, period: "365d")
示例 6:
用户:“2025 年 1 月至 3 月的 Aave TVL”
工具调用:defillama:get_protocol_metrics(protocol: "aave", metrics: ["tvl_base"], start_date: "2025-01-01", end_date: "2025-03-31")
错误恢复
- 返回 0 行 -> 调用
defillama:resolve_entity(name: "...")-> 使用正确的 slug 重试 - 数据错误 -> 确认使用了正确的工具(协议、链或类别)
- 实体有歧义 -> 调用
resolve_entity查看所有匹配的 slug,然后选择正确的一个