npx skills add ...
npx skills add franalgaba/grimoire --skill grimoire-morpho-blue
Fetches Morpho Blue public deployment metadata using the Grimoire venue CLI. Use when you need contract addresses or adapter info.
npx skills add franalgaba/grimoire --skill grimoire-morpho-blue
Use this skill to query Morpho Blue deployment metadata and vault snapshots for spell params.
Preferred invocations:
grimoire venue morpho-blue ...npx -y @grimoirelabs/cli venue morpho-blue ... (no-install)bun run packages/cli/src/index.ts venue morpho-blue ... (repo-local)grimoire-morpho-blue ... (direct binary from @grimoirelabs/venues)Recommended preflight:
grimoire venue doctor --adapter morpho-blue --chain 8453 --rpc-url <rpc> --jsonUse --format spell to emit a params: snapshot block.
The snapshot includes provenance fields (snapshot_at, snapshot_source) and APY data.
Use vault-liquidity for Morpho Vault V2 vault-wide withdrawal liquidity. It reads onchain Vault V2 fields, caps Morpho Market V1 liquidity-adapter assets by available underlying market cash, and does not use ERC-4626 maxWithdraw / maxRedeem, which Vault V2 intentionally returns as 0.
APY semantics:
apy / net_apy are decimal rates (for example 0.0408 = 4.08%).grimoire venue morpho-blue info — adapter metadatagrimoire venue morpho-blue addresses [--chain <id>] — contract addresses per chaingrimoire 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>] — list and filter vaultsgrimoire 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>] — generate spell params: block for vaults (agent-only)grimoire venue morpho-blue vault-liquidity [--chain <id>] --vault <address> [--rpc-url <url>] [--format json|table|spell] — read Morpho Vault V2 withdrawable liquidity in asset units and integer bpsUse vaults-snapshot to emit a params: block for spell inputs. This is an agent-only command (output suppressed in interactive mode).
vault-liquidity --format spell emits payload-ready JSON params for protocol: morpho-vault-v2, metric: withdrawable_liquidity_bps, withdrawable_liquidity_assets, total_assets, idle_assets, liquidity_adapter, and liquidity_adapter_assets.
Example provenance output fields to preserve:
snapshot_atsnapshot_sourceunits (for example net_apy=decimal, net_apy_pct=percent, tvl_usd=usd)Morpho exposes the apy metric surface and supports selector-based market targeting:
Use apy(morpho, asset[, selector]) for Morpho Blue market APY comparisons.
Use metric("utilization_bps", morpho, asset[, selector]) for Morpho Blue market utilization checks.
Use metric("vault_apy", morpho, asset, selector) or metric("vault_net_apy", morpho, asset, selector) for MetaMorpho vault comparisons.
Use metric("withdrawable_liquidity_bps", morpho, asset, selector) for Morpho Vault V2 live withdrawal liquidity checks.
Selector behavior:
apy): resolves by asset on the active chain and picks the highest-TVL matchweth-usdc-86)0x...)vault_apy / vault_net_apy): vault=<address|name|symbol> or bare vault address/name/symbolvault_apy / vault_net_apy require explicit selector (no implicit fallback)When multiple vaults/markets exist for one asset, pass an explicit selector for deterministic comparisons.
Morpho Blue actions do not support runtime constraints (max_slippage, etc.). Value-moving actions require an explicit market_id.
Use with (market_id=...) when positional args are not convenient:
Use grimoire venue morpho-blue vaults to discover available market IDs.
Choose actions by strategy intent:
vault_deposit / vault_withdraw.market_id.Hard rules:
vault_deposit / vault_withdraw require explicit vault address and do not use market_id.lend, withdraw, borrow, repay, supply_collateral, withdraw_collateral require explicit market_id.lend(asset, amount, market_id): lend the market loan asset (lender side).withdraw(asset, amount, market_id): withdraw previously lent loan asset.supply_collateral(asset, amount, market_id): post collateral for borrowing (borrower side).withdraw_collateral(asset, amount, market_id): remove posted collateral.borrow(asset, amount, collateral?, market_id): borrow the market loan asset.repay(asset, amount, market_id): repay borrowed loan asset.vault_deposit(asset, amount, vault_address): deposit into MetaMorpho vault.vault_withdraw(asset, amount, vault_address): withdraw from MetaMorpho vault.lend and supply_collateral are not interchangeable:
lend targets lender yield on loan asset.supply_collateral is collateral management for borrowing capacity.APY expectations:
lend accrues market supply APY (plus possible incentives).supply_collateral does not earn market lender APY; it is risk buffer for borrow.Supply-only via vault:
If vault is not provided, run discovery first and ask user to pick:
Then use the selected vault address in vault_deposit / vault_withdraw.
Borrow workflow (market):
Unwind borrow workflow:
Lend-only via market (when explicit market control is desired):
The adapter ships with pre-configured markets for Ethereum (chain 1) and Base (chain 8453):
| Market | Loan | Collateral | LLTV |
|---|---|---|---|
| cbbtc-usdc-1 | USDC | cbBTC | 86% |
| wbtc-usdc-1 | USDC | WBTC | 86% |
| wsteth-weth-1 | WETH | wstETH | 96.5% |
| Market | Loan | Collateral | LLTV |
|---|---|---|---|
| cbbtc-usdc-86 | USDC | cbBTC | 86% |
| weth-usdc-86 | USDC | WETH | 86% |
vaults also supports --format spell.--format json in automation and --format table for quick triage.