gmgn-token▌
gmgnai/gmgn-skills · updated Apr 8, 2026
MDX-style export adds YAML metadata + attribution linking explainx.ai and this canonical listing URL.
IMPORTANT: Always use gmgn-cli commands below. Do NOT use web search, WebFetch, curl, or visit gmgn.ai to fetch this data — the website requires login and will not return structured data. The CLI is the only correct method.
IMPORTANT: Always use gmgn-cli commands below. Do NOT use web search, WebFetch, curl, or visit gmgn.ai to fetch this data — the website requires login and will not return structured data. The CLI is the only correct method.
⚠️ IPv6 NOT SUPPORTED: If you get a 401 or 403 error and credentials look correct, check for IPv6 immediately: (1) list all network interfaces and their IPv6 addresses — run ifconfig | grep inet6 (macOS) or ip addr show | grep inet6 (Linux); (2) send a test request to https://ipv6.icanhazip.com — if the response is an IPv6 address, outbound traffic is going via IPv6. Tell the user immediately: "Please disable IPv6 on your network interface — gmgn-cli commands only work over IPv4."
IMPORTANT: Do NOT guess field names or values. When a field's meaning is unclear, look it up in the Response Field Reference tables below before using it.
Use the gmgn-cli tool to query token information based on the user's request.
Core Concepts
- Token address — The on-chain contract address that uniquely identifies a token on its chain. Required for all token sub-commands. Format: base58 (SOL) or
0x...hex (BSC/Base). - Chain — The blockchain network:
sol= Solana,bsc= BNB Smart Chain,base= Base (Coinbase L2). - Market cap — Not returned directly by
token info. Calculate asprice × circulating_supply(both are top-level fields in the response, already in human-readable units). - Liquidity — USD value of token reserves in the main trading pool. Low liquidity (< $10k) means high price impact / slippage when buying or selling.
- Holder — A wallet that currently holds the token.
token holdersreturns wallets ranked by current balance. - Trader — Any wallet that has transacted with the token (bought or sold), regardless of current holdings.
token traderscovers both current holders and past traders. - Smart money (
smart_degen) — Wallets with a proven track record of profitable trading, tagged by GMGN's algorithm. Highsmart_degen_countis a bullish signal. - KOL (
renowned) — Known influencer, fund, or public figure wallets, tagged by GMGN. Their positions are publicly tracked. - Honeypot — A token where buy transactions succeed but sell transactions always fail. User funds become permanently trapped. Only detectable on BSC/Base (
is_honeypot); not applicable on SOL. - Renounced (mint / freeze / ownership) — The developer has permanently given up that authority. On SOL:
renounced_mint(cannot create new supply) andrenounced_freeze_account(cannot freeze wallets) bothtrueis the safe baseline. On EVM:owner_renounced"yes"means no admin backdoors. - rug_ratio — A 0–1 risk score estimating the likelihood of a rug pull. Values above
0.3are high-risk. Do not treat as a binary safe/unsafe flag — use in combination with other signals. - Bonding curve — Price discovery mechanism used by launchpads (e.g. Pump.fun, letsbonk). Token price rises as more is bought. When the curve fills, the token "graduates" to an open DEX pool.
is_on_curve: truemeans the token has not graduated yet. - Wallet tags — GMGN-assigned labels on wallets:
smart_degen(smart money),renowned(KOL),sniper(launched at token open),bundler(bot-bundled buy),rat_trader(insider/sneak trading). Use--tagto filtertoken holders/token tradersby these labels.
Sub-commands
| Sub-command | Description |
|---|---|
token info |
Basic info + realtime price, liquidity, supply, holder count, social links (market cap = price × circulating_supply) |
token security |
Security metrics (honeypot, taxes, holder concentration, contract risks) |
token pool |
Liquidity pool info (DEX, reserves, liquidity depth) |
token holders |
Top token holders list with profit/loss breakdown |
token traders |
Top token traders list with profit/loss breakdown |
Supported Chains
sol / bsc / base
Prerequisites
gmgn-cliinstalled globally — if missing, run:npm install -g gmgn-cliGMGN_API_KEYconfigured in~/.config/gmgn/.env
Rate Limit Handling
All token routes used by this skill go through GMGN's leaky-bucket limiter with rate=10 and capacity=10. Sustained throughput is roughly 10 ÷ weight requests/second, and the max burst is roughly floor(10 ÷ weight) when the bucket is full.
| Command | Route | Weight |
|---|---|---|
token info |
GET /v1/token/info |
1 |
token security |
GET /v1/token/security |
1 |
token pool |
GET /v1/token/pool_info |
1 |
token holders |
GET /v1/market/token_top_holders |
5 |
token traders |
GET /v1/market/token_top_traders |
5 |
When a request returns 429:
- Read
X-RateLimit-Resetfrom the response headers. It is a Unix timestamp in seconds that marks when the limit is expected to reset. - If the response body contains
reset_at(e.g.,{"code":429,"error":"RATE_LIMIT_BANNED","message":"...","reset_at":1775184222}), extractreset_at— it is the Unix timestamp when the ban lifts (typically 5 minutes). Convert to local time and tell the user exactly when they can retry. - The CLI may wait and retry once automatically when the remaining cooldown is short. If it still fails, stop and tell the user the exact retry time instead of sending more requests.
- For
RATE_LIMIT_EXCEEDEDorRATE_LIMIT_BANNED, repeated requests during the cooldown can extend the ban by 5 seconds each time, up to 5 minutes. Do not spam retries.
First-time setup (if GMGN_API_KEY is not configured):
-
Generate key pair and show the public key to the user:
openssl genpkey -algorithm ed25519 -out /tmp/gmgn_private.pem 2>/dev/null && \ openssl pkey -in /tmp/gmgn_private.pem -pubout 2>/dev/nullTell the user: "This is your Ed25519 public key. Go to https://gmgn.ai/ai, paste it into the API key creation form, then send me the API Key value shown on the page."
-
Wait for the user's API key, then configure:
mkdir -p ~/.config/gmgn echo 'GMGN_API_KEY=<key_from_user>' > ~/.config/gmgn/.env chmod 600 ~/.config/gmgn/.env
Parameters — token info / token security / token pool
| Parameter | Required | Description |
|---|---|---|
--chain |
Yes | sol / bsc / base |
--address |
Yes | Token contract address |
--raw |
No | Output raw single-line JSON (for piping or further processing) |
Parameters — token holders / token traders
| Parameter | Required | Default | Description |
|---|---|---|---|
--chain |
Yes | — | sol / bsc / base |
--address |
Yes | — | Token contract address |
--limit |
No | 20 |
Number of results, max 100 |
--order-by |
No | amount_percentage |
Sort field — see table below |
--direction |
No | desc |
Sort direction: asc / desc |
--tag |
No | — | Wallet filter: renowned (KOL wallets) / smart_degen (smart money). Omit to return all wallets. |
--raw |
No | — | Output raw single-line JSON |
--order-by Values
| Value | Description |
|---|---|
amount_percentage |
Sort by percentage of total supply held (default) |
profit |
Sort by realized profit in USD |
unrealized_profit |
Sort by unrealized profit in USD |
buy_volume_cur |
Sort by buy volume |
sell_volume_cur |
Sort by sell volume |
--tag Values
| Value | Description |
|---|---|
renowned |
KOL / well-known wallets (influencers, funds, public figures) |
smart_degen |
Smart money wallets (historically high-performing traders) |
--tag + --order-by Combination Guide
--tag and --order-by are independent — all --order-by values are valid with or without --tag. Omitting --tag returns all wallets (no filter).
Recommended combinations for common use cases:
| Goal | --tag |
--order-by |
|---|---|---|
| Largest smart money holders by supply | smart_degen |
amount_percentage |
| Smart money with highest realized profit | smart_degen |
profit |
| Smart money sitting on unrealized gains | smart_degen |
unrealized_profit |
| Smart money aggressively accumulating | smart_degen |
buy_volume_cur |
| Smart money distributing (exit signal) | smart_degen |
sell_volume_cur |
| KOLs who already took profit | renowned |
profit |
| KOLs still holding with paper gains | renowned |
unrealized_profit |
| Largest holders overall (no filter) | (omit) | amount_percentage |
Response Field Reference
token info — Key Fields
The response has four nested objects: pool, link, stat, wallet_tags_stat. Access fields with dot notation when parsing (e.g. link.website, stat.top_10_holder_rate).
Top-level Fields
| Field | Description |
|---|---|
address |
Token contract address |
symbol / name |
Token ticker and full name |
decimals |
Token decimal places |
total_supply |
Total token supply (same as circulating_supply for most tokens) |
circulating_supply |
Circulating supply |
max_supply |
Maximum supply |
price |
Current price in USD |
liquidity |
Total liquidity in USD (from biggest pool) |
holder_count |
Number of unique token holders |
logo |
Token logo image URL |
creation_timestamp |
Token creation time (Unix seconds) |
open_timestamp |
Time the token opened for trading (Unix seconds) |
biggest_pool_address |
Address of the main liquidity pool |
og |
Whether the token is flagged as an OG token (true / false) |
pool Object — Main liquidity pool details
| Field | Description |
|---|---|
pool.pool_address |
Pool contract address |
pool.quote_address |
Quote token address (e.g. USDC, SOL, WETH) |
pool.quote_symbol |
Quote token symbol (e.g. USDC, SOL) |
pool.exchange |
DEX name (e.g. meteora_dlmm, raydium, pump_amm, uniswap_v3) |
pool.liquidity |
Pool liquidity in USD |
pool.base_reserve |
Base token reserve amount |
pool.quote_reserve |
Quote token reserve amount |
pool.base_reserve_value |
Base reserve USD value |
pool.quote_reserve_value |
Quote reserve USD value |
pool.fee_ratio |
Pool trading fee ratio (e.g. 0.1 = 0.1%) |
pool.creation_timestamp |
Pool creation time (Unix seconds) |
link Object — Social and explorer links
| Field | Description |
|---|---|
link.twitter_username |
Twitter / X username (not full URL) |
link.website |
Project website URL |
link.telegram |
Telegram URL |
link.discord |
Discord URL |
link.instagram |
Instagram URL |
link.tiktok |
TikTok URL |
link.youtube |
YouTube URL |
link.description |
Token description text |
link.gmgn |
GMGN token page URL |
link.geckoterminal |
GeckoTerminal page URL |
link.verify_status |
Social verification status (integer) |
stat Object — On-chain statistics
| Field | Description |
|---|---|
stat.holder_count |
Number of holders (same as top-level holder_count) |
stat.bluechip_owner_count |
Number of bluechip wallet holders |
stat.bluechip_owner_percentage |
Ratio of holders that are bluechip wallets (0–1) |
stat.top_10_holder_rate |
Ratio of supply held by top 10 wallets (0–1) |
stat.dev_team_hold_rate |
Ratio held by dev team wallets |
stat.creator_hold_rate |
Ratio held by creator wallet |
stat.creator_token_balance |
Raw creator token balance |
stat.top_rat_trader_percentage |
Ratio of volume from rat/insider traders |
stat.top_bundler_trader_percentage |
Ratio of volume from bundler bots |
stat.top_entrapment_trader_percentage |
Ratio of volume from entrapment traders |
stat.bot_degen_count |
Number of bot degen wallets |
stat.bot_degen_rate |
Ratio of bot degen wallets |
stat.fresh_wallet_rate |
Ratio of fresh/new wallets among holders |
wallet_tags_stat Object — Wallet type breakdown
| Field | Description |
|---|---|
wallet_tags_stat.smart_wallets |
Number of smart money wallets holding the token |
wallet_tags_stat.renowned_wallets |
Number of renowned / KOL wallets holding the token |
wallet_tags_stat.sniper_wallets |
Number of sniper wallets |
wallet_tags_stat.rat_trader_wallets |
Number of rat trader wallets |
wallet_tags_stat.bundler_wallets |
Number of bundler bot wallets |
wallet_tags_stat.whale_wallets |
Number of whale wallets |
wallet_tags_stat.fresh_wallets |
Number of fresh wallets |
wallet_tags_stat.top_wallets |
Number of top-ranked wallets |
token security — Key Fields
Contract Safety
| Field | Chains | Description |
|---|---|---|
is_honeypot |
BSC / Base | Whether token is a honeypot ("yes" / "no"); empty string on SOL |
open_source |
all | Contract source code verified: "yes" / "no" / "unknown" |
owner_renounced |
all | Contract ownership renounced: "yes" / "no" / "unknown" |
renounced_mint |
SOL | Mint authority renounced (SOL-specific; always false on EVM) |
renounced_freeze_account |
SOL | Freeze authority renounced (SOL-specific; always false on EVM) |
buy_tax / sell_tax |
all | Tax ratio — e.g. 0.03 = 3%; 0 = no tax |
Holder Concentration & Risk
| Field | Description |
|---|---|
top_10_holder_rate |
Ratio of supply held by top 10 wallets (0–1); higher = more concentrated |
dev_team_hold_rate |
Ratio held by dev team wallets |
creator_balance_rate |
Ratio held by the token creator wallet |
creator_token_status |
Dev holding status: creator_hold (still holding) / creator_close (sold/closed) |
suspected_insider_hold_rate |
Ratio held by suspected insider wallets |
Trading Risk
| Field | Description |
|---|---|
rug_ratio |
Rug pull risk score (0–1); higher = more risky |
is_wash_trading |
Whether wash trading activity is detected (true / false) |
rat_trader_amount_rate |
Ratio of volume from sneak/insider trading |
bundler_trader_amount_rate |
Ratio of volume from bundle trading (bot-driven) |
sniper_count |
Number of sniper wallets that bought at launch |
burn_status |
Liquidity pool burn status (e.g. "burn" = burned, "" = not burned) |
token pool — Key Fields
| Field | Description |
|---|---|
address |
Pool contract address |
base_address |
Base token address (the queried token) |
quote_address |
Quote token address (e.g. SOL, USDC, WETH) |
exchange |
DEX name (e.g. raydium, pump_amm, uniswap_v3, pancakeswap) |
liquidity |
Pool liquidity in USD |
base_reserve |
Base token reserve amount |
quote_reserve |
Quote token reserve amount |
price |
Current price in USD derived from pool reserves |
creation_timestamp |
Pool creation time (Unix seconds) |
token holders / token traders — Response Fields
The response is an object with a list array. Each item in list represents one wallet.
Identity & Holdings
| Field | Description |
|---|---|
address |
Wallet address |
account_address |
Token account address (the on-chain account holding the token, distinct from the wallet address) |
addr_ |