详细分析 ▾
运行时依赖
版本
Morpho CLI初始版本发布,用于通过命令行界面与Morpho协议交互。- 查询金库、市场、用户仓位和协议统计数据(Base和Ethereum)。- 准备和模拟未签名的存款、取款、供给、借款、抵押和还款交易。- 所有命令输出JSON;无需私钥或钱包访问。- 内置安全检查:默认运行模拟,并提供处理错误和流动性约束的明确指导。- 详细用法、模式和最佳实践请参阅SKILL.md。
安装命令
点击复制技能文档
Experimental (pre-v1.0) — Command syntax, response schemas, and available operations may change. Always verify critical outputs independently. Query Morpho protocol data and build unsigned transactions. All commands output JSON to stdout. No private keys needed.
npx @morpho-org/cli [options]
Supported chains: base, ethereum. Every command requires --chain.
Response Schemas
- Read commands — exact JSON shapes for query-vaults, get-vault, query-markets, get-market, get-positions, get-position
- Write commands — exact JSON shapes for prepare-, simulate-transactions
Quick Reference
# Read — query protocol state npx @morpho-org/cli query-vaults --chain base [--asset-symbol USDC] [--asset-address 0x...] [--sort apy_desc|apy_asc|tvl_desc|tvl_asc] [--limit 5] [--skip 0] [--fields address,name,symbol,apyPct,tvl,tvlUsd,feePct]npx @morpho-org/cli get-vault --chain base --address 0x...
npx @morpho-org/cli query-markets --chain base --loan-asset 0x... --collateral-asset 0x... [--sort-by supplyApy|borrowApy|netSupplyApy|netBorrowApy|supplyAssetsUsd|borrowAssetsUsd|totalLiquidityUsd] [--sort-direction asc|desc] [--limit 10] [--skip 0] [--fields supplyApy,borrowApy,totalSupply,totalBorrow,totalCollateral,totalLiquidity,supplyAssetsUsd,borrowAssetsUsd,collateralAssetsUsd,liquidityAssetsUsd]
npx @morpho-org/cli get-market --chain base --id 0x...
npx @morpho-org/cli get-positions --chain base --user-address 0x... [--vault-address 0x...] [--market-id 0x...]
npx @morpho-org/cli get-position --chain base --user-address 0x... [--vault-address 0x...]
# Write — prepare unsigned transactions (simulation runs by default; add --no-simulate to skip) npx @morpho-org/cli prepare-deposit --chain base --vault-address 0x... --user-address 0x... --amount 1000
npx @morpho-org/cli prepare-withdraw --chain base --vault-address 0x... --user-address 0x... --amount max
npx @morpho-org/cli prepare-supply --chain base --market-id 0x... --user-address 0x... --amount 5000
npx @morpho-org/cli prepare-borrow --chain base --market-id 0x... --user-address 0x... --borrow-amount 1
npx @morpho-org/cli prepare-repay --chain base --market-id 0x... --user-address 0x... --amount max
npx @morpho-org/cli prepare-supply-collateral --chain base --market-id 0x... --user-address 0x... --amount 5000
npx @morpho-org/cli prepare-withdraw-collateral --chain base --market-id 0x... --user-address 0x... --amount max
# Simulate — standalone re-simulation or arbitrary transaction simulation npx @morpho-org/cli simulate-transactions --chain base --from 0x... --transactions '' --analysis-context ''
# Utility npx @morpho-org/cli health-check
npx @morpho-org/cli get-supported-chains
Write Workflow: Prepare → Present
Every write operation follows two steps. Simulation runs automatically inside prepare-.
- Prepare — run a
prepare-command. The CLI handles token decimals, allowances, approvals, and simulation automatically. Returns{operation, simulation}whereoperationhas transactions/summary/warnings/preview andsimulationhas execution results, gas, and post-state analysis. Use--no-simulateto skip simulation.
- Present — show the summary, list of unsigned transactions, simulation results, and any warnings (low health factor, partial liquidity) in tabular format. If
simulation.allSucceededis false — diagnose before presenting. Usesimulate-transactionsseparately only for re-simulating with different parameters or simulating arbitrary transactions.
Simulation Failures
| Revert | Cause | What to do |
|---|---|---|
ERC20: insufficient allowance | Missing approval | Re-prepare — CLI should include approvals automatically |
ERC4626ExceededMaxWithdraw | Vault liquidity insufficient | Reduce amount (see below) |
insufficient balance | User lacks tokens | Tell the user |
| Custom error hex | Protocol-specific | Query state with get-market or get-vault to diagnose |
Partial Withdrawal
If prepare-withdraw --amount max returns a liquidity warning:
- Parse the safe amount from
summary, apply ~1% buffer (parsedAmount0.99) - Re-call
prepare-withdrawwith the buffered amount, then simulate - Tell the user: remaining locked assets free up as borrowers repay
Safety Rules
- Check simulation before presenting — simulation runs by default; check
simulation.allSucceededbefore presenting
- Never sign or broadcast — unsigned payloads only
- Watch health factor for borrows — warn if below 1.1
- Communicate liquidity constraints clearly for partial withdrawals
CLI Errors
When a npx @morpho-org/cli command fails, stop and report the error to the user. Do not:
- Retry with different parameters you invented
- Fall back to alternative tools or APIs
- Attempt to work around missing required options
- Pipe output through
jqor other filters — use the CLI's built-in flags (--fields,--sort-by,--limit, etc.) to shape the response
Common Mistakes
- Forgetting
--chain— every command requires it, there is no default
- Using chain IDs (
1,8453) instead of names (ethereum,base)
- Displaying raw amounts without dividing by
10^decimals—"2000000000"USDC is2000, not 2 billion
- Assuming 18 decimals — USDC/USDT have 6
- Passing raw units as
--amount— CLI expects human-readable (1000not1000000000)
- Using
--no-simulatewithout reason — simulation is on by default; only skip when debugging or for speed
- Ignoring
simulation.allSucceeded === false— diagnose before presenting