okx-wallet-portfolio

安装量: 2.5K
排名: #802

安装

npx skills add https://github.com/okx/onchainos-skills --skill okx-wallet-portfolio
OKX 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
onchainos
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.
Confirm installed
Run
which onchainos
. If not found, install it:
curl
-sSL
https://raw.githubusercontent.com/okx/onchainos-skills/main/install.sh
|
sh
If the install script fails, ask the user to install manually following the instructions at:
https://github.com/okx/onchainos-skills
Check for updates
Read ~/.onchainos/last_check and compare it with the current timestamp: cached_ts = $( cat ~/.onchainos/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/okx/onchainos-skills/main/install.sh | sh If a newer version is installed, tell the user and suggest updating their onchainos skills from https://github.com/okx/onchainos-skills to get the latest features. If any onchainos command fails with an unexpected error during this session, try reinstalling before giving up: curl -sSL https://raw.githubusercontent.com/okx/onchainos-skills/main/install.sh | sh Create a .env file in the project root to override the default API credentials (optional — skip this for quick start): OKX_API_KEY= OKX_SECRET_KEY= OKX_PASSPHRASE= Skill Routing For token prices / K-lines → use okx-dex-market For token search / metadata → use okx-dex-token For swap execution → use okx-dex-swap For transaction broadcasting → use okx-onchain-gateway Quickstart

Get supported chains for balance queries

onchainos portfolio chains

Get total asset value on XLayer and Solana

onchainos portfolio total-value --address 0xYourWallet --chains "xlayer,solana"

Get all token balances

onchainos portfolio all-balances --address 0xYourWallet --chains "xlayer,solana,ethereum"

Check specific tokens (native OKB + USDC on XLayer)

onchainos 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
onchainos portfolio chains
Get supported chains for balance queries
2
onchainos portfolio total-value --address ... --chains ...
Get total asset value for a wallet
3
onchainos portfolio all-balances --address ... --chains ...
Get all token balances for a wallet
4
onchainos 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. okx-dex-token onchainos token search BONK --chains solana → get tokenContractAddress
↓ tokenContractAddress
2. okx-wallet-portfolio onchainos portfolio all-balances --address --chains solana
→ verify SOL balance >= 1
↓ balance field (UI units) → convert to minimal units for swap
3. okx-dex-swap onchainos swap quote --from 11111111111111111111111111111111 --to --amount 1000000000 --chain solana
4. okx-dex-swap onchainos swap swap --from ... --to --amount 1000000000 --chain solana --wallet
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. okx-wallet-portfolio onchainos portfolio total-value --address --chains "xlayer,solana,ethereum"
→ total USD value
2. okx-wallet-portfolio onchainos portfolio all-balances --address --chains "xlayer,solana,ethereum"
→ per-token breakdown
↓ top holdings by USD value
3. okx-dex-token onchainos token price-info
--chain → enrich with 24h change, market cap
4. okx-dex-market onchainos market kline
--chain → price charts for tokens of interest
Workflow C: Sell Underperforming Tokens
1. okx-wallet-portfolio onchainos portfolio all-balances --address --chains "xlayer,solana,ethereum"
→ list all holdings
↓ tokenContractAddress + chainIndex for each
2. okx-dex-token onchainos token price-info
--chain → get priceChange24H per token
3. Filter by negative change → user confirms which to sell
4. okx-dex-swap onchainos swap quote → onchainos 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 →
onchainos portfolio total-value
View all token holdings →
onchainos portfolio all-balances
Check specific token balance →
onchainos portfolio token-balances
Unsure which chains are supported →
onchainos 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 →
onchainos portfolio all-balances
(this skill) 2. Check price trend for top holdings →
okx-dex-market
portfolio all-balances
1. View detailed analytics (market cap, 24h change) for a token →
okx-dex-token
2. Swap a token →
okx-dex-swap
3. View price chart for a token →
okx-dex-market
portfolio token-balances
1. View full portfolio across all tokens →
onchainos portfolio all-balances
(this skill) 2. Swap this token →
okx-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. onchainos portfolio chains
Get supported chains for balance queries. No parameters required.
onchainos 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. onchainos portfolio total-value
Get total asset value for a wallet address.
onchainos 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. onchainos portfolio all-balances
Get all token balances for a wallet address.
onchainos 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. onchainos portfolio token-balances
Get specific token balances for a wallet address.
onchainos 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" onchainos portfolio total-value --address 0xYourWallet --chains "xlayer,solana"

→ Display: Total assets $12,345.67

User says: "Show all tokens in my wallet" onchainos 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" onchainos 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
onchainos 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., ethereum → 1 , solana → 501 ) The CLI handles authentication internally via environment variables — see Prerequisites step 4 for default values
返回排行榜