mcpField
O
okx-defi-portfolio

okx-defi-portfolio

github.com/okx其他3456.3k 次安装1 天前更新
代码仓库

关于 okx-defi-portfolio

此 CLI 技能用于查看多个链和协议上的 DeFi 仓位与持仓,提供组合概览和协议级详情;存入、赎回及领取操作则转交给其他技能。

主要功能

  1. 01汇总多链 DeFi 仓位
  2. 02显示协议级仓位详情
  3. 03查询支持的链和平台
  4. 04指导地址与链的选择

适用场景

  1. 01查看钱包的 DeFi 持仓
  2. 02检查特定协议中的资产
  3. 03查找仓位详情所需的平台 ID

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/okx/onchainos-skills --skill okx-defi-portfolio

安装后在 Claude Code 中输入/okx-defi-portfolio确认已加载。

详细介绍

OKX DeFi 投资组合

用于查看跨协议和链的 DeFi 持仓与资产的 2 条命令。

技能路由

  • 对于 DeFi 存入/赎回/领取 → 使用 okx-defi-invest
  • 对于代币价格/图表 → 使用 okx-dex-market
  • 对于钱包代币余额 → 使用 okx-agentic-wallet
  • 对于 DEX 现货兑换 → 使用 okx-agentic-wallet

快速入门

# Get DeFi holdings overview across chains
onchainos defi positions \
  --address 0xYourWallet \
  --chains ethereum,bsc,solana

# Get detailed holdings for a specific protocol (analysisPlatformId from positions output)
onchainos defi position-detail \
  --address 0xYourWallet \
  --chain ethereum \
  --platform-id 67890

命令索引

#命令描述
1onchainos defi support-chains获取 DeFi 支持的链
2onchainos defi support-platforms获取 DeFi 支持的平台
3onchainos defi positions --address <addr> --chains <chains>获取用户 DeFi 资产概览
4onchainos defi position-detail --address <addr> --chain <chain> --platform-id <id>获取某个协议的详细资产信息

链支持

链名称/别名chainIndex
Ethereumethereum、eth1
BSCbsc、bnb56
Polygonpolygon、matic137
Arbitrumarbitrum、arb42161
Basebase8453
X Layerxlayer、okb196
Avalancheavalanche、avax43114
Optimismoptimism、op10
Fantomfantom、ftm250
Suisui784
Trontron、trx195
TONton607
Linealinea59144
Scrollscroll534352
zkSynczksync324
Solanasolana、sol501

操作流程

步骤 0:解析地址

用户未提供钱包地址时,运行任何 DeFi 命令之前,先从 Agentic Wallet 自动解析地址:

1. onchainos wallet status          → check if logged in, get active account
2. onchainos wallet addresses       → get addresses grouped by chain category:
                                       - XLayer addresses
                                       - EVM addresses (Ethereum, BSC, Polygon, etc.)
                                       - Solana addresses
3. Match address to target chain:
   - EVM chains → use EVM address
   - Solana     → use Solana address
   - XLayer     → use XLayer address

规则:

  • 如果用户提供了明确的地址,直接使用该地址,跳过此步骤
  • 如果钱包未登录,请先让用户登录(→ okx-agentic-wallet),或手动提供地址
  • 如果用户说“检查所有账户”或“所有钱包”,使用 wallet balance --all 获取所有账户 ID,然后对每个账户运行 wallet switch <id> + wallet addresses,并查询每个账户的持仓
  • 如果账户有多个同类型地址,在继续操作前务必向用户确认解析出的地址
步骤 1:识别意图
用户说操作
查看持仓/投资组合/资产onchainos defi positions
查看某个协议的详情onchainos defi position-detail
查看后赎回/领取建议 → 使用 okx-defi-invest
步骤 2:收集参数
  • 缺少钱包地址 → 通过步骤 0 解析(钱包状态 → 钱包地址);如果未登录,则询问用户
  • 缺少链 → 询问用户要查询哪些链,或推荐常见链(ethereum、bsc、solana)
  • 缺少 platform-id → 先运行 defi positions 获取 analysisPlatformId
步骤 3:显示结果
显示持仓结果

显示 defi positions 输出时,必须严格使用以下列及顺序,不得替换或省略:

#平台analysisPlatformId链持仓价值(USD)
1Aave V312345ETH、BSC2$120.00

规则:

  • 每一行都必须包含 analysisPlatformId——用户必须复制此值来运行 position-detail
  • 绝不能省略、隐藏或用其他字段替换 analysisPlatformId
  • 绝不能合并平台——无论价值大小,都要为每个平台单独显示一行
  • 原始 JSON 路径:walletIdPlatformList[*].platformList[*]——每个元素对应一个平台行
    • platformName → 平台
    • analysisPlatformId → analysisPlatformId
    • networkBalanceList[*].network → 链(以逗号连接)
    • investmentCount → 持仓
    • currencyAmount → 价值(USD)
显示持仓详情结果

输出结构:{ "ok": true, "data": [ { "walletIdPlatformDetailList": [...] }, ... ] }——data 是一个数组。不要直接对 data 调用 .get();应将其作为列表遍历。

显示 defi position-detail 输出时,将所有代币显示在一个扁平表格中,列名必须如下:

类型资产数量价值(USD)investmentIdaggregateProductId代币合约奖励
SupplyUSDT1.002285$1.0025127719310x970223...70.000080 AVAX
PendingsAVAX0.00000091$0.000012–––平台奖励

规则:

  • 每个代币占一行;从其父级投资条目中合并填入 investmentId 和 aggregateProductId
  • 每一行都必须包含 investmentId——用户需要用它进行 redeem/claim(通过 okx-defi-invest)
  • aggregateProductId——若存在则显示,否则显示 –
  • Token Contract:显示完整合约地址,不得截断;若为原生代币或为空,则显示 –
  • Rewards:若存在待领取奖励,则显示数量和代币符号;若没有则显示 –;平台奖励显示 Platform reward
  • Type:将 investType 映射为 Supply/Borrow/Stake/Farm/Pool 等;待领取奖励行使用 Pending
  • 健康率:在表格下方单独显示;若 healthRate < 1.5,则显示警告
V3 池持仓 — 额外字段

对于 V3 池持仓(存在 positionList),为每个持仓显示一个额外部分:

tokenId状态范围tickLowertickUpper
93828ACTIVE0.892 – 0.992 USDC/DAI-33500-30450
  • tokenId:来自 positionList[].tokenId
  • positionStatus:ACTIVE 或 INACTIVE
  • range:来自 positionList[].range
  • tickLower / tickUpper:来自 positionList[].rangeInfo.tickLower / rangeInfo.tickUpper
  • 这些字段对 V3 操作至关重要(添加流动性、提取、收取 V3 费用)

investType 参考

investType描述
1储蓄(储蓄/收益)
2池(流动性池)
3Farm(收益耕作)
4金库
5Stake
6借款
7质押
8锁定
9存款
10归属

执行后建议

刚完成的操作建议
defi positions1. 查看详情 → defi position-detail 2. 赎回 → okx-defi-invest 3. 领取奖励 → okx-defi-invest
defi position-detail1. 赎回持仓 → 使用 okx-defi-invest,并提供表格中的 investmentId 2. 领取奖励 → 使用 okx-defi-invest 3. 追加投资 → 使用 okx-defi-invest
defi position-detail (V3 池)1. 查看深度图表 → defi depth-price-chart --investment-id <id>(通过 okx-defi-invest) 2. 查看价格历史 → defi depth-price-chart --investment-id <id> --chart-type PRICE

全局说明

  • 关键 — 地址与链的兼容性:--address 和 --chains 参数必须兼容。EVM 地址(0x…)只能查询 EVM 链;Solana 地址(base58)只能查询 solana。请勿在单次调用中混用,否则 API 会返回错误 84019(地址格式错误)。
    • 0x… 地址 → 仅传入 EVM 链:ethereum,bsc,polygon,arbitrum,base,xlayer,avalanche,optimism,fantom,linea,scroll,zksync
    • base58 地址 → 仅传入 solana
    • Sui 地址 → 仅传入 sui
    • Tron 地址(T…)→ 仅传入 tron
    • TON 地址 → 仅传入 ton
    • 如果用户想查看 EVM 和 Solana 上的仓位,请使用相应的地址分别调用两次
  • defi positions 使用 --chains(复数,以逗号分隔,例如 --chains ethereum,bsc)——请勿使用 --chain
  • defi position-detail 使用 --chain(单数)——请勿使用 --chains
  • 这两条命令的钱包地址参数均为 --address
  • position-detail 需要将 positions 输出中的 analysisPlatformId 作为 --platform-id
  • CLI 会自动解析链名称(ethereum → 1,bsc → 56,solana → 501)

评论

支持 Markdown