jpskill.com
✍️ ライティング コミュニティ

opentrade-portfolio

仮想通貨ウォレットの残高や保有トークン、ポートフォリオ全体の価値を複数のブロックチェーンで確認するSkill。

📜 元の英語説明(参考)

This skill should be used when the user asks to 'check my wallet balance', 'show my token holdings', 'how much OKB do I have', 'what tokens do I have', 'check my portfolio value', 'view my assets', 'how much is my portfolio worth', 'what\'s in my wallet', or mentions checking wallet balance, total assets, token holdings, portfolio value, remaining funds, DeFi positions, or multi-chain balance lookup. Supports XLayer, Solana, Ethereum, Base, BSC, Arbitrum, Polygon, and 20+ other chains. Do NOT use for general programming questions about balance variables or API documentation. Do NOT use when the user is asking how to build or integrate a balance feature into code.

🇯🇵 日本人クリエイター向け解説

一言でいうと

仮想通貨ウォレットの残高や保有トークン、ポートフォリオ全体の価値を複数のブロックチェーンで確認するSkill。

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-17
取得日時
2026-05-17
同梱ファイル
1

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

OpenTrade ウォレットポートフォリオ CLI

サポートされているチェーン、ウォレットの合計価値、すべてのトークン残高、および特定のトークン残高に関する4つのコマンドです。

事前確認

opentrade コマンドを実行する前に、毎回以下の手順を順番に実行してください。ルーチンのコマンド出力をユーザーに表示せず、インストール、更新、または失敗の処理時にのみ簡単なステータス更新を提供してください。

  1. インストール済みであることを確認: which opentrade を実行します。見つからない場合は、インストールしてください。

    curl -sSL https://raw.githubusercontent.com/6551Team/openskills/main/skills/opentrade/install.sh | sh

    インストールスクリプトが失敗した場合は、ユーザーに https://github.com/6551Team/openskills の指示に従って手動でインストールするよう依頼してください。

  2. 更新を確認: ~/.opentrade/last_check を読み込み、現在のタイムスタンプと比較します。

    cached_ts=$(cat ~/.opentrade/last_check 2>/dev/null || true)
    now=$(date +%s)
    • cached_ts が空でなく、(now - cached_ts) < 43200 (12時間) の場合、更新をスキップして続行します。
    • それ以外の場合(ファイルがないか12時間以上経過している場合)、インストーラーを実行して更新を確認します。
      curl -sSL https://raw.githubusercontent.com/6551Team/openskills/main/skills/opentrade/install.sh | sh

      新しいバージョンがインストールされた場合は、ユーザーにその旨を伝え、最新の機能を利用するために https://github.com/6551Team/openskills から opentrade スキルを更新することを提案してください。

  3. このセッション中に opentrade コマンドが予期せぬエラーで失敗した場合は、諦める前に再インストールを試してください。

    curl -sSL https://raw.githubusercontent.com/6551Team/openskills/main/skills/opentrade/install.sh | sh
  4. プロジェクトルートに .env ファイルを見つけるか作成して、デフォルトの API 認証情報を上書きし、opentrade 操作を実行する前にロードしてください。

    OPEN_TOKEN=your_token_here

API トークンは https://6551.io/mcp で取得できます。

セキュリティ警告: .env を git にコミットしたり(.gitignore に追加してください)、ログ、スクリーンショット、チャットメッセージで認証情報を公開したりしないでください。

ルーターの検出

重要: ユーザーがトレーディングルーターを指定していない場合、最初に利用可能なルーターを検出する必要があります

opentrade trade routers

応答形式:

{
  "ok": true,
  "data": [
    {
      "api": "v2",
      "created_at": "2026-03-10 01:15:42",
      "is_active": true,
      "name": "6551dex test",
      "quota_reward": 0,
      "trader": "6551dex",
      "updated_at": "2026-03-10 01:15:42"
    },
    {
      "api": "v1",
      "created_at": "2026-03-03 21:24:34",
      "is_active": true,
      "name": "okx test",
      "quota_reward": 0,
      "trader": "okx",
      "updated_at": "2026-03-03 21:24:34"
    }
  ]
}

使用方法:

  • 応答から traderapi を抽出します。
  • 必須: このセッションにおける以降のすべての opentrade コマンドには、--trader <trader>--api <api> フラグを含める必要があります
  • 例: opentrade portfolio balance 0x... --chain ethereum --trader okx --api v1
  • デフォルトのフォールバック: API がデータを返さないか空の場合、--trader okx --api v1 を使用します。

スキルのルーティング

  • トークン価格 / K-ライン → opentrade-market を使用します。
  • トークン検索 / メタデータ → opentrade-token を使用します。
  • スワップ実行 → opentrade-dex-swap を使用します。
  • トランザクションブロードキャスト → opentrade-gateway を使用します。

クイックスタート

# 残高照会でサポートされているチェーンを取得
opentrade portfolio chains

# XLayer と Solana の総資産価値を取得
opentrade portfolio total-value --address 0xYourWallet --chains "xlayer,solana"

# すべてのトークン残高を取得
opentrade portfolio all-balances --address 0xYourWallet --chains "xlayer,solana,ethereum"

# 特定のトークンを確認 (XLayer のネイティブ OKB + USDC)
opentrade portfolio token-balances --address 0xYourWallet --tokens "196:,196:0x74b7f16337b8972027f6196a17a631ac6de26d22"

チェーン名のサポート

CLI は人間が読めるチェーン名を受け入れ、自動的に解決します。

チェーン 名前 chainIndex
XLayer xlayer 196
Solana solana 501
Ethereum ethereum 1
Base base 8453
BSC bsc 56
Arbitrum arbitrum 42161

アドレス形式の注意: EVM アドレス (0x...) は Ethereum/BSC/Polygon/Arbitrum/Base などで機能します。Solana アドレス (Base58) と Bitcoin アドレス (UTXO) は異なる形式です。チェーンタイプ間で形式を混在させないでください。

コマンドインデックス

# コマンド 説明
1 opentrade portfolio chains 残高照会でサポートされているチェーンを取得します。
2 opentrade portfolio total-value --address ... --chains ... ウォレットの総資産価値を取得します。
3 opentrade portfolio all-balances --address ... --chains ... ウォレットのすべてのトークン残高を取得します。
4 opentrade portfolio token-balances --address ... --tokens ... 特定のトークン残高を取得します。

クロススキルワークフロー

このスキルは、スワップ前(十分な残高を確認するため)またはポートフォリオのエントリポイントとしてよく使用されます。

ワークフロー A: スワップ前の残高確認

ユーザー: 「1 SOL を BONK にスワップ」

1. opentrade-token    opentrade token search BONK --chains solana               → tokenContractAddress を取得
       ↓ tokenContractAddress
2. opentrade-portfolio  opentrade portfolio all-balances --address <addr> --chains solana
       → SOL 残高が 1 以上であることを確認
       ↓ balance フィールド (UI 単位) → スワップのための最小単位に変換
3. opentrade-dex-swap     opentrade swap quote --from 11111111111111111111111111111111 --to <BONK_address> --amount 1000000000 --chain solana
4. opentrade-dex-swap     opentrade swap swap --from ... --to <BONK_address> --amount 1000000000 --chain solana --wallet <addr>

データハンドオフ:

  • トークン検索からの tokenContractAddress → スワップの --from / --to に供給されます。
  • ポートフォリオからの balanceUI 単位です。スワップには最小単位が必要です → 10^decimal を掛けます。
  • 残高が必要な量より少ない場合 → ユーザーに通知し、スワップに進まないでください。

ワークフロー B: ポートフォリオの概要 + 分析

ユーザー: 「私のポートフォリオを表示」

1. opentrade-portfolio  open
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

OpenTrade Wallet Portfolio CLI

4 commands for supported chains, wallet total value, all token balances, and specific token balances.

Pre-flight Checks

Every time before running any opentrade command, always follow these steps in order. Do not echo routine command output to the user; only provide a brief status update when installing, updating, or handling a failure.

  1. Confirm installed: Run which opentrade. If not found, install it:

    curl -sSL https://raw.githubusercontent.com/6551Team/openskills/main/skills/opentrade/install.sh | sh

    If the install script fails, ask the user to install manually following the instructions at: https://github.com/6551Team/openskills

  2. Check for updates: Read ~/.opentrade/last_check and compare it with the current timestamp:

    cached_ts=$(cat ~/.opentrade/last_check 2>/dev/null || true)
    now=$(date +%s)
    • If cached_ts is non-empty and (now - cached_ts) < 43200 (12 hours), skip the update and proceed.
    • Otherwise (file missing or older than 12 hours), run the installer to check for updates:
      curl -sSL https://raw.githubusercontent.com/6551Team/openskills/main/skills/opentrade/install.sh | sh

      If a newer version is installed, tell the user and suggest updating their opentrade skills from https://github.com/6551Team/openskills to get the latest features.

  3. If any opentrade command fails with an unexpected error during this session, try reinstalling before giving up:

    curl -sSL https://raw.githubusercontent.com/6551Team/openskills/main/skills/opentrade/install.sh | sh
  4. Find or create a .env file in the project root to override the default API credentials, Load it before performing opentrade operations.

    OPEN_TOKEN=your_token_here

Get your API token at: https://6551.io/mcp

Security warning: Never commit .env to git (add it to .gitignore) and never expose credentials in logs, screenshots, or chat messages.

Router Discovery

IMPORTANT: If the user has not specified a trading router, you MUST first discover available routers:

opentrade trade routers

Response format:

{
  "ok": true,
  "data": [
    {
      "api": "v2",
      "created_at": "2026-03-10 01:15:42",
      "is_active": true,
      "name": "6551dex test",
      "quota_reward": 0,
      "trader": "6551dex",
      "updated_at": "2026-03-10 01:15:42"
    },
    {
      "api": "v1",
      "created_at": "2026-03-03 21:24:34",
      "is_active": true,
      "name": "okx test",
      "quota_reward": 0,
      "trader": "okx",
      "updated_at": "2026-03-03 21:24:34"
    }
  ]
}

Usage:

  • Extract trader and api from the response
  • MANDATORY: ALL subsequent opentrade commands in this session MUST include --trader <trader> and --api <api> flags
  • Example: opentrade portfolio balance 0x... --chain ethereum --trader okx --api v1
  • Default fallback: If the API returns no data or is empty, use --trader okx --api v1

Skill Routing

  • For token prices / K-lines → use opentrade-market
  • For token search / metadata → use opentrade-token
  • For swap execution → use opentrade-dex-swap
  • For transaction broadcasting → use opentrade-gateway

Quickstart

# Get supported chains for balance queries
opentrade portfolio chains

# Get total asset value on XLayer and Solana
opentrade portfolio total-value --address 0xYourWallet --chains "xlayer,solana"

# Get all token balances
opentrade portfolio all-balances --address 0xYourWallet --chains "xlayer,solana,ethereum"

# Check specific tokens (native OKB + USDC on XLayer)
opentrade portfolio token-balances --address 0xYourWallet --tokens "196:,196:0x74b7f16337b8972027f6196a17a631ac6de26d22"

Chain Name Support

The CLI accepts human-readable chain names and resolves them automatically.

Chain Name chainIndex
XLayer xlayer 196
Solana solana 501
Ethereum ethereum 1
Base base 8453
BSC bsc 56
Arbitrum arbitrum 42161

Address format note: EVM addresses (0x...) work across Ethereum/BSC/Polygon/Arbitrum/Base etc. Solana addresses (Base58) and Bitcoin addresses (UTXO) have different formats. Do NOT mix formats across chain types.

Command Index

# Command Description
1 opentrade portfolio chains Get supported chains for balance queries
2 opentrade portfolio total-value --address ... --chains ... Get total asset value for a wallet
3 opentrade portfolio all-balances --address ... --chains ... Get all token balances for a wallet
4 opentrade portfolio token-balances --address ... --tokens ... Get specific token balances

Cross-Skill Workflows

This skill is often used before swap (to verify sufficient balance) or as portfolio entry point.

Workflow A: Pre-Swap Balance Check

User: "Swap 1 SOL for BONK"

1. opentrade-token    opentrade token search BONK --chains solana               → get tokenContractAddress
       ↓ tokenContractAddress
2. opentrade-portfolio  opentrade portfolio all-balances --address <addr> --chains solana
       → verify SOL balance >= 1
       ↓ balance field (UI units) → convert to minimal units for swap
3. opentrade-dex-swap     opentrade swap quote --from 11111111111111111111111111111111 --to <BONK_address> --amount 1000000000 --chain solana
4. opentrade-dex-swap     opentrade swap swap --from ... --to <BONK_address> --amount 1000000000 --chain solana --wallet <addr>

Data handoff:

  • tokenContractAddress from token search → feeds into swap --from / --to
  • balance from portfolio is UI units; swap needs minimal units → multiply by 10^decimal
  • If balance < required amount → inform user, do NOT proceed to swap

Workflow B: Portfolio Overview + Analysis

User: "Show my portfolio"

1. opentrade-portfolio  opentrade portfolio total-value --address <addr> --chains "xlayer,solana,ethereum"
       → total USD value
2. opentrade-portfolio  opentrade portfolio all-balances --address <addr> --chains "xlayer,solana,ethereum"
       → per-token breakdown
       ↓ top holdings by USD value
3. opentrade-token    opentrade token price-info <address> --chain <chain>  → enrich with 24h change, market cap
4. opentrade-market   opentrade market kline <address> --chain <chain>      → price charts for tokens of interest

Workflow C: Sell Underperforming Tokens

1. opentrade-portfolio  opentrade portfolio all-balances --address <addr> --chains "xlayer,solana,ethereum"
       → list all holdings
       ↓ tokenContractAddress + chainIndex for each
2. opentrade-token    opentrade token price-info <address> --chain <chain>  → get priceChange24H per token
3. Filter by negative change → user confirms which to sell
4. opentrade-dex-swap     opentrade swap quote → opentrade swap swap → execute sell

Key conversion: balance (UI units) × 10^decimal = amount (minimal units) for swap.

Operation Flow

Step 1: Identify Intent

  • Check total assets → opentrade portfolio total-value
  • View all token holdings → opentrade portfolio all-balances
  • Check specific token balance → opentrade portfolio token-balances
  • Unsure which chains are supported → opentrade portfolio chains first

Step 2: Collect Parameters

  • Missing wallet address → ask user
  • Missing target chains → recommend XLayer (--chains xlayer, low gas, fast confirmation) as the default, then ask which chain the user prefers. Common set: "xlayer,solana,ethereum,base,bsc"
  • Need to filter risky tokens → set --exclude-risk 0 (only works on ETH/BSC/SOL/BASE)

Step 3: Call and Display

  • Total value: display USD amount
  • Token balances: show token name, amount (UI units), USD value
  • Sort by USD value descending

Step 4: Suggest Next Steps

After displaying results, suggest 2-3 relevant follow-up actions:

Just completed Suggest
portfolio total-value 1. View token-level breakdown → opentrade portfolio all-balances (this skill) 2. Check price trend for top holdings → opentrade-market
portfolio all-balances 1. View detailed analytics (market cap, 24h change) for a token → opentrade-token 2. Swap a token → opentrade-dex-swap 3. View price chart for a token → opentrade-market
portfolio token-balances 1. View full portfolio across all tokens → opentrade portfolio all-balances (this skill) 2. Swap this token → opentrade-dex-swap

Present conversationally, e.g.: "Would you like to see the price chart for your top holding, or swap any of these tokens?" — never expose skill names or endpoint paths to the user.

CLI Command Reference

1. opentrade portfolio chains

Get supported chains for balance queries. No parameters required.

opentrade portfolio chains

Return fields:

Field Type Description
name String Chain name (e.g., "XLayer")
logoUrl String Chain logo URL
shortName String Chain short name (e.g., "OKB")
chainIndex String Chain unique identifier (e.g., "196")

2. opentrade portfolio total-value

Get total asset value for a wallet address.

opentrade portfolio total-value --address <address> --chains <chains> [--asset-type <type>] [--exclude-risk <bool>]
Param Required Default Description
--address Yes - Wallet address
--chains Yes - Chain names or IDs, comma-separated (e.g., "xlayer,solana" or "196,501")
--asset-type No "0" 0=all, 1=tokens only, 2=DeFi only
--exclude-risk No true true=filter risky tokens, false=include. Only ETH/BSC/SOL/BASE

Return fields:

Field Type Description
totalValue String Total asset value in USD

3. opentrade portfolio all-balances

Get all token balances for a wallet address.

opentrade portfolio all-balances --address <address> --chains <chains> [--exclude-risk <value>]
Param Required Default Description
--address Yes - Wallet address
--chains Yes - Chain names or IDs, comma-separated, max 50
--exclude-risk No "0" 0=filter out risky tokens (default), 1=include. Only ETH/BSC/SOL/BASE

Return fields (per token in tokenAssets[]):

Field Type Description
chainIndex String Chain identifier
tokenContractAddress String Token contract address
symbol String Token symbol (e.g., "OKB")
balance String Token balance in UI units (e.g., "10.5")
rawBalance String Token balance in base units (e.g., "10500000000000000000")
tokenPrice String Token price in USD
isRiskToken Boolean true if flagged as risky

4. opentrade portfolio token-balances

Get specific token balances for a wallet address.

opentrade portfolio token-balances --address <address> --tokens <tokens> [--exclude-risk <value>]
Param Required Default Description
--address Yes - Wallet address
--tokens Yes - Token list: "chainIndex:tokenAddress" pairs, comma-separated. Use empty address for native token (e.g., "196:" for native OKB). Max 20 items.
--exclude-risk No "0" 0=filter out (default), 1=include

Return fields: Same schema as all-balances (tokenAssets[]).

Input / Output Examples

User says: "Check my wallet total assets on XLayer and Solana"

opentrade portfolio total-value --address 0xYourWallet --chains "xlayer,solana"
# → Display: Total assets $12,345.67

User says: "Show all tokens in my wallet"

opentrade portfolio all-balances --address 0xYourWallet --chains "xlayer,solana,ethereum"
# → Display:
#   OKB:  10.5 ($509.25)
#   USDC: 2,000 ($2,000.00)
#   USDT: 1,500 ($1,500.00)
#   ...

User says: "Only check USDC and native OKB balances on XLayer"

opentrade portfolio token-balances --address 0xYourWallet --tokens "196:,196:0x74b7f16337b8972027f6196a17a631ac6de26d22"
# → Display: OKB: 10.5 ($509.25), USDC: 2,000 ($2,000.00)

Edge Cases

  • Zero balance: valid state — display $0.00, not an error
  • Unsupported chain: call opentrade portfolio chains first to confirm
  • chains exceeds 50: split into batches, max 50 per request
  • --exclude-risk not working: only supported on ETH/BSC/SOL/BASE
  • DeFi positions: use --asset-type 2 to query DeFi holdings separately
  • Address format mismatch: EVM address on Solana chain will return empty data — do NOT mix
  • Network error: retry once, then prompt user to try again later
  • Region restriction (error code 50125 or 80001): do NOT show the raw error code to the user. Instead, display a friendly message: ⚠️ Service is not available in your region. Please switch to a supported region and try again.

Amount Display Rules

  • Token amounts in UI units (1.5 ETH), never base units (1500000000000000000)
  • USD values with 2 decimal places
  • Large amounts in shorthand ($1.2M)
  • Sort by USD value descending

Global Notes

  • --chains supports up to 50 chain IDs (comma-separated, names or numeric)
  • --asset-type: 0=all 1=tokens only 2=DeFi only (only for total-value)
  • --exclude-risk only works on ETH(1)/BSC(56)/SOL(501)/BASE(8453)
  • token-balances supports max 20 token entries
  • The CLI resolves chain names automatically (e.g., ethereum1, solana501)
  • The CLI handles authentication internally via environment variables — see Prerequisites step 4 for default values