okx-defi-portfolio

作者: okx

使用此技能可执行以下操作:'查看我的DeFi头寸'、'查看DeFi持仓'、'显示我的DeFi投资组合'、'我投资了哪些DeFi'、'显示我的质押头寸'、'显示我的借贷头寸'、'DeFi余额'、'DeFi 持仓'、'查看DeFi持仓'、'我的DeFi资产'、'持仓详情'、'持仓列表',或提及跨协议查看DeFi持仓、头寸、投资组合时——当用户未指定具体DApp时。涵盖头寸概览及各协议头寸详情。请勿用于存款/赎回/领取操作——请使用...

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

OKX DeFi Portfolio

2 commands for viewing DeFi positions and holdings across protocols and chains.

Skill Routing

  • For DeFi deposit/redeem/claim → use okx-defi-invest
  • For token price/chart → use okx-dex-market
  • For wallet token balances → use okx-wallet-portfolio
  • For DEX spot swap → use okx-dex-swap

Quickstart

# 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

Command Index

#CommandDescription
1onchainos defi support-chainsGet supported chains for DeFi
2onchainos defi support-platformsGet supported platforms for DeFi
3onchainos defi positions --address <addr> --chains <chains>Get user DeFi holdings overview
4onchainos defi position-detail --address <addr> --chain <chain> --platform-id <id>Get detailed holdings for a protocol

Chain Support

ChainName / AliaseschainIndex
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

Operation Flow

Step 0: Address Resolution

When the user does NOT provide a wallet address, resolve it automatically from the Agentic Wallet before running any defi command:

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

Rules:

  • If the user provides an explicit address, use it directly — skip this step
  • If wallet is not logged in, ask the user to log in first (→ okx-agentic-wallet) or provide an address manually
  • If the user says "check all accounts" or "all wallets", use wallet balance --all to get all account IDs, then wallet switch <id> + wallet addresses for each account, and query positions for each
  • Always confirm the resolved address with the user before proceeding if the account has multiple addresses of the same type

Step 1: Identify Intent

User saysAction
View positions / portfolio / holdingsonchainos defi positions
View detail for a protocolonchainos defi position-detail
Redeem / claim after viewingSuggest → use okx-defi-invest

Step 2: Collect Parameters

  • Missing wallet address → resolve via Step 0 (wallet status → wallet addresses), or ask user if not logged in
  • Missing chains → ask user which chains to query, or suggest common ones (ethereum, bsc, solana)
  • Missing platform-id → run defi positions first to get analysisPlatformId

Step 3: Display Results

Displaying Positions Results

When displaying defi positions output, you MUST use exactly these columns in this order — no substitutions, no omissions:

#PlatformanalysisPlatformIdChainsPositionsValue(USD)
1Aave V312345ETH,BSC2$120.00

Rules:

  • analysisPlatformId is MANDATORY in every row — users must copy this value to run position-detail
  • Never omit, hide, or replace analysisPlatformId with any other field
  • Never group platforms — show every platform as its own row regardless of value size
  • Raw JSON path: walletIdPlatformList[*].platformList[*] — each element is one platform row
    • platformName → Platform
    • analysisPlatformId → analysisPlatformId
    • networkBalanceList[*].network → Chains (join with comma)
    • investmentCount → Positions
    • currencyAmount → Value(USD)

Displaying Position Detail Results

Output shape: { "ok": true, "data": [ { "walletIdPlatformDetailList": [...] }, ... ] }data is an array. Never call .get() on data directly; iterate over it as a list.

When displaying defi position-detail output, render all tokens in a single flat table with these exact columns:

TypeAssetAmountValue(USD)investmentIdaggregateProductIdToken ContractRewards
SupplyUSDT1.002285$1.0025127719310x970223...70.000080 AVAX
PendingsAVAX0.00000091$0.000012Platform reward

Rules:

  • Each token row is one row; merge in investmentId and aggregateProductId from its parent investment entry
  • investmentId is MANDATORY in every row — users need it for redeem/claim (via okx-defi-invest)
  • aggregateProductId — show if present, otherwise
  • Token Contract: show the full contract address without truncation; show if native/empty
  • Rewards: show pending reward amount + symbol if present, if none; for platform rewards show Platform reward
  • Type: map investType → Supply/Borrow/Stake/Farm/Pool etc; pending rewards row uses Pending
  • Health rate: show separately below the table with warning if healthRate < 1.5

V3 Pool Positions — Extra Fields

For V3 Pool positions (positionList present), show an additional section per position:

tokenIdStatusRangetickLowertickUpper
93828ACTIVE0.892 – 0.992 USDC/DAI-33500-30450
  • tokenId: from positionList[].tokenId
  • positionStatus: ACTIVE or INACTIVE
  • range: from positionList[].range
  • tickLower / tickUpper: from positionList[].rangeInfo.tickLower / rangeInfo.tickUpper
  • These fields are critical for V3 operations (add liquidity, withdraw, collect V3 fees)

investType Reference

investTypeDescription
1Save (savings/yield)
2Pool (liquidity pool)
3Farm (yield farming)
4Vaults
5Stake
6Borrow
7Staking
8Locked
9Deposit
10Vesting

Post-execution Suggestions

Just completedSuggest
defi positions1. View detail → defi position-detail 2. Redeem → okx-defi-invest 3. Claim rewards → okx-defi-invest
defi position-detail1. Redeem position → use okx-defi-invest with investmentId from table 2. Claim rewards → use okx-defi-invest 3. Add more → use okx-defi-invest
defi position-detail (V3 Pool)1. View depth chart → defi depth-price-chart --investment-id <id> (via okx-defi-invest) 2. View price history → defi depth-price-chart --investment-id <id> --chart-type PRICE

Global Notes

  • CRITICAL — Address-chain compatibility: The --address and --chains parameters must be compatible. EVM addresses (0x…) can only query EVM chains; Solana addresses (base58) can only query solana. Never mix them in a single call — the API will return error 84019 (Address format error).
    • 0x… address → only pass EVM chains: ethereum,bsc,polygon,arbitrum,base,xlayer,avalanche,optimism,fantom,linea,scroll,zksync
    • base58 address → only pass solana
    • Sui address → only pass sui
    • Tron address (T…) → only pass tron
    • TON address → only pass ton
    • If the user wants positions across both EVM and Solana, make two separate calls with the respective addresses
  • defi positions uses --chains (plural, comma-separated, e.g. --chains ethereum,bsc) — do NOT use --chain
  • defi position-detail uses --chain (singular) — do NOT use --chains
  • The wallet address parameter is --address for both commands
  • position-detail requires analysisPlatformId from positions output as --platform-id
  • The CLI resolves chain names automatically (ethereum1, bsc56, solana501)

来自 okx 的更多技能

okx-agent-identity
okx
ERC-8004 在XLayer上的链上Agent身份:注册/创建/更新/激活/停用/搜索agent;查看评分;列出agent服务;设置头像。角色:user(User / User Agent / Buyer / Client / 用户 / 买家 / 买方),asp(ASP / Provider / Provider Agent / Seller / Merchant / 提供者 / 商家 / 服务提供商 / 卖家 / 卖方),evaluator(Evaluator / Evaluator Agent / 仲裁者 / 评估者)。用于:注册agent / 注册ASP / 注册User / 注册用户 / 注册买家 / 注册卖家 / 注册服务提供商 / 注册仲裁者 / 创建用户 / 创建买家 / 创建卖家 / 我的agent / 我的ASP / 改agent / 更新agent...
developmentapi
okx-ai-guide
okx
OKX.AI(Agent经济系统)简介与入门指引。当用户询问OKX.AI是什么、能做什么、如何使用或开始使用、需要OKX.AI教程/快速入门/帮助,或输入该产品名称的任何拼写/空格/大小写/错别字变体(如OKXAI、okx ai、okx-ai、小写okx.ai、中文误拼如啥是okxai)时使用——例如what is OKX.AI / OKX.AI是什么 / 怎么用OKX.AI / OKX.AI快速开始,以及任何语言的同义表述。检测运行时平台,介绍...
researchapidocument
okx-agentic-wallet
okx
OKX Agentic Wallet 及其 Gas Station 功能的权威来源。Gas Station = OKX 在 Solana 上通过第三方 Relayer 实现的稳定币 Gas 功能;仅限 Solana,不支持 EIP-7702。必须调用以回答 Gas Station 相关问题(什么是 Gas Station / 如何运作 / 支持的代币 / 费用 / 启用或禁用 Gas Station / 更改默认 Gas 代币 / Jito Bundler 兼容性
apiweb-scrapingdevelopment
okx-agent-chat
okx
Routing stub — any a2a-agent-chat envelope / agent-task system message is handled by `okx-agent-task`. For missing or uninitialized OKX A2A communication runtime/plugin, read `skills/okx-agent-chat/ensure-okx-a2a-communication-ready.md`.
developmentapicommunication
okx-agent-task
okx
我们要求翻译一段文本,目标语言是简体中文。需要保留产品名、协议名、URL、数字、技术术语。不要添加声明、解释、Markdown、项目符号、链接、标签、前缀或额外评论。只翻译<text>内的内容,不包括名称除非在源文本中出现。不要添加"description"等标签。 源文本是英文,包含一些中文词汇(如"发布任务"等)。需要整体翻译成简体中文,但保留技术术语和产品名如"okx-agent-task"、"agentId"、"msgType"等。注意保持格式和括号等。 翻译时注意:MUST ACTIVATE on inbound envelopes: 应该翻译为"必须在入站信封上激活:"。后面的列表用分号分隔。注意保留大括号、引号等。最后的关键词列表也要翻译,但保留英文关键词如"publish task"等,因为它们是技术术语?但指令说保留技术术语,但中文关键词如"发布任务"已经是中文,不需要翻译。英文关键词如"publish task
developmentapicommunication
okx-agent-payments-protocol
okx
当代理遇到HTTP 402 / 需要支付,或用户提及x402、x402Version、X-PAYMENT、PAYMENT-REQUIRED、PAYMENT-SIGNATURE、WWW-Authenticate: Payment、permit2、upto、计量计费、支付通道/凭证/会话、channelId/channel_id、开通/关闭/充值/结算/退款通道、paymentId或a2a_链接、创建/检查支付链接、A2MCP/A2MCP端点,或向代理端点发送请求/调用代理端点时使用...
okx-security
okx
使用此技能进行安全扫描:检查交易安全性、此交易是否安全、预执行检查、安全扫描、代币风险扫描、蜜罐检测、DApp/URL钓鱼检测、消息签名安全性、恶意交易检测、授权安全检查、代币授权管理。触发词:'此代币是否安全'、'检查代币安全性'、'蜜罐检测'、'扫描此交易'、'扫描此兑换交易'、'交易风险检查'、'此URL是否为诈骗'、'检查此dapp是否安全'、'钓鱼...
okx-task-watch
okx
监听任务进展 / 帮我盯着任务 / 任务有动静告诉我 / 历史消息 / 未读消息 / 未决策 / 待决策 / 继续监听 / task watch / user watch / 监控任务进度 / 向我汇报任务情况 / 待处理决策 —
developmentapiproductivity