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
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
. If not found, install it:
bash
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
and compare it with the current timestamp:
bash
cached_ts=$(cat ~/.opentrade/last_check 2>/dev/null || true)
now=$(date +%s)
- If 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:
bash
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
command fails with an unexpected error during this
session, try reinstalling before giving up:
bash
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.
bash
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:
Response format:
json
{
"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 and from the response
- MANDATORY: ALL subsequent commands in this session MUST include and flags
- Example:
opentrade token search USDC --chains ethereum --trader okx --api v1
- Default fallback: If the API returns no data or is empty, use
Skill Routing
- For real-time prices / K-lines / trade history → use
- For swap execution → use
- For transaction broadcasting → use
- For wallet balances / portfolio → use
- For meme token safety (dev reputation, rug pull, bundlers, similar tokens by same dev) → use
- For smart money / whale / KOL signals → use
Quickstart
bash
# 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.,
,
,
) and resolves them automatically.
| Chain | Name | chainIndex |
|---|
| XLayer | | |
| Solana | | |
| Ethereum | | |
| Base | | |
| BSC | | |
| Arbitrum | | |
| Polygon | | |
| Optimism | | |
| Avalanche | | |
| Fantom | | |
| Cronos | | |
| Gnosis | | |
| Klaytn | | |
| Aurora | | |
| Harmony | | |
| Moonbeam | | |
| Moonriver | | |
| Celo | | |
| Fuse | | |
| OKC | | |
| Heco | | |
| Metis | | |
| Boba | | |
| zkSync Era | | |
| Polygon zkEVM | | |
| Linea | | |
| Mantle | | |
| Scroll | | |
| Blast | | |
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 | | Get trending / top tokens |
| 5 | opentrade token holders <address>
| Get token holder distribution (top 20) |
Boundary: token vs market skill
| Need | Use this skill () | Use instead |
|---|
| Search token by name/symbol | | - |
| Token metadata (decimals, logo) | | - |
| Price + market cap + liquidity + multi-timeframe change | opentrade token price-info
| - |
| Token ranking (trending) | | - |
| Holder distribution | | - |
| Raw real-time price (single value) | - | |
| K-line / candlestick chart | - | |
| Trade history (buy/sell log) | - | |
| Index price (multi-source aggregate) | - | |
| 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:
= token discovery & enriched analytics (search, trending, holders, market cap).
= 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"
1. opentrade-token opentrade token search BONK --chains solana → get tokenContractAddress, chain, price
↓ tokenContractAddress
2. opentrade-token opentrade token price-info <address> --chain solana → market cap, liquidity, volume24H, priceChange24H
3. opentrade-token opentrade token holders <address> --chain solana → top 20 holders distribution
4. opentrade-market opentrade market kline <address> --chain solana --bar 1H → hourly price chart
↓ user decides to buy
5. opentrade-dex-swap opentrade swap quote --from ... --to <address> --amount ... --chain solana
6. opentrade-dex-swap opentrade swap swap --from ... --to <address> --amount ... --chain solana --wallet <addr>
Data handoff:
- from step 1 → reused in all subsequent steps
- from step 1 → reused in all subsequent steps
- from step 1 or → needed for minimal unit conversion in swap
Workflow B: Discover Trending → Investigate → Trade
User: "What's trending on Solana?"
1. opentrade-token opentrade token toplist --chains solana --sort-by 5 --time-frame 4 → top tokens by 24h volume
↓ user picks a token
2. opentrade-token opentrade token price-info <address> --chain solana → detailed analytics
3. opentrade-token opentrade token holders <address> --chain solana → check if whale-dominated
4. opentrade-market opentrade market kline <address> --chain solana → K-line for visual trend
↓ user decides to trade
5. 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:
1. opentrade-token opentrade token search <name> → find token
2. Check communityRecognized:
- true → proceed with normal caution
- false → warn user about risk
3. opentrade-token opentrade token price-info <address> → check liquidity:
- liquidity < $10K → warn about high slippage risk
- liquidity < $1K → strongly discourage trade
4. opentrade-dex-swap opentrade swap quote ... → check isHoneyPot and taxRate
5. If all checks pass → proceed to swap
Operation Flow
Step 1: Identify Intent
- Search for a token →
- Get token metadata →
- Get price + market cap + liquidity →
opentrade token price-info
- View rankings →
- View holder distribution →
Step 2: Collect Parameters
- Missing chain → recommend XLayer (, low gas, fast confirmation) as the default, then ask which chain the user prefers
- Only have token name, no address → use first
- For search, defaults to (Ethereum + Solana)
- For toplist, defaults to (volume), defaults to (24h)
Step 3: Call and Display
- Search results: show name, symbol, chain, price, 24h change
- Indicate 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 |
|---|
| 1. View detailed analytics (market cap, liquidity) → opentrade token price-info
(this skill) 2. View price chart → 3. Buy/swap this token → |
| 1. View price and market data → opentrade token price-info
(this skill) 2. Check holder distribution → (this skill) |
| 1. View K-line chart → 2. Check holder distribution → (this skill) 3. Buy/swap this token → |
| 1. View details for a specific token → opentrade token price-info
(this skill) 2. View price chart → 3. Buy a trending token → |
| 1. View price trend → 2. Buy/swap this token → |
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
1. opentrade token search
Search for tokens by name, symbol, or contract address.
bash
opentrade token search <query> [--chains <chains>]
| Param | Required | Default | Description |
|---|
| Yes | - | Keyword: token name, symbol, or contract address (positional) |
| No | | Chain names or IDs, comma-separated (e.g., or ) |
Return fields:
| Field | Type | Description |
|---|
| String | Token contract address |
| String | Token symbol (e.g., ) |
| String | Token full name |
| String | Token logo image URL |
| String | Chain identifier |
| String | Token decimals (e.g., ) |
| String | Current price in USD |
| String | 24-hour price change percentage |
| String | Market capitalization in USD |
| String | Liquidity in USD |
| String | Number of token holders |
| String | Block explorer URL for the token |
tagList.communityRecognized
| Boolean | = listed on Top 10 CEX or community verified |
2. opentrade token info
Get token basic info (name, symbol, decimals, logo).
bash
opentrade token info <address> [--chain <chain>]
| Param | Required | Default | Description |
|---|
| Yes | - | Token contract address (positional) |
| No | | Chain name |
Return fields:
| Field | Type | Description |
|---|
| String | Contract address |
| String | Token symbol |
| String | Full name |
| String | Chain identifier |
| String | Token decimals |
| String | Total supply |
| String | Token logo URL |
| String | Official website |
| String | Twitter/X profile |
| String | Telegram group |
| String | Discord server |
| Boolean | Verification status |
3. opentrade token price-info
Get detailed price, market cap, liquidity, volume, and multi-timeframe changes.
bash
opentrade token price-info <address> [--chain <chain>]
| Param | Required | Default | Description |
|---|
| Yes | - | Token contract address (positional) |
| No | | Chain name |
Return fields:
| Field | Type | Description |
|---|
| String | Current price in USD |
| String | 1h price change % |
| String | 4h price change % |
| String | 12h price change % |
| String | 24h price change % |
| String | 24h trading volume |
| String | Total liquidity in USD |
| String | 24h liquidity change % |
| String | Market capitalization |
| String | FDV |
| String | Number of token holders |
| String | 24h transaction count |
| String | 24h buy count |
| String | 24h sell count |
4. opentrade token toplist
Get trending / top tokens by various metrics.
bash
opentrade token toplist [--chains <chains>] [--sort-by <n>] [--time-frame <n>]
| Param | Required | Default | Description |
|---|
| No | | Chain names or IDs, comma-separated |
| No | | Sort metric: = price change, = volume, = market cap |
| No | | Time window: = 5min, = 1h, = 4h, = 24h |
Return fields (array of tokens):
| Field | Type | Description |
|---|
| String | Token contract address |
| String | Token symbol |
| String | Chain identifier |
| String | Current price |
| String | Price change % for selected time frame |
| String | Volume for selected time frame |
| String | Market capitalization |
| String | Liquidity in USD |
5. opentrade token holders
Get token holder distribution (top 20).
bash
opentrade token holders <address> [--chain <chain>]
| Param | Required | Default | Description |
|---|
| Yes | - | Token contract address (positional) |
| No | | Chain name |
Return fields (top 20 holders):
| Field | Type | Description |
|---|
| String | Token amount held |
data[].holderWalletAddress
| String | Holder wallet address |
Input / Output Examples
User says: "Search for xETH token on XLayer"
bash
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?"
bash
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?"
bash
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., → , → )
- 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