| name | opentrade-token |
| description | Use for token discovery and token analytics: search tokens by name, symbol, or contract address; look up PEPE or other tokens; find trending tokens, top tokens, token rankings, token metadata, token info, token market cap, liquidity, volume, price-info, holder distribution, holders, and token research across XLayer, Solana, Ethereum, Base, BSC, Arbitrum, Polygon, and other chains. Trigger on find/search/look up token, what's trending, top tokens, holder analysis, who holds this token, token liquidity, or research a token. For simple price, K-line/chart, or public on-chain trade logs use opentrade-market. For personal holdings, orders, positions, or trade history use opentrade-cex first, then fall back to DEX/on-chain skills only if CEX has no relevant data. Do not trigger for a lone generic word like tokens or crypto, or for meme safety/rug/bundle/sniper checks. |
| license | Apache-2.0 |
| metadata | {"author":6551,"version":"1.0.2","homepage":"https://www.newsliquid.com"} |
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 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.
OPENNEWS_TOKEN=your_token_here
Get your API token at: https://www.newsliquid.com/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 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 / public on-chain token trade logs → use
opentrade-market
- For personal holdings, positions, orders, or trade history → use
opentrade-cex first; only then fall back to DEX/on-chain skills when CEX has no relevant data
- 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
opentrade token search xETH --chains "ethereum,solana"
opentrade token price-info 0xe7b000003a45145decf8a28fc755ad5ec5ea025a --chain xlayer
opentrade token toplist --chains solana --sort-by 5 --time-frame 4
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"
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:
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?"
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 →
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 | 1. View detailed analytics (market cap, liquidity) → opentrade token price-info (this skill) 2. View price chart → opentrade-market 3. Buy/swap this token → opentrade-dex-swap |
token info | 1. View price and market data → opentrade token price-info (this skill) 2. Check holder distribution → opentrade token holders (this skill) |
token price-info | 1. View K-line chart → opentrade-market 2. Check holder distribution → opentrade token holders (this skill) 3. Buy/swap this token → opentrade-dex-swap |
token toplist | 1. View details for a specific token → opentrade token price-info (this skill) 2. View price chart → opentrade-market 3. Buy a trending token → opentrade-dex-swap |
token holders | 1. View price trend → opentrade-market 2. 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
1. 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 |
2. 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 |
3. 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 |
4. 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 |
5. 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
User says: "What's trending on Solana by volume?"
opentrade token toplist --chains solana --sort-by 5 --time-frame 4
User says: "Who are the top holders of this token?"
opentrade token holders 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee --chain xlayer
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://www.newsliquid.com/mcp