关于 grimoire-morpho-blue
grimoire-morpho-blue 是查询 Morpho Blue 部署信息、市场与金库数据的技能,供策略构建和 Agent 工作流使用。它支持 APY 与流动性指标查询,并可生成带来源信息的 spell 参数快照。
主要功能
- 01查询部署信息与合约地址
- 02筛选和排序金库
- 03生成金库参数快照
- 04查询 Vault V2 可提取流动性
- 05比较 APY、利用率及金库指标
适用场景
- 01按链、资产和收益条件筛选金库
- 02检查金库的可提取流动性
- 03比较市场 APY 或利用率
- 04为 spell 生成金库数据参数
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ franalgaba/ grimoire --skill grimoire-morpho-blue安装后在 Claude Code 中输入/grimoire-morpho-blue确认已加载。
详细介绍
Grimoire Morpho Blue 技能
使用此技能查询 Morpho Blue 部署元数据和金库快照,以获取 spell 参数。
首选调用方式:
grimoire venue morpho-blue ...npx -y @grimoirelabs/cli venue morpho-blue ...(无需安装)bun run packages/cli/src/index.ts venue morpho-blue ...(在仓库本地运行)grimoire-morpho-blue ...(来自@grimoirelabs/venues的直接二进制文件)
建议预检:
grimoire venue doctor --adapter morpho-blue --chain 8453 --rpc-url <rpc> --json
使用 --format spell 输出 params: 快照块。
快照包含来源字段(snapshot_at、snapshot_source)和 APY 数据。
使用 vault-liquidity 查询 Morpho Vault V2 的全金库可提取流动性。它会读取链上的 Vault V2 字段,将 Morpho Market V1 流动性适配器资产限制在市场可用底层资产现金范围内,并且不使用 ERC-4626 maxWithdraw / maxRedeem,因为 Vault V2 会有意将其返回为 0。
APY 语义:
apy/net_apy是十进制利率(例如,0.0408=4.08%)。- 报告时,尽可能同时提供十进制值和百分比显示。
命令
grimoire venue morpho-blue info— 适配器元数据grimoire venue morpho-blue addresses [--chain <id>]— 各链上的合约地址grimoire venue morpho-blue vaults [--chain <id>] [--asset <symbol>] [--min-tvl <usd>] [--min-apy <decimal>] [--min-net-apy <decimal>] [--sort <netApy|apy|tvl|totalAssetsUsd|name>] [--order <asc|desc>] [--limit <n>]— 列出并筛选金库grimoire venue morpho-blue vaults-snapshot [--chain <id>] [--asset <symbol>] [--min-tvl <usd>] [--min-apy <decimal>] [--min-net-apy <decimal>] [--sort <netApy|apy|tvl|totalAssetsUsd|name>] [--order <asc|desc>] [--limit <n>]— 为金库生成 spellparams:块(仅限 Agent)grimoire venue morpho-blue vault-liquidity [--chain <id>] --vault <address> [--rpc-url <url>] [--format json|table|spell]— 读取 Morpho Vault V2 以资产单位和整数 bps 表示的可提取流动性
示例
grimoire venue morpho-blue info --format table
grimoire venue morpho-blue addresses --chain 1
grimoire venue morpho-blue addresses --chain 8453
grimoire venue morpho-blue vaults --chain 8453 --asset USDC --min-tvl 5000000 --format table
grimoire venue morpho-blue vaults --chain 8453 --asset USDC --min-tvl 5000000 --format spell
grimoire venue morpho-blue vaults-snapshot --chain 8453 --asset USDC --min-tvl 5000000
grimoire venue morpho-blue vault-liquidity --chain 8453 --vault 0xbeef0e0834849aCC03f0089F01f4F1Eeb06873C9 --format json
grimoire venue morpho-blue vault-liquidity --chain 8453 --vault 0xbeef0e0834849aCC03f0089F01f4F1Eeb06873C9 --format spell
使用 vaults-snapshot 为 spell 输入输出 params: 块。此命令仅供 Agent 使用(交互模式下会隐藏输出)。
vault-liquidity --format spell 会输出可直接用于载荷的 JSON 参数,包括 protocol: morpho-vault-v2、metric: withdrawable_liquidity_bps、withdrawable_liquidity_assets、total_assets、idle_assets、liquidity_adapter 和 liquidity_adapter_assets。
需要保留的来源输出字段示例:
snapshot_atsnapshot_sourceunits(例如net_apy=decimal、net_apy_pct=percent、tvl_usd=usd)
指标范围(Spell 比较)
Morpho 提供 apy 指标范围,并支持基于选择器的市场定位:
morpho_apy_default = apy(morpho, USDC)
morpho_apy_market = apy(morpho, USDC, "weth-usdc-86")
morpho_apy_market_id = apy(morpho, USDC, "0x...")
morpho_apy_generic = metric("apy", morpho, USDC, "wbtc-usdc-86")
morpho_utilization_bps = metric("utilization_bps", morpho, USDC, "wbtc-usdc-86")
vault_apy = metric("vault_apy", morpho, USDC, "vault=0xVaultAddress")
vault_net_apy = metric("vault_net_apy", morpho, USDC, "vault=0xVaultAddress")
vault_withdrawable_liquidity_bps = metric("withdrawable_liquidity_bps", morpho, USDC, "vault=0xVaultAddress")
使用 apy(morpho, asset[, selector]) 比较 Morpho Blue 市场 APY。
使用 metric("utilization_bps", morpho, asset[, selector]) 检查 Morpho Blue 市场利用率。
使用 metric("vault_apy", morpho, asset, selector) 或 metric("vault_net_apy", morpho, asset, selector) 比较 MetaMorpho 金库。
使用 metric("withdrawable_liquidity_bps", morpho, asset, selector) 检查 Morpho Vault V2 的实时可提取流动性。
选择器行为:
- 市场未指定选择器(
apy):按当前链上的asset解析,并选择 TVL 最高的匹配项 - 配置中的市场选择器:使用适配器配置中的已知市场 ID(例如
weth-usdc-86) - 链上市场 ID 选择器:使用原始市场 ID(
0x...) - 金库选择器(
vault_apy/vault_net_apy):vault=<address|name|symbol>或直接填写金库地址/名称/符号 vault_apy/vault_net_apy必须明确指定选择器(不会隐式回退)
同一资产对应多个金库/市场时,请传入明确的选择器,以确保比较结果确定。
Spell 约束
Morpho Blue 操作不支持运行时约束(max_slippage 等)。涉及价值转移的操作需要显式指定 market_id。
morpho_blue.lend(USDC, params.amount, "cbbtc-usdc-86")
morpho_blue.withdraw(USDC, params.amount, "cbbtc-usdc-86")
morpho_blue.borrow(USDC, params.amount) with (
market_id="cbbtc-usdc-86",
)
morpho_blue.supply_collateral(cbBTC, params.amount, "cbbtc-usdc-86")
morpho_blue.withdraw_collateral(cbBTC, params.amount, "cbbtc-usdc-86")
位置参数不便使用时,请使用 with (market_id=...):
morpho_blue.lend(USDC, params.amount) with (
market_id="0x1234...abcd",
)
使用 grimoire venue morpho-blue vaults 查找可用的市场 ID。
操作选择指南
根据策略意图选择操作:
- 仅供给策略(不计划借款):优先使用
vault_deposit/vault_withdraw。 - 借款策略(或未来需要借款、还款或管理抵押品):使用显式指定
market_id的市场操作。
硬性规则:
vault_deposit/vault_withdraw需要显式指定金库地址,且不使用market_id。lend、withdraw、borrow、repay、supply_collateral、withdraw_collateral需要显式指定market_id。- 如果金库操作缺少金库地址,不要猜测:列出候选金库,并要求用户选择后再编写或执行。
操作语义
lend(asset, amount, market_id):借出市场的贷款资产(贷方一侧)。withdraw(asset, amount, market_id):提取此前借出的贷款资产。supply_collateral(asset, amount, market_id):提供抵押品以进行借款(借款方一侧)。withdraw_collateral(asset, amount, market_id):取回已提供的抵押品。borrow(asset, amount, collateral?, market_id):借入市场的贷款资产。repay(asset, amount, market_id):偿还借入的贷款资产。vault_deposit(asset, amount, vault_address):存入 MetaMorpho 金库。vault_withdraw(asset, amount, vault_address):从 MetaMorpho 金库提取资产。
lend 和 supply_collateral 不能互换:
lend的目标是获取贷款资产的贷方收益。supply_collateral用于管理借款额度所需的抵押品。- 抵押品代币可能有自身的原生收益机制(例如 wstETH),这与 Morpho 供给 APY 不同。
APY 预期:
lend可累积市场供给 APY(以及可能的激励收益)。supply_collateral不会获得市场贷方 APY;它是借款的风险缓冲。- 抵押品代币可能有自身的原生收益机制(例如 wstETH),这与 Morpho 供给 APY 不同。
工作流模式
通过金库进行仅供给操作:
morpho_blue.vault_deposit(USDC, params.amount, "0xVaultAddress")
如果未提供金库,请先执行发现操作并询问用户选择:
grimoire venue morpho-blue vaults --chain <id> --asset <symbol> --sort netApy --order desc --limit 5 --format table
然后在 vault_deposit / vault_withdraw 中使用选定的金库地址。
借款工作流(市场):
morpho_blue.supply_collateral(WETH, params.collateral_amount, "weth-usdc-86")
morpho_blue.borrow(USDC, params.borrow_amount, WETH, "weth-usdc-86")
解除借款工作流:
morpho_blue.repay(USDC, params.repay_amount, "weth-usdc-86")
morpho_blue.withdraw_collateral(WETH, params.collateral_out, "weth-usdc-86")
通过市场进行仅借出操作(需要显式控制市场时):
morpho_blue.lend(USDC, params.amount, "cbbtc-usdc-86")
默认市场
该适配器预配置了 Ethereum(链 1)和 Base(链 8453)的市场:
Ethereum(链 1)
| 市场 | 贷款资产 | 抵押品 | LLTV |
|---|---|---|---|
| cbbtc-usdc-1 | USDC | cbBTC | 86% |
| wbtc-usdc-1 | USDC | WBTC | 86% |
| wsteth-weth-1 | WETH | wstETH | 96.5% |
Base(链 8453)
| 市场 | 贷款资产 | 抵押品 | LLTV |
|---|---|---|---|
| cbbtc-usdc-86 | USDC | cbBTC | 86% |
| weth-usdc-86 | USDC | WETH | 86% |
说明
- 输出为 JSON 或表格;
vaults也支持--format spell。 - 使用 SDK 的链地址注册表。
- 自动化场景优先使用
--format json,快速排查时使用--format table。