mcpField
O
okx-defi-portfolio

okx-defi-portfolio

github.com/okxその他3456.3k 回インストール1 日前に更新
リポジトリ

okx-defi-portfolio について

複数のチェーンやプロトコルにまたがる DeFi ポジションと保有資産を確認する CLI スキルです。ポートフォリオ概要とプロトコル別詳細を表示し、預け入れ、償還、報酬請求は別のスキルへ案内します。

主な機能

  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-chainsDeFi でサポートされているチェーンを取得します
2onchainos defi support-platformsDeFi でサポートされているプラットフォームを取得します
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チェーンポジションValue(USD)
1Aave V312345ETH,BSC2$120.00

ルール:

  • すべての行で analysisPlatformId は必須 です。ユーザーは position-detail の実行時にこの値をコピーする必要があります
  • analysisPlatformId を省略、非表示にしたり、他のフィールドで置き換えたりしてはいけません
  • プラットフォームをグループ化してはいけません。金額の大小にかかわらず、各プラットフォームを個別の行として表示します
  • 生の JSON パス:walletIdPlatformList[*].platformList[*] — 各要素が 1 つのプラットフォーム行です
    • platformName → プラットフォーム
    • analysisPlatformId → analysisPlatformId
    • networkBalanceList[*].network → チェーン(コンマ区切りで結合)
    • investmentCount → ポジション
    • currencyAmount → Value(USD)
ポジション詳細の結果の表示

出力形式:{ "ok": true, "data": [ { "walletIdPlatformDetailList": [...] }, ... ] } — data は配列です。data に対して直接 .get() を呼び出さず、リストとして反復処理してください。

defi position-detail の出力を表示する場合、すべてのトークンを以下の列構成の単一のフラットな表に表示してください。

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

ルール:

  • 各トークンを1行で表示し、親の投資エントリーから 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 が存在する場合)では、ポジションごとに追加セクションを表示します。

tokenIdStatusRangetickLowertickUpper
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プール(流動性プール)
3ファーム(イールドファーミング)
4ボールト
5ステーク
6借入
7ステーキング
8ロック
9預け入れ
10ベスティング

実行後の提案

完了した操作提案
defi positions1. 詳細を表示 → defi position-detail 2. 償還 → okx-defi-invest 3. 報酬を請求 → okx-defi-invest
defi position-detail1. ポジションを償還 → 表の investmentId を使用して okx-defi-invest を実行 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 のみをクエリできます。1 回の呼び出しで両者を混在させないでください。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 の両方にまたがるポジションを希望する場合は、それぞれのアドレスを使って別々に 2 回呼び出します
  • 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)。

コメント