All skills
okx avatar

/okx-dex-market

@7ee532c
by OKX.comokx/onchainos-skills338 stars
75

Query read-only DEX token, market, signal, social, trenches, and WebSocket data. Use for token search, rankings, liquidity, holders, risk metadata, clusters, and trades; prices, K-lines/OHLC, indexes, and wallet PnL; smart-money/KOL/whale signals; news, sentiment, and token vibe; meme-launch, developer, bundle/sniper, and co-investor research; or DEX WebSocket clients. Triggers include hot tokens, holder concentration, smart money, top-trader leaderboards, pump.fun research, new token launches, on-chain token scanning, bundled or sniper activity, and WebSocket.

Use this Skill: https://skilld.dev/gh/okx/onchainos-skills/okx-dex-market

This session only. Nothing lands on disk.

referencestoken-cli-reference.md

≈6.6k tokens on demand. Your agent reads this file only when SKILL.md points to it.

Onchain OS DEX Token — CLI Command Reference

Detailed parameter tables, return field schemas, and usage examples for all 13 token commands.

1. onchainos token search

Search for tokens by name, symbol, or contract address.

onchainos token search --query <query> [--chains <chains>] [--limit <n>] [--cursor <cursor>] [--max-results <n>]
Param Required Default Description
--query Yes - Keyword: token name, symbol, or contract address
--chains No "1,501" Chain names or IDs, comma-separated (e.g., "ethereum,solana" or "196,501")
--limit No 20 Number of results per page (max 100)
--cursor No - Pagination cursor — pass the cursor field from the last item of the previous response to get the next page
--max-results No - Auto-paginate across pages until N items are collected (1–500). The CLI aggregates pages and returns data.items + data.nextCursor + data.fetchedCount; do NOT chase per-item cursors yourself. Mutually exclusive intent with manual --limit/--cursor paging.

When --max-results is supplied, the top-level data is { items, nextCursor, fetchedCount }: items is the aggregated array of result objects (fields below), nextCursor is the cursor to resume from (null when exhausted), and fetchedCount is the number of items returned.

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
cursor String Per-item pagination cursor — pass the cursor of the last item as the next request's --cursor to fetch the next page

2. onchainos token info

Get token basic info (name, symbol, decimals, logo).

onchainos token info --address <address> [--chain <chain>]
Param Required Default Description
--address Yes - Token contract address
--chain No ethereum Chain name

Return fields:

Field Type Description
tokenName String Token full name
tokenSymbol String Token symbol (e.g., "ETH")
tokenLogoUrl String Token logo image URL
decimal String Token decimals (e.g., "18")
tokenContractAddress String Token contract address
tagList.communityRecognized Boolean true = listed on Top 10 CEX or community verified

3. onchainos token price-info

Get detailed price info including market cap, liquidity, volume, and multi-timeframe price changes.

onchainos token price-info --address <address> [--chain <chain>]
Param Required Default Description
--address Yes - Token contract address
--chain No ethereum Chain name

Return fields:

Field Type Description
price String Current price in USD
time String Timestamp (Unix milliseconds)
marketCap String Market capitalization in USD
liquidity String Total liquidity in USD
circSupply String Circulating supply
holders String Number of token holders
tradeNum String 24-hour trade count
priceChange5M String Price change percentage — last 5 minutes
priceChange1H String Price change percentage — last 1 hour
priceChange4H String Price change percentage — last 4 hours
priceChange24H String Price change percentage — last 24 hours
volume5M String Trading volume (USD) — last 5 minutes
volume1H String Trading volume (USD) — last 1 hour
volume4H String Trading volume (USD) — last 4 hours
volume24H String Trading volume (USD) — last 24 hours
txs5M String Transaction count — last 5 minutes
txs1H String Transaction count — last 1 hour
txs4H String Transaction count — last 4 hours
txs24H String Transaction count — last 24 hours
maxPrice String 24-hour highest price
minPrice String 24-hour lowest price

4. onchainos token holders

Get token holder distribution (top 100), with optional tag filter.

onchainos token holders --address <address> [--chain <chain>] [--tag-filter <n>] [--limit <n>] [--cursor <cursor>] [--max-results <n>]
Param Required Default Description
--address Yes - Token contract address
--chain No ethereum Chain name
--tag-filter No - Filter by holder tag: 1=KOL, 2=Developer, 3=Smart Money, 4=Whale, 5=Fresh Wallet, 6=Insider, 7=Sniper, 8=Suspicious Phishing, 9=Bundler
--limit No 20 Number of results per page (max 100)
--cursor No - Pagination cursor — pass the cursor field from the last item of the previous response to get the next page
--max-results No - Auto-paginate across pages until N items are collected (1–500). The CLI aggregates pages and returns data.items + data.nextCursor + data.fetchedCount; do NOT chase per-item cursors yourself. Mutually exclusive intent with manual --limit/--cursor paging.

When --max-results is supplied, the top-level data is { items, nextCursor, fetchedCount }: items is the aggregated array of holder objects (fields below), nextCursor is the cursor to resume from (null when exhausted), and fetchedCount is the number of items returned.

Return fields (top 100 holders):

Field Type Description
holderWalletAddress String Holder wallet address
holdAmount String Token amount held
holdPercent String Percentage of total supply held
nativeTokenBalance String Native token (mainnet) balance
boughtAmount String Total buy quantity
avgBuyPrice String Average buy price (USD)
totalSellAmount String Total sell quantity
avgSellPrice String Average sell price (USD)
totalPnlUsd String Total PnL (USD)
realizedPnlUsd String Realized PnL (USD)
unrealizedPnlUsd String Unrealized PnL (USD)
fundingSource String Source of funding for the wallet

5. onchainos token liquidity

Get top 5 liquidity pools for a token.

onchainos token liquidity --address <address> [--chain <chain>]
Param Required Default Description
--address Yes - Token contract address
--chain No ethereum Chain name (e.g., ethereum, base, bsc)

Return fields (array of pool objects):

Field Type Description
pool String Pool name (e.g., "Punch/SOL")
protocolName String Protocol name
liquidityUsd String Liquidity value in USD
liquidityAmount Array Liquidity amounts
liquidityAmount[].tokenAmount String Token amount in the liquidity pool
liquidityAmount[].tokenSymbol String Token symbol in the liquidity pool
liquidityProviderFeePercent String Liquidity provider fee percentage
poolAddress String Pool contract address
poolCreator String Pool creator address

6. onchainos token hot-tokens

Get hot token list ranked by trending score or X/Twitter mentions (max 100 results).

onchainos token hot-tokens [--ranking-type <type>] [--chain <chain>] [--rank-by <field>] [--time-frame <frame>] [--limit <n>] [--cursor <cursor>] [--max-results <n>] [options]

Core parameters:

Param Required Default Description
--ranking-type Yes "4" 4=Trending (token score), 5=Xmentioned (Twitter mentions)
--chain No all chains Chain name (e.g., solana, ethereum). Omit for all chains
--rank-by No - Sort field: 1=price, 2=price change, 3=txs, 4=unique traders, 5=volume, 6=market cap, 7=liquidity, 8=created time, 9=OKX search count, 10=holders, 11=mention count, 12=social score, 14=net inflow, 15=token score
--time-frame No - Window: 1=5min, 2=1h, 3=4h, 4=24h
--limit No 20 Number of results per page (max 100)
--cursor No - Pagination cursor — pass the cursor field from the last item of the previous response to get the next page
--max-results No - Auto-paginate across pages until N items are collected (1–500). The CLI aggregates pages and returns data.items + data.nextCursor + data.fetchedCount; do NOT chase per-item cursors yourself. Mutually exclusive intent with manual --limit/--cursor paging.

When --max-results is supplied, the top-level data is { items, nextCursor, fetchedCount }: items is the aggregated array of token objects (fields below), nextCursor is the cursor to resume from (null when exhausted), and fetchedCount is the number of items returned.

Filter parameters (all optional):

Param Description
--risk-filter Hide risky tokens (true/false, default: true)
--stable-token-filter Filter stable coins (true/false, default: true)
--project-id Protocol ID filter, comma-separated (e.g., 120596 for Pump.fun)
--price-change-min / --price-change-max Price change % range (supports negative values, e.g., --price-change-min -5)
--volume-min / --volume-max Volume range in USD
--market-cap-min / --market-cap-max Market cap range in USD
--liquidity-min / --liquidity-max Liquidity range in USD
--transaction-min / --transaction-max Trade amount (tradeAmount) range
--txs-min / --txs-max Transaction count (txs) range
--unique-trader-min / --unique-trader-max Unique trader count range
--holders-min / --holders-max Holder count range
--inflow-min / --inflow-max Net inflow USD range
--fdv-min / --fdv-max Fully diluted valuation range in USD
--mentioned-count-min / --mentioned-count-max Mention count range (for Xmentioned ranking)
--social-score-min / --social-score-max Social score range
--top10-hold-percent-min / --top10-hold-percent-max Top-10 holder % range
--dev-hold-percent-min / --dev-hold-percent-max Dev holding % range
--bundle-hold-percent-min / --bundle-hold-percent-max Bundle holding % range
--suspicious-hold-percent-min / --suspicious-hold-percent-max Suspicious holding % range
--is-lp-burnt LP burned filter (true/false)
--is-mint Mintable filter (true/false)
--is-freeze Freeze filter (true/false)

Return fields (array of token objects):

Field Type Description
chainIndex String Chain identifier
tokenSymbol String Token symbol
tokenLogoUrl String Token logo image URL
tokenContractAddress String Token contract address
marketCap String Market capitalization in USD
volume String Trading volume in USD
firstTradeTime String First trade timestamp (Unix ms)
change String Price change percentage (for selected time frame)
liquidity String Total liquidity in USD
price String Current price in USD
holders String Number of token holders
uniqueTraders String Number of unique traders
txsBuy String Buy transaction count
txsSell String Sell transaction count
txs String Total transaction count
inflowUsd String Net inflow in USD
riskLevelControl String Risk control level
devHoldPercent String Developer holding percentage
top10HoldPercent String Top-10 holders combined percentage
insiderHoldPercent String Insider holding percentage
bundleHoldPercent String Bundle holding percentage
vibeScore String Vibe score
mentionsCount String X/Twitter mention count

7. onchainos token advanced-info

Get advanced token info including risk level, creator details, dev stats, and holder concentration.

onchainos token advanced-info --address <address> [--chain <chain>]
Param Required Default Description
--address Yes - Token contract address
--chain No ethereum Chain name

Return fields:

Field Type Description
riskControlLevel String Risk control level: 0=Undefined, 1=Low Risk, 2=Medium Risk, 3=Medium-High Risk, 4=High Risk, 5=High Risk (manual)
totalFee String Total fee collected
lpBurnedPercent String Percentage of LP tokens burned
isInternal Boolean Whether the token is internal
protocolId String Protocol identifier
progress String Token progress (e.g., bonding curve %)
tokenTags Array<String> Active tag labels for the token. Possible values: honeypot, dexBoost, lowLiquidity, communityRecognized, devHoldingStatusSell, devHoldingStatusSellAll, devHoldingStatusBuy, initialHighLiquidity, smartMoneyBuy, devAddLiquidity, devBurnToken, volumeChangeRateHoldersPlunge, holdersChangeRateHoldersSurge, dexScreenerTokenCommunityTakeOver, dexScreenerPaid
createTime String Token creation timestamp
creatorAddress String Creator wallet address
devRugPullTokenCount String Number of tokens by dev that were rug pulls
devCreateTokenCount String Total tokens created by dev
devLaunchedTokenCount String Number of tokens by dev that launched
top10HoldPercent String Top 10 holders combined percentage
devHoldingPercent String Developer holding percentage
bundleHoldingPercent String Bundle holding percentage
suspiciousHoldingPercent String Suspicious holding percentage
sniperHoldingPercent String Sniper holding percentage
snipersClearAddressCount String Number of sniper addresses that cleared
snipersTotal String Total sniper count

8. onchainos token top-trader

Get top traders (profit addresses) for a token.

onchainos token top-trader --address <address> [--chain <chain>] [--tag-filter <n>] [--limit <n>] [--cursor <cursor>] [--max-results <n>]
Param Required Default Description
--address Yes - Token contract address
--chain No ethereum Chain name
--tag-filter No - Filter by trader tag: 1=KOL, 2=Developer, 3=Smart Money, 4=Whale, 5=Fresh Wallet, 6=Insider, 7=Sniper, 8=Suspicious Phishing, 9=Bundler
--limit No 20 Number of results per page (max 100)
--cursor No - Pagination cursor — pass the cursor field from the last item of the previous response to get the next page
--max-results No - Auto-paginate across pages until N items are collected (1–500). The CLI aggregates pages and returns data.items + data.nextCursor + data.fetchedCount; do NOT chase per-item cursors yourself. Mutually exclusive intent with manual --limit/--cursor paging.

When --max-results is supplied, the top-level data is { items, nextCursor, fetchedCount }: items is the aggregated array of trader objects (fields below), nextCursor is the cursor to resume from (null when exhausted), and fetchedCount is the number of items returned.

Return fields:

Field Type Description
holderWalletAddress String Trader wallet address
holdAmount String Token amount held
holdPercent String Percentage of total supply held
nativeTokenBalance String Native token balance
boughtAmount String Total amount bought
avgBuyPrice String Average buy price (USD)
soldAmount String Total amount sold
avgSellPrice String Average sell price (USD)
totalPnlUsd String Total PnL (USD)
realizedPnlUsd String Realized PnL (USD)
unrealizedPnlUsd String Unrealized PnL (USD)
fundingSource String Funding source of the wallet

9. onchainos token trades

Get token DEX trade history with optional tag and wallet address filters.

onchainos token trades --address <address> [--chain <chain>] [--limit <n>] [--tag-filter <n>] [--wallet-filter <addrs>]
Param Required Default Description
--address Yes - Token contract address
--chain No ethereum Chain name
--limit No 100 Number of trades (max 500)
--tag-filter No - Filter by trader tag: 1=KOL, 2=Developer, 3=Smart Money, 4=Whale, 5=Fresh Wallet, 6=Insider, 7=Sniper, 8=Suspicious Phishing, 9=Bundler
--wallet-filter No - Wallet address filter, comma-separated (max 10 addresses)

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
isFiltered String "1" if this trade matched the tag/wallet filter, "0" otherwise
poolLogoUrl String Pool logo URL
changedTokenInfo Array Token change details for the trade
changedTokenInfo[].tokenSymbol String Token symbol
changedTokenInfo[].tokenAddress String Token contract address
changedTokenInfo[].tokenLogoUrl String Token logo URL
changedTokenInfo[].amount String Token amount changed

Input / Output Examples

User says: "Search for xETH token on XLayer"

onchainos token search --query 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?"

onchainos token hot-tokens --chain solana --rank-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?"

onchainos token holders --address 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee --chain xlayer
# -> Display top 100 holders with amounts and addresses

10. onchainos token cluster-overview

Get token holder cluster concentration overview — cluster level, rug pull probability, new address ratio, same-fund-source ratio, and same-creation-time ratio.

onchainos token cluster-overview --address <address> [--chain <chain>]
Param Required Default Description
--address Yes - Token contract address
--chain No ethereum Chain name (e.g., solana, ethereum)

Return fields:

Field Type Description
clusterConcentration String Cluster concentration level: Low, Medium, or High
top100HoldingsPercent String % of token supply held by top 100 addresses
rugPullPercent String Rug pull probability %
holderNewAddressPercent String % of top 1,000 holders created in the last 3 days
holderSameFundSourcePercent String % of top 1,000 holders with mutual mainstream token transfer activity
holderSameCreationTimePercent String % of top 1,000 holders created at around the same time

Examples:

# Cluster concentration overview for a Solana token
onchainos token cluster-overview --address EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v --chain solana

# EVM token cluster overview
onchainos token cluster-overview --address 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 --chain ethereum

11. onchainos token cluster-top-holders

Get overview statistics for the top 10, 50, or 100 holders of a token — including average holding period, average PnL, average cost price, and trend direction.

onchainos token cluster-top-holders --address <address> --range-filter <1|2|3> [--chain <chain>]
Param Required Default Description
--address Yes - Token contract address
--range-filter Yes - Holder rank tier: 1 = top 10, 2 = top 50, 3 = top 100
--chain No ethereum Chain name

Return fields:

Field Type Description
holdingAmount String Sum of all tokens held by top N addresses (excludes blackhole and LP addresses)
holdingPercent String % of token supply held by top N addresses
clusterTrendType Array<String> Overall position direction; possible values: buy, sell, neutral, transfer, transferIn. May be absent if no trend data.
averageHoldingPeriod String Weighted average holding time across the top N holders
averagePnlUsd String Weighted average profit/loss of top N holders (USD)
averageBuyPriceUsd String Weighted average cost price for the top N holders (USD)
averageBuyPricePercent String % difference between avg cost price and current token price
averageSellPriceUsd String Weighted average selling price for the top N holders (USD)
averageSellPricePercent String % difference between avg selling price and current token price

Examples:

# Top 100 holder behavior on Solana
onchainos token cluster-top-holders --address EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v --chain solana --range-filter 3

# Top 10 holder behavior on Ethereum
onchainos token cluster-top-holders --address 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 --chain ethereum --range-filter 1

12. onchainos token cluster-list

Get holder cluster list — groups of top 300 holders organized into clusters, with per-cluster holding stats and individual address details.

onchainos token cluster-list --address <address> [--chain <chain>]
Param Required Default Description
--address Yes - Token contract address
--chain No ethereum Chain name

Return fields:

Field Type Description
clusterList Array List of holder clusters (top 100 clusters of the top 300 holders)
clusterList[].holdingAmount String Sum of all tokens held by cluster addresses (excludes blackhole and LP)
clusterList[].holdingValueUsd String USD value of all tokens held by cluster addresses
clusterList[].holdingPercent String % of token supply held by cluster addresses
clusterList[].trendType Object Overall position direction; nested trendType field: buy, sell, neutral, or transfer
clusterList[].averageHoldingPeriod String Weighted average holding time of cluster holders
clusterList[].pnlUsd String Total profit/loss of cluster holders (USD)
clusterList[].pnlPercent String Total profit/loss percentage of cluster holders
clusterList[].buyVolume String Total bought volume of the cluster (USD)
clusterList[].averageBuyPriceUsd String Weighted average cost price of cluster holders
clusterList[].sellVolume String Total sold volume of the cluster (USD)
clusterList[].averageSellPriceUsd String Weighted average selling price of cluster holders
clusterList[].lastActiveTimestamp String Last active time (Unix milliseconds)
clusterList[].clusterAddressList Array List of cluster holder addresses
clusterList[].clusterAddressList[].address String Wallet address
clusterList[].clusterAddressList[].holdingAmount String Tokens held by this address
clusterList[].clusterAddressList[].holdingValueUsd String USD value held by this address
clusterList[].clusterAddressList[].holdingPercent String % of supply held by this address
clusterList[].clusterAddressList[].averageHoldingPeriod String Average holding time of this address
clusterList[].clusterAddressList[].lastActiveTimestamp String Last active time (Unix milliseconds)
clusterList[].clusterAddressList[].isContract Boolean Whether it is a contract address
clusterList[].clusterAddressList[].isExchange Boolean Whether it is an exchange address
clusterList[].clusterAddressList[].isKol Boolean Whether it is a KOL address
clusterList[].clusterAddressList[].addressRank String Address ranking among all holders

Examples:

# Holder cluster list for a Solana token
onchainos token cluster-list --address EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v --chain solana

# EVM token cluster list
onchainos token cluster-list --address 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 --chain ethereum

13. onchainos token cluster-supported-chains

Description: Get the list of chains that support holder cluster analysis.

onchainos token cluster-supported-chains

Parameters: None

Return fields (array of chain objects):

Field Type Description
chainIndex String Chain identifier (e.g. "1" for Ethereum, "501" for Solana)
chainName String Chain display name (e.g. "Ethereum", "Solana")
chainLogo String Chain logo URL

Examples:

# Get all chains that support holder cluster analysis
onchainos token cluster-supported-chains

Source: SKILL.md on GitHub

2 warnings6d5 checks · Risk SAFE
  • Gen Agent Trust Hub6d

    The skill is designed for querying DEX data and includes comprehensive instructions for the AI agent to handle external data securely. It retrieves information from news platforms, social media, and on-chain sources, which introduces a surface for indirect prompt injection. However, the skill explicitly commands the agent to treat this data as untrusted and not as instructions, and the underlying CLI tool includes measures to reduce the exposed content. The skill also installs a helper tool from the vendor's official package repository. No high-risk patterns were found.

  • Socket6d

    No alerts

  • Snyk6d

    Risk: MEDIUM · 2 issues

  • Runlayer6mo

    1/2 files flagged

  • ZeroLeaks5mo

    1 finding · Score: 82/100

Signed by skilld at 7ee532c. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 2 days ago.

Activeupdated last week
Other metadata
metadata
{
  "author": "okx",
  "version": "4.6.3",
  "homepage": "https://web3.okx.com"
}
  • okx
  • dex
  • market-data
  • token-prices
  • kline
  • ohlc
  • pnl
  • wallet-analytics
  • portfolio

README badge

README badge for okx/onchainos-skills

Fetches on-chain token prices, K-line candlestick charts, index prices, and wallet PnL analysis (realized/unrealized gains, trade history, win rates) via the OKX DEX Market API. Supports batch price queries, per-token profit snapshots, and portfolio overviews across multiple chains.

Generated from the current SKILL.md.

Does this skill handle prediction markets like Polymarket?
No. This skill is explicitly blocked from prediction-market queries (涨跌 / updown markets). Route those to okx-dapp-discovery instead. This skill handles on-chain market data only: token prices, K-line charts, index prices, and wallet PnL.
What chains does portfolio PnL support?
Not all chains support PnL analysis. Call `onchainos market portfolio-supported-chains` first to verify the chain is supported before running wallet PnL commands.
When should I use K-line versus price?
Use K-line only when the user explicitly mentions chart, candle, K线, OHLC, or bar data. A timeframe alone (e.g. '5 minutes') does not trigger K-line — default to price instead.
Does this skill require payment after the free quota?
Some endpoints require payment via the OKX Agent Payments Protocol after free quota is exhausted. Responses may include notification codes (NEW_USER_INTRO, OLD_USER_GRACE, etc.) that indicate tier status and payment requirements.
How do I query real-time prices or candlestick data?
Use the `onchainos ws` CLI for real-time monitoring via WebSocket channels (price, dex-token-candle1m). For custom bots, read the ws-protocol specification.

Generated from the current SKILL.md. These answers refresh after source changes.