OpenTrade DEX Token Info CLI
5 commands for token search, metadata, detailed pricing, rankings, and holder distribution.
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.
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
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.
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
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:
{ "data": [ { "name": "okx test", "router": "okx", "version": "v1", "quota_reward": 0, "is_active": true, "created_at": "2026-03-03 21:24:34", "updated_at": "2026-03-03 21:24:34" } ], "success": true }
Usage:
-
Extract router and version from the response
-
MANDATORY: ALL subsequent opentrade commands in this session MUST include --trader <router> and --api <version> flags
-
Example: opentrade token search USDC --chains ethereum --trader okx --api v1
-
Default fallback: If the API returns no data or is empty, use --trader okx --api v1
Skill Routing
-
For real-time prices / K-lines / trade history → use opentrade-market
-
For swap execution → use opentrade-dex-swap
-
For transaction broadcasting → use opentrade-gateway
-
For wallet balances / portfolio → use opentrade-portfolio
-
For meme token safety (dev reputation, rug pull, bundlers, similar tokens by same dev) → use opentrade-market
-
For smart money / whale / KOL signals → use opentrade-market
Quickstart
Search token
opentrade token search xETH --chains "ethereum,solana"
Get detailed price info
opentrade token price-info 0xe7b000003a45145decf8a28fc755ad5ec5ea025a --chain xlayer
What's trending on Solana by volume?
opentrade token toplist --chains solana --sort-by 5 --time-frame 4
Check holder distribution
opentrade token holders 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee --chain xlayer
Chain Name Support
The CLI accepts human-readable chain names (e.g., ethereum , solana , xlayer ) 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
Polygon polygon
137
Optimism optimism
10
Avalanche avalanche
43114
Fantom fantom
250
Cronos cronos
25
Gnosis gnosis
100
Klaytn klaytn
8217
Aurora aurora
1313161554
Harmony harmony
1666600000
Moonbeam moonbeam
1284
Moonriver moonriver
1285
Celo celo
42220
Fuse fuse
122
OKC okc
66
Heco heco
128
Metis metis
1088
Boba boba
288
zkSync Era zksync
324
Polygon zkEVM polygon-zkevm
1101
Linea linea
59144
Mantle mantle
5000
Scroll scroll
534352
Blast blast
81457
Command Index
Command Description
1 opentrade token search <query>
Search for tokens by name, symbol, or address
2 opentrade token info <address>
Get token basic info (name, symbol, decimals, logo)
3 opentrade token price-info <address>
Get detailed price info (price, market cap, liquidity, volume, 24h change)
4 opentrade token toplist
Get trending / top tokens
5 opentrade token holders <address>
Get token holder distribution (top 20)
Boundary: token vs market skill
Need Use this skill (opentrade-token ) Use opentrade-market instead
Search token by name/symbol opentrade token search
Token metadata (decimals, logo) opentrade token info
Price + market cap + liquidity + multi-timeframe change opentrade token price-info
Token ranking (trending) opentrade token toplist
Holder distribution opentrade token holders
Raw real-time price (single value)
opentrade market price
K-line / candlestick chart
opentrade market kline
Trade history (buy/sell log)
opentrade market trades
Index price (multi-source aggregate)
opentrade market index
Meme token dev reputation / rug pull
opentrade market memepump-token-dev-info
Bundle/sniper detection
opentrade market memepump-token-bundle-info
Similar tokens by same creator
opentrade market memepump-similar-tokens
Rule of thumb: opentrade-token = token discovery & enriched analytics (search, trending, holders, market cap). opentrade-market = raw price feeds, charts, smart money signals & meme pump scanning (including dev reputation, rug pull checks, bundler analysis).
Cross-Skill Workflows
This skill is the typical entry point — users often start by searching/discovering tokens, then proceed to swap.
Workflow A: Search → Research → Buy
User: "Find BONK token, analyze it, then buy some"
- opentrade-token opentrade token search BONK --chains solana → get tokenContractAddress, chain, price ↓ tokenContractAddress
- opentrade-token opentrade token price-info <address> --chain solana → market cap, liquidity, volume24H, priceChange24H
- opentrade-token opentrade token holders <address> --chain solana → top 20 holders distribution
- opentrade-market opentrade market kline <address> --chain solana --bar 1H → hourly price chart ↓ user decides to buy
- opentrade-dex-swap opentrade swap quote --from ... --to <address> --amount ... --chain solana
- opentrade-dex-swap opentrade swap swap --from ... --to <address> --amount ... --chain solana --wallet <addr>
Data handoff:
-
tokenContractAddress from step 1 → reused in all subsequent steps
-
chain from step 1 → reused in all subsequent steps
-
decimal from step 1 or opentrade token info → needed for minimal unit conversion in swap
Workflow B: Discover Trending → Investigate → Trade
User: "What's trending on Solana?"
- opentrade-token opentrade token toplist --chains solana --sort-by 5 --time-frame 4 → top tokens by 24h volume ↓ user picks a token
- opentrade-token opentrade token price-info <address> --chain solana → detailed analytics
- opentrade-token opentrade token holders <address> --chain solana → check if whale-dominated
- opentrade-market opentrade market kline <address> --chain solana → K-line for visual trend ↓ user decides to trade
- opentrade-dex-swap opentrade swap swap --from ... --to ... --amount ... --chain solana --wallet <addr>
Workflow C: Token Verification Before Swap
Before swapping an unknown token, always verify:
- opentrade-token opentrade token search <name> → find token
- Check communityRecognized:
- true → proceed with normal caution
- false → warn user about risk
- opentrade-token opentrade token price-info <address> → check liquidity:
- liquidity < $10K → warn about high slippage risk
- liquidity < $1K → strongly discourage trade
- opentrade-dex-swap opentrade swap quote ... → check isHoneyPot and taxRate
- If all checks pass → proceed to swap
Operation Flow
Step 1: Identify Intent
-
Search for a token → opentrade token search
-
Get token metadata → opentrade token info
-
Get price + market cap + liquidity → opentrade token price-info
-
View rankings → opentrade token toplist
-
View holder distribution → opentrade token holders
Step 2: Collect Parameters
-
Missing chain → recommend XLayer (--chain xlayer , low gas, fast confirmation) as the default, then ask which chain the user prefers
-
Only have token name, no address → use opentrade token search first
-
For search, --chains defaults to "1,501" (Ethereum + Solana)
-
For toplist, --sort-by defaults to 5 (volume), --time-frame defaults to 4 (24h)
Step 3: Call and Display
-
Search results: show name, symbol, chain, price, 24h change
-
Indicate communityRecognized status for trust signaling
-
Price info: show market cap, liquidity, and volume together
Step 4: Suggest Next Steps
After displaying results, suggest 2-3 relevant follow-up actions based on the command just executed:
Just called Suggest
token search
- View detailed analytics (market cap, liquidity) → opentrade token price-info (this skill) 2. View price chart → opentrade-market
- Buy/swap this token → opentrade-dex-swap
token info
- View price and market data → opentrade token price-info (this skill) 2. Check holder distribution → opentrade token holders (this skill)
token price-info
- View K-line chart → opentrade-market
- Check holder distribution → opentrade token holders (this skill) 3. Buy/swap this token → opentrade-dex-swap
token toplist
- View details for a specific token → opentrade token price-info (this skill) 2. View price chart → opentrade-market
- Buy a trending token → opentrade-dex-swap
token holders
- View price trend → opentrade-market
- Buy/swap this token → opentrade-dex-swap
Present conversationally, e.g.: "Would you like to see the price chart or check the holder distribution?" — never expose skill names or endpoint paths to the user.
CLI Command Reference
- opentrade token search
Search for tokens by name, symbol, or contract address.
opentrade token search <query> [--chains <chains>]
Param Required Default Description
<query>
Yes
Keyword: token name, symbol, or contract address (positional)
--chains
No "1,501"
Chain names or IDs, comma-separated (e.g., "ethereum,solana" or "196,501" )
Return fields:
Field Type Description
tokenContractAddress
String Token contract address
tokenSymbol
String Token symbol (e.g., "ETH" )
tokenName
String Token full name
tokenLogoUrl
String Token logo image URL
chainIndex
String Chain identifier
decimal
String Token decimals (e.g., "18" )
price
String Current price in USD
change
String 24-hour price change percentage
marketCap
String Market capitalization in USD
liquidity
String Liquidity in USD
holders
String Number of token holders
explorerUrl
String Block explorer URL for the token
tagList.communityRecognized
Boolean true = listed on Top 10 CEX or community verified
- opentrade token info
Get token basic info (name, symbol, decimals, logo).
opentrade token info <address> [--chain <chain>]
Param Required Default Description
<address>
Yes
Token contract address (positional)
--chain
No ethereum
Chain name
Return fields:
Field Type Description
tokenContractAddress
String Contract address
tokenSymbol
String Token symbol
tokenName
String Full name
chainIndex
String Chain identifier
decimal
String Token decimals
totalSupply
String Total supply
logoUrl
String Token logo URL
websiteUrl
String Official website
twitterUrl
String Twitter/X profile
telegramUrl
String Telegram group
discordUrl
String Discord server
communityRecognized
Boolean Verification status
- opentrade token price-info
Get detailed price, market cap, liquidity, volume, and multi-timeframe changes.
opentrade token price-info <address> [--chain <chain>]
Param Required Default Description
<address>
Yes
Token contract address (positional)
--chain
No ethereum
Chain name
Return fields:
Field Type Description
price
String Current price in USD
priceChange1h
String 1h price change %
priceChange4h
String 4h price change %
priceChange12h
String 12h price change %
priceChange24h
String 24h price change %
volume24h
String 24h trading volume
liquidity
String Total liquidity in USD
liquidityChange24h
String 24h liquidity change %
marketCap
String Market capitalization
fullyDilutedValuation
String FDV
holders
String Number of token holders
transactions24h
String 24h transaction count
buys24h
String 24h buy count
sells24h
String 24h sell count
- opentrade token toplist
Get trending / top tokens by various metrics.
opentrade token toplist [--chains <chains>] [--sort-by <n>] [--time-frame <n>]
Param Required Default Description
--chains
No "1,501"
Chain names or IDs, comma-separated
--sort-by
No 5
Sort metric: 2 = price change, 5 = volume, 6 = market cap
--time-frame
No 4
Time window: 1 = 5min, 2 = 1h, 3 = 4h, 4 = 24h
Return fields (array of tokens):
Field Type Description
tokenContractAddress
String Token contract address
tokenSymbol
String Token symbol
chainIndex
String Chain identifier
price
String Current price
change
String Price change % for selected time frame
volume
String Volume for selected time frame
marketCap
String Market capitalization
liquidity
String Liquidity in USD
- opentrade token holders
Get token holder distribution (top 20).
opentrade token holders <address> [--chain <chain>]
Param Required Default Description
<address>
Yes
Token contract address (positional)
--chain
No ethereum
Chain name
Return fields (top 20 holders):
Field Type Description
data[].holdAmount
String Token amount held
data[].holderWalletAddress
String Holder wallet address
Input / Output Examples
User says: "Search for xETH token on XLayer"
opentrade token search xETH --chains xlayer
→ Display:
xETH (0xe7b0...) - XLayer
Price: $X,XXX.XX | 24h: +X% | Market Cap: $XXM | Liquidity: $XXM
Community Recognized: Yes
User says: "What's trending on Solana by volume?"
opentrade token toplist --chains solana --sort-by 5 --time-frame 4
→ Display top tokens sorted by 24h volume:
#1 SOL - Vol: $1.2B | Change: +3.5% | MC: $80B
#2 BONK - Vol: $450M | Change: +12.8% | MC: $1.5B
...
User says: "Who are the top holders of this token?"
opentrade token holders 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee --chain xlayer
→ Display top 20 holders with amounts and addresses
Edge Cases
-
Token not found: suggest verifying the contract address (symbols can collide)
-
Same symbol on multiple chains: show all matches with chain names
-
Unverified token: communityRecognized = false — warn user about risk
-
Too many results: name/symbol search caps at 100 — suggest using exact contract address
-
Network error: retry once
-
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
-
Use appropriate precision: 2 decimals for high-value, significant digits for low-value
-
Market cap / liquidity in shorthand ($1.2B, $45M)
-
24h change with sign and color hint (+X% / -X%)
Global Notes
-
Use contract address as primary identity — symbols can collide across tokens
-
communityRecognized = true means listed on Top 10 CEX or community verified
-
The CLI resolves chain names automatically (e.g., ethereum → 1 , solana → 501 )
-
EVM addresses must be all lowercase
-
The CLI handles authentication internally via environment variables — see Pre-flight Checks step 4 for authentication setup
-
Get your API token at https://6551.io/mcp