关于 pp-defillama
pp-defillama 是调用只读 `defillama-pp-cli` 查询和分析 DefiLlama 数据的技能,适合通过命令行研究 DeFi 协议、链、代币价格、跨链桥和历史指标的 Agent 与分析人员。
主要功能
- 01查询协议和链的 TVL 数据
- 02获取历史图表与指标
- 03查看跨链桥交易量和交易记录
- 04查询代币价格与发行数据
- 05读取资金池、费用和国库数据
适用场景
- 01比较协议或区块链的 TVL
- 02回顾 DeFi 历史指标趋势
- 03研究跨链桥交易量与活动
- 04检查代币价格或发行数据
MCP 相关
README 介绍了供 AI Agent 使用的 DefiLlama MCP 服务,包含 23 个工具并需要 API 方案,同时提供了设置说明链接。该技能描述的 CLI 是独立的只读接口。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mvanhorn/ printing-press-library --skill pp-defillama安装后在 Claude Code 中输入/pp-defillama确认已加载。
详细介绍
Defillama — Printing Press CLI
前提条件:安装 CLI
此技能使用 defillama-pp-cli 二进制文件。**调用此技能中的任何命令前,必须先确认 CLI 已安装。**如果未安装,请先安装:
- 使用 Printing Press 安装程序安装。在 macOS/Linux 上,二进制文件默认安装到
$HOME/.local/bin;在 Windows 上,默认安装到%LOCALAPPDATA%\Programs\PrintingPress\bin:npx -y @mvanhorn/printing-press-library install defillama --cli-only - 验证:
defillama-pp-cli --version - 确保报告的安装目录已添加到将调用此技能的 Agent/运行时的
$PATH中。
如果 npx 安装失败(没有 Node、处于离线状态等),请改用 Go 直接安装(需要 Go 1.26.6 或更高版本):
go install github.com/mvanhorn/printing-press-library/library/other/defillama/cmd/defillama-pp-cli@latest
如果安装后 --version 报告“command not found”,说明运行时无法在 $PATH 中找到二进制文件目录。验证成功前,请勿继续使用此技能的命令。
使用 AI?
DefiLlama 提供两种通过 AI 使用我们数据的方式:
| 资源 | 适用对象 | 描述 |
|---|---|---|
| llms.txt | AI 助手(ChatGPT、Claude、Cursor 等) | 将此链接粘贴到 AI 助手中,即可使用针对大模型优化的文档 |
| MCP Server | AI Agent | 将 Agent 直接连接到 DefiLlama 数据——提供 23 个工具,需订阅 API 计划 |
快速入门(MCP)——将以下内容粘贴到 AI Agent 中:
Read https://raw.githubusercontent.com/DefiLlama/defillama-skills/refs/heads/master/defillama-setup/SKILL.md and follow the instructions to connect to DefiLlama MCP
需要更高的速率限制或优先支持?我们提供每月 300 美元的高级计划。前往 https://defillama.com/subscription 获取。
SDK
JavaScript — npm install @defillama/api — GitHub
Python — pip install defillama-sdk — GitHub
快速入门(JavaScript):
import { DefiLlama } from '@defillama/api'
const client = new DefiLlama()
const protocols = await client.tvl.getProtocols()
快速入门(Python):
from defillama_sdk import DefiLlama
client = DefiLlama()
protocols = client.tvl.getProtocols()
不适用此 CLI 的场景
对于需要创建、更新、删除、发布、评论、点赞、邀请、下单、发送消息、预订、购买或更改远程状态的请求,请勿启用此 CLI。此打印 CLI 仅提供用于检查、导出、同步和分析的只读命令。
命令参考
batch-historical — 管理批量历史数据
defillama-pp-cli batch-historical— period 和 searchWidth 接受的字符串:可使用常见的图表 K 线周期表示法,如 ‘4h’ 等,其中:W = 周,D = 天
block — 管理区块
defillama-pp-cli block <chain> <timestamp>— 对区块链的区块执行二分搜索,查找最接近指定时间戳的区块。
bridges — 管理桥
defillama-pp-cli bridges get— 获取桥接交易量摘要及按链划分的交易量明细defillama-pp-cli bridges get-bridgedaystats— 获取桥接的 24 小时代币和地址交易量明细defillama-pp-cli bridges get-bridgevolume— 获取桥、链或特定链上桥接的历史交易量defillama-pp-cli bridges get-transactions— 获取指定日期范围内某座桥的所有交易defillama-pp-cli bridges list— 列出所有桥及其近期桥接交易量摘要。
categories — 管理类别
defillama-pp-cli categories— 所有协议的类别概览
chain-assets — 管理链资产
defillama-pp-cli chain-assets— 获取所有链的资产
chains — 管理链
defillama-pp-cli chains— 获取所有链的当前 TVL
chart — 管理图表
defillama-pp-cli chart get— period 和 searchWidth 接受的字符串:可使用常见的图表蜡烛周期表示法,例如“4h”等,其中:W = 周,D = 天defillama-pp-cli chart get-fork— 返回一个由 [timestamp, value] 对组成的数组,表示特定协议所有分叉的 TVL 随时间的变化。defillama-pp-cli chart get-metric— 返回一个由 [timestamp, value] 对组成的数组,表示指标总值随时间的变化。defillama-pp-cli chart get-oracle— 返回一个由 [timestamp, value] 对组成的数组,表示特定链的预言机 TVL 随时间的变化。defillama-pp-cli chart get-oracle-2— 返回一个由 [timestamp, value] 对组成的数组,表示特定预言机/协议的 TVL 随时间的变化。defillama-pp-cli chart get-oracle-3— 返回一个对象数组,其中包含时间戳,以及按预言机/协议细分的特定链 TVL 值。defillama-pp-cli chart get-oracle-4— 返回一个对象数组,其中包含时间戳,以及按链细分的特定预言机/协议 TVL 值。defillama-pp-cli chart get-pool— 获取池的历史 APY 和 TVLdefillama-pp-cli chart get-treasury— 返回一个由 [timestamp, value] 对组成的数组,表示协议金库价值随时间的变化。defillama-pp-cli chart get-treasury-2— 返回一个由 [timestamp, { chain: value }] 对组成的数组,显示各链的金库价值随时间的变化。defillama-pp-cli chart get-treasury-3— 返回一个由 [timestamp, { token: value }] 对组成的数组,显示各代币的金库价值随时间的变化。defillama-pp-cli chart get-tvl— 返回一个由 [timestamp, value] 对组成的数组,表示协议的 TVL 随时间的变化。defillama-pp-cli chart get-tvl-2— 返回一个由 [timestamp, { chain: value }] 对组成的数组,显示所选指标在各链上的值随时间的变化。defillama-pp-cli chart get-tvl-3— 返回一个由 [timestamp, { token: value }] 对组成的数组,显示各代币的 TVL 随时间的变化。defillama-pp-cli chart list— 返回一个由 [timestamp, value] 对组成的数组,表示所有预言机的 TVL 总值随时间的变化。defillama-pp-cli chart list-fork— 返回一个对象数组,其中包含时间戳,以及按分叉协议细分的 TVL 值。defillama-pp-cli chart list-oracle— 返回一个对象数组,其中包含时间戳,以及按链细分的 TVL 值。defillama-pp-cli chart list-oracle-2— 返回一个对象数组,其中包含时间戳,以及按预言机/协议细分的 TVL 值。
dat — 管理 dat
defillama-pp-cli dat get— 返回特定机构的详细数据,包括 mNAV 计算结果(已实现、实际、最大值)defillama-pp-cli dat list— 返回持有数字资产的机构的综合数据,包括 mNAV 计算结果(已实现、实际
emission — 管理发行
defillama-pp-cli emission <protocol>— 解锁指定代币/协议的数据。
emissions — 管理发行数据
defillama-pp-cli emissions— 列出所有代币及其基本信息
entities — 管理实体
defillama-pp-cli entities— 列出所有实体
equities — 管理股票
defillama-pp-cli equities list— 返回 DefiLlama 跟踪的所有上市公司的列表,并提供每家公司的当前市场摘要数据defillama-pp-cli equities list-v1— 返回指定股票代码的 SEC 文件(10-K、10-Q 等)列表,按提交日期降序排列(最新的在前)。defillama-pp-cli equities list-v1-2— 返回每日 OHLCV 数据条,每条为包含六个数字的数组:Unix 时间戳(以秒为单位,UTC)、开盘价、最高价、最低价、收盘价、成交量。defillama-pp-cli equities list-v1-3— 返回每日收盘价,每条为包含两个元素的数组:ISO 8601 日期时间字符串,随后是数值价格。defillama-pp-cli equities list-v1-4— 返回指定股票代码的损益表、资产负债表和现金流量表defillama-pp-cli equities list-v1-5— 返回单个股票代码的当前市场数据。
etfs — 管理 ETF
defillama-pp-cli etfs list— 资产层面的历史资金流defillama-pp-cli etfs list-snapshot— 获取 ETF 及其指标(资产管理规模、资金流、费用等)
fdv — 管理 fdv
defillama-pp-cli fdv <period>— 根据类别表现获取叙事图表(按市值对单个代币加权)
forks — 管理分叉
defillama-pp-cli forks— 所有协议分叉的概览
hacks — 管理黑客攻击
defillama-pp-cli hacks— Hacks 仪表板上所有黑客攻击的概览
historical-chain-tvl — 管理历史链 TVL
defillama-pp-cli historical-chain-tvl get— 获取某条链的历史 TVL(不包括流动性质押和重复计算的 TVL)defillama-pp-cli historical-chain-tvl list— 获取所有链上 DeFi 的历史 TVL(不包括流动性质押和重复计算的 TVL)
historical-liquidity — 管理历史流动性
defillama-pp-cli historical-liquidity <token>— 提供指定链上合约的名称
inflows — 管理资金流入
defillama-pp-cli inflows <protocol> <timestamp>— 列出协议在指定日期的资金流入和流出金额
metrics — 管理指标
defillama-pp-cli metrics get— 返回指定维度的汇总指标,包括总量以及不同时间段的百分比变化defillama-pp-cli metrics get-financialstatement— 返回协议元数据、方法详情以及汇总财务报表数据(年度、季度、月度)。defillama-pp-cli metrics get-treasury— 返回协议元数据以及当前金库数据和各链明细。defillama-pp-cli metrics get-tvl— 返回协议元数据以及当前 TVL 数据、各链明细和其他汇总指标。defillama-pp-cli metrics list— 返回一个对象,将分叉名称映射到由该协议分叉而来的协议名称数组。defillama-pp-cli metrics list-oracle— 返回一个对象,将预言机名称映射到使用该预言机的协议名称数组。
oracles — 管理预言机
defillama-pp-cli oracles— 所有协议预言机的概览
overview — 管理概览
defillama-pp-cli overview get— 列出所有 DEX,并附带其交易量摘要和数据类型历史数据,可按链筛选defillama-pp-cli overview get-fees— 列出所有协议,并附带其费用和收入摘要以及按链划分的数据类型历史数据defillama-pp-cli overview get-options— 列出所有期权 DEX,并附带其交易量摘要和数据类型历史数据,可按链筛选defillama-pp-cli overview list— 列出所有 DEX,并附带其交易量摘要和数据类型历史数据defillama-pp-cli overview list-derivatives— 列出所有衍生品,并附带其交易量摘要,可按链筛选defillama-pp-cli overview list-fees— 列出所有协议,并附带其费用和收入摘要以及数据类型历史数据defillama-pp-cli overview list-openinterest— 列出所有未平仓合约 DEX,并附带其未平仓合约摘要defillama-pp-cli overview list-options— 列出所有期权 DEX,并附带其交易量摘要和数据类型历史数据
percentage — 管理百分比
defillama-pp-cli percentage <coins>— period 接受的字符串:可使用常见图表周期表示法,如 ‘4h’ 等,其中:W = 周,D = 天,H = 小时
pools — 管理池
defillama-pp-cli pools— 获取所有池的最新数据,包括预测等增强信息
prices — 管理价格
defillama-pp-cli prices get— 此 API 旨在尽可能为更多代币定价,包括从未交易过的特殊代币defillama-pp-cli prices get-first— 获取代币最早的价格记录时间戳defillama-pp-cli prices get-historical— 价格来源说明请参阅 /prices/current。
protocol — 管理协议
defillama-pp-cli protocol <protocol>— 获取协议的历史 TVL,以及按代币和链划分的明细
protocols — 管理协议
defillama-pp-cli protocols— 列出 defillama 上的所有协议及其 TVL
raises — 管理融资
defillama-pp-cli raises— 查看 Raises 仪表板上的所有融资概况
rwa — 管理 RWA
defillama-pp-cli rwa get— 返回所请求链上具有链上市值、活跃市值或 DeFi 活跃 TVL 的当前 RWA 资产。defillama-pp-cli rwa get-chart— 返回某条链的历史链上市值、活跃市值和 DeFi 活跃 TVL 总额。defillama-pp-cli rwa list— 返回当前现实世界资产(RWA)条目,其中包含按链划分的链上市值、活跃市值和 DeFi 活跃 TVL 映射。defillama-pp-cli rwa list-chart— 返回时间序列条目,其中每列对应所选 RWA 指标的一条链。defillama-pp-cli rwa list-list— 返回用于发现、搜索和筛选的轻量级 RWA 列表。defillama-pp-cli rwa list-stats— 返回 RWA 汇总数据。对于默认的按链表格,请读取 byChain[chain].base: assetIssuers。
stablecoin — 获取稳定币仪表板的数据
defillama-pp-cli stablecoin <asset>— 获取某种稳定币的历史市值和历史链分布
stablecoinchains — 管理 stablecoinchains
defillama-pp-cli stablecoinchains— 获取每条链上所有稳定币当前市值总和
stablecoincharts — 管理 stablecoincharts
defillama-pp-cli stablecoincharts get— 获取某条链上所有稳定币的历史市值总和defillama-pp-cli stablecoincharts list— 获取所有稳定币的历史市值总和
stablecoinprices — 管理 stablecoinprices
defillama-pp-cli stablecoinprices— 获取所有稳定币的历史价格
stablecoins — 获取稳定币仪表板的数据
defillama-pp-cli stablecoins get— 获取各链的稳定币主导率,以及该链最大稳定币的信息defillama-pp-cli stablecoins list— 列出所有稳定币及其流通量
summary — 管理汇总数据
defillama-pp-cli summary get— 获取 DEX 交易量汇总及历史数据defillama-pp-cli summary get-derivatives— 获取特定永续合约协议的交易量详情defillama-pp-cli summary get-fees— 获取协议费用和收入汇总及历史数据defillama-pp-cli summary get-options— 获取期权 DEX 交易量汇总及历史数据
token-protocols — 管理代币协议
defillama-pp-cli token-protocols <symbol>— 列出所有协议中某种代币的数量。数据用于 Token Usage 页面
treasuries — 管理资金库
defillama-pp-cli treasuries— 列出 Treasuries 仪表板上的所有协议
tvl — 获取 TVL 数据
defillama-pp-cli tvl <protocol>— 简化版端点,仅返回一个数字,即协议当前的 TVL
usage — 管理用量
defillama-pp-cli usage— 获取 API 密钥剩余的额度;额度会在每月 1 日重置
yields — 获取收益率/APY 仪表板的数据
defillama-pp-cli yields get— 获取借贷市场中某个资金池的历史借款成本 APY;资金池 ID 应从 /poolsBorrow 获取defillama-pp-cli yields list— 获取多个 LSD 的 APY 利率defillama-pp-cli yields list-perps— 获取各交易所永续合约的资金费率和未平仓合约量,包括去中心化和中心化交易所defillama-pp-cli yields list-poolsborrow— 获取借贷市场中资产的借款成本 APYdefillama-pp-cli yields list-poolsold— 与 /pools 相同,但还包含一个新参数pool_old,该参数通常包含资金池地址(但不保证)
找到合适的命令
知道想做什么,但不知道该用哪个命令时,可以直接询问 CLI:
defillama-pp-cli which "<capability in your own words>"
which 会根据自然语言能力查询,从此 CLI 精选的功能索引中找到最匹配的命令。退出代码 0 表示至少找到一个匹配项;退出代码 2 表示没有足够确定的匹配项,此时请改用 --help 或缩小查询范围。
身份验证设置
无需身份验证。
运行 defillama-pp-cli doctor 以验证设置。
Agent 模式
在任何命令中添加 --agent。它会展开为:--json --compact --no-input --no-color --yes。
-
可通过管道传递 — JSON 输出到 stdout,错误输出到 stderr
-
可筛选 —
--select保留部分字段。点分路径可深入嵌套结构;数组会逐项遍历。对于内容冗长的 API,这对控制上下文大小至关重要:defillama-pp-cli batch-historical --coins example-value --agent --select id,name,status -
可预览 —
--dry-run显示请求,但不会发送 -
适合离线使用 — 同步/搜索命令在本地 SQLite 存储可用时可以使用它
-
非交互式 — 绝不会提示输入,每项输入都通过标志传入
-
只读 — 请勿使用此 CLI 执行创建、更新、删除、发布、评论、点赞、邀请、下单、发送或其他会更改数据的请求
响应封装
从本地存储或 API 读取数据的命令会将输出封装在来源信息中:
{
"meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
"results": <data>
}
解析 .results 获取数据,并查看 .meta.source 以确定数据来自实时来源还是本地。仅当 stdout 是终端且未设置机器可读格式标志(--json、--csv、--compact、--quiet、--plain、--select)时,才会将人类可读的 N results (live) 摘要输出到 stderr;通过管道传递的/由 Agent 使用的命令以及指定了格式的运行,stdout 中只会输出纯 JSON。
Agent 反馈
当你(或 Agent)发现此 CLI 有异常之处时,请记录下来:
defillama-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
defillama-pp-cli feedback --stdin < notes.txt
defillama-pp-cli feedback list --json --limit 10
条目会存储在本地的 ~/.local/share/defillama-pp-cli/feedback.jsonl 中。只有在设置了 DEFILLAMA_FEEDBACK_ENDPOINT,并且传入了 --send 或设置了 DEFILLAMA_FEEDBACK_AUTO_SEND=true 时,才会发送 POST 请求。默认情况下,反馈仅保存在本地。
记录让你感到意外的地方,而不是提交错误报告。简短、具体、单行即可:这些记录会逐渐累积,发挥更大作用。
输出传递
每条命令都接受 --deliver <sink>。输出会发送到指定的目标,同时也会输出到 stdout,或取代 stdout 输出,因此 Agent 无需手动通过管道传递命令结果。支持三种目标:
| 目标 | 效果 |
|---|---|
stdout | 默认;仅输出到 stdout |
file:<path> | 以原子方式将输出写入 <path>(临时文件 + 重命名) |
webhook:<url> | 将输出正文 POST 到 URL(使用 --compact 时为 application/json 或 application/x-ndjson) |
不支持的协议会被拒绝,并返回包含受支持协议列表的结构化错误。Webhook 请求失败时会返回非零退出代码,并将 URL 和 HTTP 状态写入 stderr。
命名配置
配置是保存的一组标志值,可在多次调用中重复使用。当计划任务中的 Agent 每次运行都以相同配置调用同一命令时,可以使用配置——这就是 HeyGen 的“Beacon”模式。
defillama-pp-cli profile save briefing --json
defillama-pp-cli --profile briefing batch-historical --coins example-value
defillama-pp-cli profile list --json
defillama-pp-cli profile show briefing
defillama-pp-cli profile delete briefing --yes
显式指定的标志始终优先于配置值;配置值优先于默认值。agent-context 会在 available_profiles 下列出所有可用配置,供进行自省的 Agent 在运行时发现它们。
退出代码
| 代码 | 含义 |
|---|---|
| 0 | 成功 |
| 2 | 用法错误(参数错误) |
| 3 | 未找到资源 |
| 5 | API 错误(上游问题) |
| 7 | 请求过于频繁(等待后重试) |
| 10 | 配置错误 |
参数解析
解析 $ARGUMENTS:
- 为空、为
help或--help→ 显示defillama-pp-cli --help的输出 - 以
install开头 → 以mcp结尾 → 安装 MCP;否则 → 请参阅上方的先决条件 - 其他情况 → 直接使用(将其作为带有
--agent的 CLI 命令执行)
MCP 服务安装
- 安装 MCP 服务:
go install github.com/mvanhorn/printing-press-library/library/other/defillama/cmd/defillama-pp-mcp@latest - 注册到 Claude Code:
claude mcp add defillama-pp-mcp -- defillama-pp-mcp - 验证:
claude mcp list
直接使用
- 检查是否已安装:
which defillama-pp-cli如果未找到,请提供安装选项(参见此技能顶部的先决条件)。 - 根据用户查询,从上方的独特功能和命令参考中选择最合适的命令。
- 使用
--agent标志执行:defillama-pp-cli <command> [subcommand] [args] --agent - 如果存在歧义,请查看子命令帮助:
defillama-pp-cli <command> --help。