okx-defi-portfolio について
複数のチェーンやプロトコルにまたがる DeFi ポジションと保有資産を確認する CLI スキルです。ポートフォリオ概要とプロトコル別詳細を表示し、預け入れ、償還、報酬請求は別のスキルへ案内します。
主な機能
- 01複数チェーンの DeFi ポジション一覧
- 02プロトコル別ポジション詳細
- 03対応チェーンとプラットフォームの確認
- 04アドレスとチェーン選択の案内
活用シーン
- 01ウォレットの DeFi 保有状況の確認
- 02特定プロトコル内の資産の調査
- 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
コマンド一覧
| # | コマンド | 説明 |
|---|---|---|
| 1 | onchainos defi support-chains | DeFi でサポートされているチェーンを取得します |
| 2 | onchainos defi support-platforms | DeFi でサポートされているプラットフォームを取得します |
| 3 | onchainos defi positions --address <addr> --chains <chains> | ユーザーの DeFi 保有資産の概要を取得します |
| 4 | onchainos defi position-detail --address <addr> --chain <chain> --platform-id <id> | プロトコルの詳細な保有資産を取得します |
チェーンのサポート
| チェーン | 名前/別名 | chainIndex |
|---|---|---|
| Ethereum | ethereum、eth | 1 |
| BSC | bsc、bnb | 56 |
| Polygon | polygon、matic | 137 |
| Arbitrum | arbitrum、arb | 42161 |
| Base | base | 8453 |
| X Layer | xlayer、okb | 196 |
| Avalanche | avalanche、avax | 43114 |
| Optimism | optimism、op | 10 |
| Fantom | fantom、ftm | 250 |
| Sui | sui | 784 |
| Tron | tron、trx | 195 |
| TON | ton | 607 |
| Linea | linea | 59144 |
| Scroll | scroll | 534352 |
| zkSync | zksync | 324 |
| Solana | solana、sol | 501 |
操作フロー
ステップ 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) |
|---|---|---|---|---|---|
| 1 | Aave V3 | 12345 | ETH,BSC | 2 | $120.00 |
ルール:
- すべての行で
analysisPlatformIdは必須 です。ユーザーはposition-detailの実行時にこの値をコピーする必要があります analysisPlatformIdを省略、非表示にしたり、他のフィールドで置き換えたりしてはいけません- プラットフォームをグループ化してはいけません。金額の大小にかかわらず、各プラットフォームを個別の行として表示します
- 生の JSON パス:
walletIdPlatformList[*].platformList[*]— 各要素が 1 つのプラットフォーム行ですplatformName→ プラットフォームanalysisPlatformId→ analysisPlatformIdnetworkBalanceList[*].network→ チェーン(コンマ区切りで結合)investmentCount→ ポジションcurrencyAmount→ Value(USD)
ポジション詳細の結果の表示
出力形式:{ "ok": true, "data": [ { "walletIdPlatformDetailList": [...] }, ... ] } — data は配列です。data に対して直接 .get() を呼び出さず、リストとして反復処理してください。
defi position-detail の出力を表示する場合、すべてのトークンを以下の列構成の単一のフラットな表に表示してください。
| Type | Asset | Amount | Value(USD) | investmentId | aggregateProductId | Token Contract | Rewards |
|---|---|---|---|---|---|---|---|
| Supply | USDT | 1.002285 | $1.0025 | 127 | 71931 | 0x970223...7 | 0.000080 AVAX |
| Pending | sAVAX | 0.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 が存在する場合)では、ポジションごとに追加セクションを表示します。
| tokenId | Status | Range | tickLower | tickUpper |
|---|---|---|---|---|
| 93828 | ACTIVE | 0.892 – 0.992 USDC/DAI | -33500 | -30450 |
tokenId:positionList[].tokenIdの値positionStatus:ACTIVEまたはINACTIVErange:positionList[].rangeの値tickLower/tickUpper:positionList[].rangeInfo.tickLower/rangeInfo.tickUpperの値- これらのフィールドは、V3 の操作(流動性の追加、引き出し、V3 手数料の徴収)に不可欠です
investType リファレンス
| investType | 説明 |
|---|---|
| 1 | 貯蓄(貯蓄/利回り) |
| 2 | プール(流動性プール) |
| 3 | ファーム(イールドファーミング) |
| 4 | ボールト |
| 5 | ステーク |
| 6 | 借入 |
| 7 | ステーキング |
| 8 | ロック |
| 9 | 預け入れ |
| 10 | ベスティング |
実行後の提案
| 完了した操作 | 提案 |
|---|---|
defi positions | 1. 詳細を表示 → defi position-detail 2. 償還 → okx-defi-invest 3. 報酬を請求 → okx-defi-invest |
defi position-detail | 1. ポジションを償還 → 表の 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)。
コメント
Markdown 対応