Back to skills
extension
Category: Development & EngineeringNo API key required

opentrade-market

Use this skill when users want live on-chain market data: token prices, price charts (K-line, OHLC), trade history, swap activity. Also, it covers on-chain signals — smart money, whale, and KOL wallet activity, large trades, and signal-supported chains. For meme tokens: scanning new launches, checking dev wallets, developer reputation, rug pull detection, rug pull history, tokens by same creator, detecting bundles or snipers, bonding curves %, flagging suspicious launches, and meme token safety checks. For token search, market cap, liquidity, trending tokens, or holder distribution, use opentrade-token instead.

personAuthor: jakexiaohubgithub

OpenTrade DEX Market Data CLI

14 commands for on-chain prices, trades, candlesticks, index prices, smart money signals, and meme pump token scanning.

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 market price 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 search / metadata / rankings / holder analysis → use opentrade-token
  • For swap execution → use opentrade-dex-swap
  • For transaction broadcasting → use opentrade-transaction
  • For wallet balances / portfolio → use opentrade-portfolio
  • Signal data (smart money / whale / KOL buy signals, signal-supported chains) → use opentrade-market
  • Meme pump scanning (token lists, dev info, bundle detection, aped wallets) → use opentrade-market
  • Meme token safety (rug pull check, dev reputation, bundler/sniper analysis, similar tokens by same dev) → use opentrade-market

Quickstart

# Get real-time price of OKB on XLayer
opentrade market price 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee --chain xlayer

# Get hourly candles
opentrade market kline 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee --chain xlayer --bar 1H --limit 24

# Solana SOL candles (use wSOL SPL token address for candles/trades)
opentrade market kline So11111111111111111111111111111111111111112 --chain solana --bar 1H --limit 24

# Get batch prices for multiple tokens
opentrade market prices "1:0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee,501:So11111111111111111111111111111111111111112"

# Get smart money signals on Solana
opentrade market signal-list solana --wallet-type "1,2,3" --min-amount-usd 1000

# Get supported chains and protocols for meme pump
opentrade market memepump-chains

# List new meme pump tokens on Solana
opentrade market memepump-tokens solana --stage NEW

# Get meme pump token details
opentrade market memepump-token-details <address> --chain solana

# Check developer reputation for a meme token
opentrade market memepump-token-dev-info <address> --chain solana

Chain Name Support

The CLI accepts human-readable chain names (e.g., ethereum, solana, xlayer) and resolves them automatically. You can also use --chain with numeric chain indices (e.g., 1, 501, 196).

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

Command Index

Market Price Commands

| # | Command | Description | |---|---|---| | 1 | opentrade market price <address> | Get single token price | | 2 | opentrade market prices <tokens> | Batch price query | | 3 | opentrade market trades <address> | Get recent trades | | 4 | opentrade market kline <address> | Get K-line / candlestick data |

Index Price Commands

| # | Command | Description | |---|---|---| | 5 | opentrade market index <address> | Get index price (aggregated from multiple sources) |

Signal Commands

| # | Command | Description | |---|---|---| | 6 | opentrade market signal-chains | Get supported chains for market signals | | 7 | opentrade market signal-list <chain> | Get latest signal list (smart money / KOL / whale activity) |

Meme Pump Commands

| # | Command | Description | |---|---|---| | 8 | opentrade market memepump-chains | Get supported chains and protocols for meme pump | | 9 | opentrade market memepump-tokens <chain> | List meme pump tokens with advanced filtering | | 10 | opentrade market memepump-token-details <address> | Get detailed info for a single meme pump token | | 11 | opentrade market memepump-token-dev-info <address> | Get developer analysis and holding info | | 12 | opentrade market memepump-similar-tokens <address> | Find similar tokens by same creator | | 13 | opentrade market memepump-token-bundle-info <address> | Get bundle/sniper analysis | | 14 | opentrade market memepump-aped-wallet <address> | Get aped (same-car) wallet list |

Boundary: market vs token skill

| Need | Use this skill (opentrade-market) | Use opentrade-token instead | |---|---|---| | Real-time price (single value) | opentrade market price | - | | Price + market cap + liquidity + 24h change | - | opentrade token price-info | | K-line / candlestick chart | opentrade market kline | - | | Trade history (buy/sell log) | opentrade market trades | - | | Index price (multi-source aggregate) | opentrade market index | - | | Token search by name/symbol | - | opentrade token search | | Token metadata (decimals, logo) | - | opentrade token info | | Token ranking (toplist) | - | opentrade token toplist | | Holder distribution | - | opentrade token holders | | Smart money / whale / KOL signals | opentrade market signal-list | - | | Signal-supported chains | opentrade market signal-chains | - | | Browse meme pump tokens by stage | opentrade market memepump-tokens | - | | Meme token audit (top10, dev, insiders) | opentrade market memepump-token-details | - | | Developer reputation / rug pull history | opentrade market memepump-token-dev-info | - | | Similar tokens by same creator | opentrade market memepump-similar-tokens | - | | Bundle/sniper detection | opentrade market memepump-token-bundle-info | - | | Aped (same-car) wallet analysis | opentrade market memepump-aped-wallet | - |

Rule of thumb: opentrade-market = raw price feeds, charts, smart money signals & meme pump scanning (including dev reputation, rug pull checks, bundler analysis). opentrade-token = token discovery & enriched analytics (search, toplist, holders, market cap).

Cross-Skill Workflows

Workflow A: Research Token Before Buying

User: "Tell me about BONK, show me the chart, then buy if it looks good"

1. opentrade-token    opentrade token search BONK --chains solana            → get tokenContractAddress + chain
2. opentrade-token    opentrade token price-info <address> --chain solana    → market cap, liquidity, 24h volume
3. opentrade-token    opentrade token holders <address> --chain solana       → check holder distribution
4. opentrade-market   opentrade market kline <address> --chain solana        → K-line chart for visual trend
       ↓ user decides to buy
5. opentrade-dex-swap     opentrade swap quote --from ... --to ... --amount ... --chain solana
6. opentrade-dex-swap     opentrade swap swap --from ... --to ... --amount ... --chain solana --wallet <addr>

Data handoff: tokenContractAddress from step 1 is reused as <address> in steps 2-6.

Workflow B: Price Monitoring / Alerts

1. opentrade-token    opentrade token toplist --chains solana --sort-by 5   → find trending tokens by volume
       ↓ select tokens of interest
2. opentrade-market   opentrade market price <address> --chain solana        → get current price for each
3. opentrade-market   opentrade market kline <address> --chain solana --bar 1H  → hourly chart
4. opentrade-market   opentrade market index <address> --chain solana        → compare on-chain vs index price

Workflow C: Signal-Driven Token Research & Buy

User: "Show me what smart money is buying on Solana and buy if it looks good"

1. opentrade-market   opentrade market signal-chains                         → confirm Solana supports signals
2. opentrade-market   opentrade market signal-list solana --wallet-type "1,2,3"
                                                                          → get latest smart money / whale / KOL buy signals
                                                                          → extracts token address, price, walletType, triggerWalletCount
       ↓ user picks a token from signal list
3. opentrade-token    opentrade token price-info <address> --chain solana    → enrich: market cap, liquidity, 24h volume
4. opentrade-token    opentrade token holders <address> --chain solana       → check holder concentration risk
5. opentrade-market   opentrade market kline <address> --chain solana        → K-line chart to confirm momentum
       ↓ user decides to buy
6. opentrade-dex-swap     opentrade swap quote --from ... --to <address> --amount ... --chain solana
7. opentrade-dex-swap     opentrade swap swap --from ... --to <address> --amount ... --chain solana --wallet <addr>

Data handoff: token.tokenAddress from step 2 feeds directly into steps 3–7.

Workflow D: Meme Token Discovery & Analysis

User: "Show me new meme tokens on Solana and check if any look safe"

1. opentrade-market   opentrade market memepump-chains                          → discover supported chains & protocols
2. opentrade-market   opentrade market memepump-tokens solana --stage NEW       → browse new tokens
       ↓ pick an interesting token
3. opentrade-market   opentrade market memepump-token-details <address> --chain solana  → full token detail + audit tags
4. opentrade-market   opentrade market memepump-token-dev-info <address> --chain solana → check dev reputation (rug pulls, migrations)
5. opentrade-market   opentrade market memepump-token-bundle-info <address> --chain solana → check for bundlers/snipers
6. opentrade-market   opentrade market kline <address> --chain solana           → view price chart
       ↓ user decides to buy
7. opentrade-dex-swap     opentrade swap quote --from ... --to <address> --amount ... --chain solana
8. opentrade-dex-swap     opentrade swap swap --from ... --to <address> --amount ... --chain solana --wallet <addr>

Data handoff: tokenAddress from step 2 is reused as <address> in steps 3–8.

Workflow E: Meme Token Due Diligence

User: "Check if this meme token is safe before I buy"

1. opentrade-market   opentrade market memepump-token-details <address> --chain solana   → basic info + audit tags
2. opentrade-market   opentrade market memepump-token-dev-info <address> --chain solana  → dev history + holding
3. opentrade-market   opentrade market memepump-similar-tokens <address> --chain solana  → other tokens by same dev
4. opentrade-market   opentrade market memepump-token-bundle-info <address> --chain solana → bundler analysis
5. opentrade-market   opentrade market memepump-aped-wallet <address> --chain solana     → who else is holding

User: "Filter signals to only show whale buys above $10k"

1. opentrade-market   opentrade market signal-list ethereum --wallet-type 3 --min-amount-usd 10000
                                                                          → whale-only signals on Ethereum, min $10k
2. opentrade-market   opentrade market kline <address> --chain ethereum      → chart for chosen token

Operation Flow

Step 1: Identify Intent

  • Real-time price (single token) → opentrade market price
  • Trade history → opentrade market trades
  • K-line chart → opentrade market kline
  • Index price (current) → opentrade market index
  • Smart money / whale / KOL buy signals → opentrade market signal-list
  • Chains supporting signals → opentrade market signal-chains
  • Discover meme pump supported chains/protocols → opentrade market memepump-chains
  • Browse/filter meme tokens by stage → opentrade market memepump-tokens
  • Deep-dive into a specific meme token → opentrade market memepump-token-details
  • Check meme token developer reputation → opentrade market memepump-token-dev-info
  • Find similar tokens by same creator → opentrade market memepump-similar-tokens
  • Analyze bundler/sniper activity → opentrade market memepump-token-bundle-info
  • View aped (same-car) wallet holdings → opentrade market memepump-aped-wallet

Step 2: Collect Parameters

  • Missing chain → recommend XLayer (--chain xlayer, low gas, fast confirmation) as the default, then ask which chain the user prefers; for signal queries, first call opentrade market signal-chains to confirm the chain is supported; for meme pump queries, default to Solana (--chain solana)
  • Missing token address → use opentrade-token opentrade token search first to resolve; for signal queries, --token-address is optional (omit to get all signals on the chain); for meme pump, use opentrade market memepump-tokens first to discover tokens
  • Missing --stage for memepump-tokens → ask user which stage (NEW / MIGRATING / MIGRATED)
  • K-line requests → confirm bar size and time range with user
  • Signal filter params (--wallet-type, --min-amount-usd, etc.) → ask user for preferences if not specified; default to no filter (returns all signal types)

Step 3: Call and Display

  • Call directly, return formatted results
  • Use appropriate precision: 2 decimals for high-value tokens, significant digits for low-value
  • Show USD value alongside

Step 4: Suggest Next Steps

After displaying results, suggest 2-3 relevant follow-up actions based on the command just executed:

| Just called | Suggest | |---|---| | market price | 1. View K-line chart → opentrade market kline (this skill) 2. Deeper analytics (market cap, liquidity, 24h volume) → opentrade-token 3. Buy/swap this token → opentrade-dex-swap | | market kline | 1. Check recent trades → opentrade market trades (this skill) 2. Buy/swap based on the chart → opentrade-dex-swap | | market trades | 1. View price chart for context → opentrade market kline (this skill) 2. Execute a trade → opentrade-dex-swap | | market index | 1. Compare with on-chain DEX price → opentrade market price (this skill) 2. View full price chart → opentrade market kline (this skill) | | market signal-list | 1. View price chart for a signal token → opentrade market kline (this skill) 2. Deep token analytics (market cap, liquidity) → opentrade-token 3. Buy the token → opentrade-dex-swap | | market signal-chains | 1. Fetch signals on a supported chain → opentrade market signal-list (this skill) | | market memepump-chains | 1. Browse tokens → opentrade market memepump-tokens (this skill) | | market memepump-tokens | 1. Pick a token for details → opentrade market memepump-token-details (this skill) 2. Check dev → opentrade market memepump-token-dev-info (this skill) | | market memepump-token-details | 1. Dev analysis → opentrade market memepump-token-dev-info (this skill) 2. Similar tokens → opentrade market memepump-similar-tokens (this skill) 3. Bundle check → opentrade market memepump-token-bundle-info (this skill) | | market memepump-token-dev-info | 1. Check bundle activity → opentrade market memepump-token-bundle-info (this skill) 2. View price chart → opentrade market kline (this skill) | | market memepump-similar-tokens | 1. Compare with details → opentrade market memepump-token-details (this skill) | | market memepump-token-bundle-info | 1. Check aped wallets → opentrade market memepump-aped-wallet (this skill) | | market memepump-aped-wallet | 1. View price chart → opentrade market kline (this skill) 2. Buy the token → opentrade-dex-swap |

Present conversationally, e.g.: "Would you like to see the K-line chart, or buy this token?" — never expose skill names or endpoint paths to the user.

CLI Command Reference

1. opentrade market price

Get single token price.

opentrade market price <address> [--chain <chain>]

| Param | Required | Default | Description | |---|---|---|---| | <address> | Yes | - | Token contract address (positional) | | --chain | No | ethereum | Chain name (e.g., ethereum, solana, xlayer) |

Return fields:

| Field | Type | Description | |---|---|---| | chainIndex | String | Chain identifier | | tokenContractAddress | String | Token contract address | | time | String | Timestamp (Unix milliseconds) | | price | String | Current price in USD |

2. opentrade market prices

Batch price query for multiple tokens.

opentrade market prices <tokens> [--chain <chain>]

| Param | Required | Default | Description | |---|---|---|---| | <tokens> | Yes | - | Comma-separated tokens. Format: chainIndex:address pairs (e.g., "1:0xeee...,501:So111...") or plain addresses with --chain | | --chain | No | ethereum | Default chain for tokens without explicit chainIndex prefix |

Return fields (per token):

| Field | Type | Description | |---|---|---| | chainIndex | String | Chain identifier | | tokenContractAddress | String | Token contract address | | time | String | Timestamp (Unix milliseconds) | | price | String | Current price in USD |

3. opentrade market kline

Get K-line / candlestick data.

opentrade market kline <address> [--bar <bar>] [--limit <n>] [--chain <chain>]

| Param | Required | Default | Description | |---|---|---|---| | <address> | Yes | - | Token contract address | | --bar | No | 1H | Bar size: 1s, 1m, 5m, 15m, 30m, 1H, 4H, 1D, 1W, etc. | | --limit | No | 100 | Number of data points (max 299) | | --chain | No | ethereum | Chain name |

Return fields: Each data point is an array with the following elements:

| Index | Field | Type | Description | |---|---|---|---| | 0 | ts | String | Timestamp (Unix milliseconds) | | 1 | open | String | Opening price | | 2 | high | String | Highest price | | 3 | low | String | Lowest price | | 4 | close | String | Closing price | | 5 | vol | String | Trading volume (token units) | | 6 | volUsd | String | Trading volume (USD) | | 7 | confirm | String | "0" = uncompleted candle, "1" = completed candle |

4. opentrade market trades

Get recent trades.

opentrade market trades <address> [--chain <chain>] [--limit <n>]

| Param | Required | Default | Description | |---|---|---|---| | <address> | Yes | - | Token contract address | | --chain | No | ethereum | Chain name | | --limit | No | 100 | Number of trades (max 500) |

Return fields:

| Field | Type | Description | |---|---|---| | id | String | Trade ID | | type | String | Trade direction: buy or sell | | price | String | Trade price in USD | | volume | String | Trade volume in USD | | time | String | Trade timestamp (Unix milliseconds) | | dexName | String | DEX name where trade occurred | | txHashUrl | String | Transaction hash explorer URL | | userAddress | String | Wallet address of the trader | | changedTokenInfo[] | Array | Token change details for the trade | | changedTokenInfo[].tokenSymbol | String | Token symbol | | changedTokenInfo[].tokenContractAddress | String | Token contract address | | changedTokenInfo[].tokenAmount | String | Token amount changed |

5. opentrade market index

Get index price (aggregated from multiple sources).

opentrade market index <address> [--chain <chain>]

| Param | Required | Default | Description | |---|---|---|---| | <address> | Yes | - | Token contract address (empty string "" for native token) | | --chain | No | ethereum | Chain name |

Return fields:

| Field | Type | Description | |---|---|---| | chainIndex | String | Chain identifier | | tokenContractAddress | String | Token contract address | | price | String | Index price (aggregated from multiple sources) | | time | String | Timestamp (Unix milliseconds) |

6. opentrade market signal-chains

Get supported chains for market signals. No parameters required.

opentrade market signal-chains

Return fields:

| Field | Type | Description | |---|---|---| | chainIndex | String | Chain identifier (e.g., "1", "501") | | chainName | String | Human-readable chain name (e.g., "Ethereum", "Solana") | | chainLogo | String | Chain logo image URL |

Call this first when a user wants signal data and you need to confirm chain support before calling opentrade market signal-list.

7. opentrade market signal-list

Get latest buy-direction token signals sorted descending by time.

opentrade market signal-list <chain> [options]

| Param | Required | Default | Description | |---|---|---|---| | <chain> | Yes | - | Chain name (e.g., ethereum, solana, base) (positional) | | --wallet-type | No | all types | Wallet classification, comma-separated: 1=Smart Money, 2=KOL/Influencer, 3=Whale (e.g., "1,2") | | --min-amount-usd | No | - | Minimum transaction amount in USD | | --max-amount-usd | No | - | Maximum transaction amount in USD | | --min-address-count | No | - | Minimum triggering wallet address count | | --max-address-count | No | - | Maximum triggering wallet address count | | --token-address | No | - | Token contract address (filter signals for a specific token) | | --min-market-cap-usd | No | - | Minimum token market cap in USD | | --max-market-cap-usd | No | - | Maximum token market cap in USD | | --min-liquidity-usd | No | - | Minimum token liquidity in USD | | --max-liquidity-usd | No | - | Maximum token liquidity in USD |

Return fields:

| Field | Type | Description | |---|---|---| | timestamp | String | Signal timestamp (Unix milliseconds) | | chainIndex | String | Chain identifier | | price | String | Token price at signal time (USD) | | walletType | String | Wallet classification: SMART_MONEY, WHALE, or INFLUENCER | | triggerWalletCount | String | Number of wallets that triggered this signal | | triggerWalletAddress | String | Comma-separated wallet addresses that triggered the signal | | amountUsd | String | Total transaction amount in USD | | soldRatioPercent | String | Percentage of tokens sold (lower = still holding) | | token.tokenAddress | String | Token contract address | | token.symbol | String | Token symbol | | token.name | String | Token name | | token.logo | String | Token logo URL | | token.marketCapUsd | String | Token market cap in USD | | token.holders | String | Number of token holders | | token.top10HolderPercent | String | Percentage of supply held by top 10 holders |

8. opentrade market memepump-chains

Get supported chains and protocols for meme pump. No parameters required.

opentrade market memepump-chains

Return fields:

| Field | Type | Description | |---|---|---| | data[].chainIndex | String | Chain identifier (e.g., "501" for Solana, "56" for BSC) | | data[].chainName | String | Human-readable chain name | | data[].protocolList[].protocolId | String | Protocol unique ID | | data[].protocolList[].protocolName | String | Protocol display name (e.g., pumpfun, fourmeme) |

Currently supports: Solana (501), BSC (56), X Layer (196), TRON (195).

9. opentrade market memepump-tokens

List meme pump tokens with advanced filtering. Returns up to 30 tokens per request.

opentrade market memepump-tokens <chain> --stage <stage> [options]

| Param | Required | Default | Description | |---|---|---|---| | <chain> | Yes | - | Chain name (e.g., solana, bsc) (positional) | | --stage | Yes | - | Token stage: NEW, MIGRATING, or MIGRATED | | --protocol-id | No | - | Filter by protocol ID (get IDs from memepump-chains) | | --sort-by | No | - | Sort field: marketCap, volume1h, txCount1h, createdTimestamp, bondingPercent | | --sort-order | No | - | Sort direction: asc or desc | | --min-age | No | - | Minimum token age in minutes | | --max-age | No | - | Maximum token age in minutes | | --min-market-cap | No | - | Minimum market cap in USD | | --max-market-cap | No | - | Maximum market cap in USD | | --min-volume | No | - | Minimum 1h volume in USD | | --max-volume | No | - | Maximum 1h volume in USD | | --min-tx-count | No | - | Minimum 1h transaction count | | --max-tx-count | No | - | Maximum 1h transaction count |

Return fields: Array of token objects (same structure as memepump-token-details response).

10. opentrade market memepump-token-details

Get detailed information for a specific meme pump token.

opentrade market memepump-token-details <address> [--chain <chain>]

| Param | Required | Default | Description | |---|---|---|---| | <address> | Yes | - | Token contract address (positional) | | --chain | No | solana | Chain name |

Return fields:

| Field | Type | Description | |---|---|---| | chainIndex | String | Chain identifier | | protocolId | String | Protocol numeric ID (e.g., "120596" for pumpfun) | | quoteTokenAddress | String | Quote token contract address | | tokenAddress | String | Token contract address | | symbol | String | Token symbol | | name | String | Token name | | logoUrl | String | Token logo URL | | creatorAddress | String | Token creator wallet address | | createdTimestamp | String | Creation timestamp (Unix ms) | | migratedBeginTimestamp | String | Migration start timestamp (Unix ms, empty if not migrating) | | migratedEndTimestamp | String | Migration end timestamp (Unix ms, empty if not migrated) | | market.marketCapUsd | String | Market cap in USD | | market.volumeUsd1h | String | 1-hour volume in USD | | market.txCount1h | String | 1-hour transaction count | | market.buyTxCount1h | String | 1-hour buy transaction count | | market.sellTxCount1h | String | 1-hour sell transaction count | | bondingPercent | String | Bonding curve progress (0-100) | | tags.top10HoldingsPercent | String | Top 10 holders percentage (0-100) | | tags.devHoldingsPercent | String | Dev holdings percentage (0-100) | | tags.insidersPercent | String | Insiders percentage (0-100) | | tags.bundlersPercent | String | Bundlers percentage (0-100) | | tags.snipersPercent | String | Snipers percentage (0-100) | | tags.freshWalletsPercent | String | Fresh wallets percentage (0-100) | | tags.suspectedPhishingWalletPercent | String | Phishing wallet percentage (0-100) | | tags.totalHolders | String | Total holder count | | social.x | String | X (Twitter) URL | | social.telegram | String | Telegram URL | | social.website | String | Website URL | | social.dexScreenerPaid | Boolean | Paid on DexScreener | | social.communityTakeover | Boolean | Community takeover flag | | social.liveOnPumpFun | Boolean | Currently live on Pump.fun | | bagsFeeClaimed | Boolean | Bags fee claimed | | aped | String | Same-car wallet count |

11. opentrade market memepump-token-dev-info

Get developer analysis including rug pull history, migration stats, and holding info.

opentrade market memepump-token-dev-info <address> [--chain <chain>]

| Param | Required | Default | Description | |---|---|---|---| | <address> | Yes | - | Token contract address (positional) | | --chain | No | solana | Chain name |

Return fields:

| Field | Type | Description | |---|---|---| | devLaunchedInfo.totalTokens | String | Total tokens created by this dev | | devLaunchedInfo.rugPullCount | String | Number of rug pulls | | devLaunchedInfo.migratedCount | String | Number of successfully migrated tokens | | devLaunchedInfo.goldenGemCount | String | Number of golden gem tokens | | devHoldingInfo.devHoldingPercent | String | Dev holding percentage (0-100) | | devHoldingInfo.devAddress | String | Developer wallet address | | devHoldingInfo.fundingAddress | String | Funding source address | | devHoldingInfo.devBalance | String | Dev's current balance | | devHoldingInfo.lastFundedTimestamp | String | Last funded timestamp (Unix ms) |

Note: devHoldingInfo may be null if the creator address is unavailable.

12. opentrade market memepump-similar-tokens

Find similar tokens created by the same developer. Returns at most 2 results.

opentrade market memepump-similar-tokens <address> [--chain <chain>]

| Param | Required | Default | Description | |---|---|---|---| | <address> | Yes | - | Token contract address (positional) | | --chain | No | solana | Chain name |

Return fields:

| Field | Type | Description | |---|---|---| | data[].tokenAddress | String | Similar token contract address | | data[].tokenSymbol | String | Token symbol | | data[].tokenLogo | String | Token logo URL | | data[].marketCapUsd | String | Market cap in USD | | data[].lastTxTimestamp | String | Last transaction timestamp (Unix ms) | | data[].createdTimestamp | String | Creation timestamp (Unix ms) |

13. opentrade market memepump-token-bundle-info

Get bundle/sniper analysis for a token.

opentrade market memepump-token-bundle-info <address> [--chain <chain>]

| Param | Required | Default | Description | |---|---|---|---| | <address> | Yes | - | Token contract address (positional) | | --chain | No | solana | Chain name |

Return fields:

| Field | Type | Description | |---|---|---| | bundlerAthPercent | String | Bundler all-time-high percentage (0-100) | | totalBundlers | String | Total number of bundlers | | bundledValueNative | String | Total bundled value in native token | | bundledTokenAmount | String | Total bundled token amount |

14. opentrade market memepump-aped-wallet

Get the aped (same-car) wallet list for a token.

opentrade market memepump-aped-wallet <address> [--chain <chain>]

| Param | Required | Default | Description | |---|---|---|---| | <address> | Yes | - | Token contract address (positional) | | --chain | No | solana | Chain name |

Return fields:

| Field | Type | Description | |---|---|---| | data[].walletAddress | String | Wallet address | | data[].walletType | String | Wallet type label (e.g., Smart Money, KOL, Whale) | | data[].holdingUsd | String | Holding value in USD | | data[].holdingPercent | String | Holding percentage (0-100) | | data[].totalPnl | String | Total PnL in USD | | data[].pnlPercent | String | PnL percentage |

Input / Output Examples

User says: "Check the current price of OKB on XLayer"

opentrade market price 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee --chain xlayer
# → Display: OKB current price $XX.XX

User says: "Show me hourly candles for USDC on XLayer"

opentrade market kline 0x74b7f16337b8972027f6196a17a631ac6de26d22 --chain xlayer --bar 1H
# → Display candlestick data (open/high/low/close/volume)

User says: "What are smart money wallets buying on Solana?"

opentrade market signal-list solana --wallet-type 1
# → Display smart money buy signals with token info

User says: "Show me whale buys above $10k on Ethereum"

opentrade market signal-list ethereum --wallet-type 3 --min-amount-usd 10000
# → Display whale-only signals, min $10k

User says: "Show me new meme tokens on Solana"

opentrade market memepump-tokens solana --stage NEW
# → Display list of new meme pump tokens with market data and audit tags

User says: "Is this meme token safe? Check the developer"

opentrade market memepump-token-dev-info <address> --chain solana
# → Display dev rug pull count, migration count, golden gems, dev holding info

User says: "Check if this token has bundler activity"

opentrade market memepump-token-bundle-info <address> --chain solana
# → Display bundler count, bundled value, bundled token amount

Region Restrictions (IP Blocking)

Some services are geo-restricted. When a command fails with error code 50125 or 80001, return a friendly message without exposing the raw error code:

| Service | Restricted Regions | Blocking Method | |---|---|---| | DEX | United Kingdom | API key auth | | DeFi | Hong Kong | API key auth + backend | | Wallet | None | None | | Global | Sanctioned countries | Gateway (403) |

Error handling: When the CLI returns error 50125 or 80001, display:

{service_name} is not available in your region. Please switch to a supported region and try again.

Examples:

  • "DEX is not available in your region. Please switch to a supported region and try again."
  • "DeFi is not available in your region. Please switch to a supported region and try again."

Do not expose raw error codes or internal error messages to the user.

Edge Cases

  • Invalid token address: returns empty data or error — prompt user to verify, or use opentrade token search to resolve
  • Unsupported chain: the CLI will report an error — try a different chain name
  • No candle data: may be a new token or low liquidity — inform user
  • Unsupported chain for signals: not all chains support signals — always verify with opentrade market signal-chains first
  • Empty signal list: no signals on this chain for the given filters — suggest relaxing --wallet-type, --min-amount-usd, or --min-address-count, or try a different chain
  • Unsupported chain for meme pump: only Solana (501), BSC (56), X Layer (196), TRON (195) are supported — verify with opentrade market memepump-chains first
  • Invalid stage: must be exactly NEW, MIGRATING, or MIGRATED
  • Token not found in meme pump: memepump-token-details returns null data if the token doesn't exist in meme pump ranking data — it may be on a standard DEX
  • No dev holding info: memepump-token-dev-info returns devHoldingInfo as null if the creator address is unavailable
  • Empty similar tokens: memepump-similar-tokens may return empty array if no similar tokens are found
  • Empty aped wallets: memepump-aped-wallet returns empty array if no co-holders found
  • 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

  • Always display in UI units (1.5 ETH), never base units
  • Show USD value alongside (1.5 ETH ≈ $4,500)
  • Prices are strings — handle precision carefully

Global Notes

  • EVM contract addresses must be all lowercase
  • 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