DefiLlama
DefiLlama 是最全面的 DeFi 数据聚合平台,覆盖 3000+ 协议、200+ 链的 TVL、DEX 交易量、稳定币等核心指标。
核心价值:免费、无需 API Key、数据全面、更新及时,是 DeFi 数据分析的首选入口。
核心数据类型
TVL(总锁仓量)
TVL 是衡量 DeFi 协议资金规模的核心指标,表示用户存入协议的资产总价值。
- 计算方式:协议中所有锁定资产的美元价值之和
- 关键区分:TVL 包含借出资产(不重复计算),自有代币是否计入 TVL 需注意
- 数据更新:每小时更新一次
DEX Volume(去中心化交易所交易量)
- 覆盖 1000+ DEX 协议
- 支持按链、按协议、按时间范围筛选
- 24h / 7d / 30d 多时间维度
Fees / Revenue(协议费用与收入)
- Fees:用户使用协议支付的总费用
- Revenue:协议实际捕获的收入(Fees 的一部分)
- 这是评估协议商业模式的关键数据
Stablecoins(稳定币)
- 稳定币市值分布与趋势
- 按链分布、按类型分布(法币抵押、加密抵押、算法稳定币)
- 脱锚风险监控
为什么选 DefiLlama
常用页面
| 页面 | 地址 | 用途 |
|---|---|---|
| TVL 总览 | /chart/chain/All | 全链 TVL 趋势 |
| 稳定币 | /stablecoins | 稳定币市值分布 |
| DEX 排名 | /dexs | DEX 交易量对比 |
| 链对比 | /chains | 各链 TVL 排名 |
| 协议详情 | /protocol/{name} | 单个协议 TVL 详情 |
| 费用排名 | /fees | 协议费用与收入排名 |
| 衍生品 | /derivatives | 永续合约与期权数据 |
| 收益率 | /yields | 各池子收益率对比 |
| 空投 | /airdrops | 潜在空投项目 |
6 个常用 API 端点及示例
DefiLlama API 完全免费、无需注册、无速率限制(但请合理使用)。
1. 获取所有链的 TVL
GET https://api.llama.fi/v2/chainsbash
curl -s "https://api.llama.fi/v2/chains" | python3 -m json.tool | head -30返回示例:
json
[
{
"name": "Ethereum",
"chainId": 1,
"tvl": 58000000000,
"chainCoinGeckoId": "ethereum",
"gecko_id": null
},
...
]用途:快速获取各链 TVL 排名,识别资金流向。对比不同时期的数据可发现资金迁移趋势。
2. 获取某条链的历史 TVL
GET https://api.llama.fi/v2/historicalChainTvl/{chain}bash
# 获取 Ethereum 历史每日 TVL
curl -s "https://api.llama.fi/v2/historicalChainTvl/Ethereum" | python3 -m json.tool | head -20返回示例:
json
[
{
"date": 1600214400,
"tvl": 950000000
},
...
]用途:绘制 TVL 趋势图,识别 TVL 拐点。注意时间戳为 Unix 秒。
3. 获取所有协议列表
GET https://api.llama.fi/protocolsbash
# 获取协议列表并筛选 Lending 协议
curl -s "https://api.llama.fi/protocols" | \
python3 -c "
import json, sys
data = json.load(sys.stdin)
lending = [p for p in data if p.get('category') == 'Lending']
for p in sorted(lending, key=lambda x: x.get('tvl', 0), reverse=True)[:10]:
print(f\"{p['name']}: TVL={p['tvl']/1e9:.2f}B\")
"返回每个协议的详细信息:名称、TVL、链、类别、链上地址、历史 TVL 数据等。
用途:协议对标分析、类别筛选、链上地址查找。
4. 获取稳定币数据
GET https://api.llama.fi/stablecoinsbash
curl -s "https://api.llama.fi/stablecoins" | \
python3 -c "
import json, sys
data = json.load(sys.stdin)
for coin in data['peggedAssets'][:10]:
print(f\"{coin['name']}: {coin.get('symbol', 'N/A')} mcap={coin.get('currentChainCirculating', {}).get('Ethereum', 0)/1e9:.2f}B\")
"用途:监控稳定币市值变化、脱锚风险、链分布。稳定币流入/流出是市场情绪的重要先行指标。
5. 获取代币当前价格
GET https://coins.llama.fi/prices/current/{coins}bash
# 获取 ETH 和 BTC 当前价格
# 格式:{chain}:{address},原生代币用 chain:coingecko_id
curl -s "https://coins.llama.fi/prices/current/ethereum:0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2,coingecko:ethereum" | \
python3 -m json.tool用途:获取实时价格,用于 TVL 计算、交易量换算。支持任意链上代币。
6. 获取 DEX 概览数据
GET https://api.llama.fi/overview/dexsbash
curl -s "https://api.llama.fi/overview/dexs" | \
python3 -c "
import json, sys
data = json.load(sys.stdin)
for d in data.get('protocols', [])[:10]:
print(f\"{d['name']}: 24h_vol={d.get('total24h', 0)/1e6:.1f}M, total_tvl={d.get('totalDataChart', [{}])[-1].get('totalLiquidityUSD', 0)/1e9:.2f}B\")
"用途:DEX 市场份额分析、交易量趋势、流动性分布。
如何从 TVL 变化判断协议健康度
分析框架
TVL 是评估协议健康度最直观的指标,但需要深入分析,不能只看绝对数字。
1. 区分真实增长与价格效应
真实 TVL 变化 = 名义 TVL 变化 - 锁仓代币价格变化- 如果 ETH 上涨 30%,而协议 TVL 只涨了 25%,说明资金实际在流出
- DefiLlama 提供 "TVL (excl. own token)" 过滤,去掉协议自身代币价格的影响
2. TVL 增长的健康度评估
| TVL 增长模式 | 信号 | 可信度 |
|---|---|---|
| 稳步增长,与行业同步 | 有机增长 | 高 |
| 突增后回落 | 流动性挖矿吸引 | 中 |
| 持续流出 | 协议风险或竞品分流 | 低 |
| 增长但代币价格下跌 | 代币通胀激励 | 低 |
3. TVL 构成分析
- 资产多样性:TVL 是否集中在单一资产?集中度高 = 风险高
- 用户分散度:Top 10 地址占比多少?鲸鱼主导 = 去中心化程度低
- 自有代币占比:协议代币占 TVL 比例高,说明 TVL 虚高
4. TVL 与协议收入的比值
TVL/收入比 = TVL / 年化收入- 比值过高:TVL 效率低,资金未被有效利用
- 比值过低:可能收入高但风险也高(高杠杆)
实战案例:判断协议是否"健康"
bash
# 获取 Aave 的历史 TVL
curl -s "https://api.llama.fi/protocol/aave" | \
python3 -c "
import json, sys
data = json.load(sys.stdin)
# 最近 30 天 TVL 变化
tvl_data = data.get('tvl', [])
if len(tvl_data) > 30:
recent = tvl_data[-1][1]
month_ago = tvl_data[-30][1]
change = (recent - month_ago) / month_ago * 100
print(f'30d TVL change: {change:+.1f}%')
print(f'Current TVL: \${recent/1e9:.2f}B')
"关键警告信号
- TVL 突降 10%+:可能有安全事件或竞品挖矿启动
- TVL 增长但交易量下降:资金在但没人用,可能是"粘性"不足
- TVL 集中在单一链:多链部署进度不达标
- 稳定币 TVL 异常流出:可能是脱锚风险或市场恐慌
API 使用最佳实践
- 缓存结果:TVL 数据每小时更新,无需每分钟请求
- 批量获取:优先用
/protocols一次获取所有协议数据,而非逐个请求 - 时间戳处理:API 返回的时间戳为 Unix 秒,转换为日期用
datetime.fromtimestamp() - 错误处理:偶尔会有协议数据缺失,代码中需要处理 null 值
- 历史数据:历史 TVL 端点返回全量数据(可能几 MB),建议客户端过滤时间范围
与本平台的关系
DefiLlama 是本平台以下数据页的核心数据源:
- TVL 总览页:链级和协议级 TVL 数据
- DeFi 协议对比页:协议 TVL、交易量、费用的横向对比
- 稳定币监控页:稳定币市值、链分布数据
- 链对比页:各链 TVL 排名和趋势