Merge pull request #257 from dylanzhong662-max/feature-all-chains-endpoint-coverage

fix(cli): support avalanche, defer trenches defaults to the server, sync chain docs
This commit is contained in:
GMGN.AI
2026-10-29 17:14:31 +08:00
committed by GitHub
27 changed files with 151 additions and 150 deletions
+6 -4
View File
@@ -735,6 +735,8 @@ gmgn-cli order strategy list --chain sol
# Cancel a strategy order # Cancel a strategy order
gmgn-cli order strategy cancel --chain sol --from <wallet_address> --order-id <order_id> gmgn-cli order strategy cancel --chain sol --from <wallet_address> --order-id <order_id>
# V2 strategy orders (created via the OpenAPI V2 endpoint)
gmgn-cli order strategy cancel --chain arbitrum --from <wallet_address> --order-id <order_id> --order-type smart_trade_v2
``` ```
### Cooking (requires private key) ### Cooking (requires private key)
@@ -755,10 +757,10 @@ gmgn-cli cooking \
| Commands | Chains | Chain Currencies | | Commands | Chains | Chain Currencies |
|----------|--------|-----------------| |----------|--------|-----------------|
| token / market / portfolio / track | `sol` / `bsc` / `base` / `eth` / `robinhood` / `arc` / `stable` | — | | token / market / portfolio / track | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche` | — |
| swap / order | `sol` / `bsc` / `base` / `eth` / `robinhood` / `arc` / `stable` | sol: SOL, USDC · bsc: BNB, USDC · base: ETH, USDC · eth: ETH | | swap / order | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche` | sol: SOL, USDC · bsc: BNB, USDC · base: ETH, USDC · eth: ETH |
| gas-price | `sol` / `bsc` / `base` / `eth` / `robinhood` / `arc` / `stable` | — | | gas-price | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche` | — |
| track kol / track smartmoney · market signal | `sol` / `bsc` / `base` / `eth` / `robinhood` / `arc` / `stable` (kol/smartmoney) · `sol` / `bsc` / `robinhood` / `arc` / `stable` (signal) | — | | track kol / track smartmoney · market signal | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche` (kol/smartmoney) · `sol` / `bsc` / `base` / `eth` / `arbitrum` / `robinhood` / `arc` / `stable` / `avalanche` (signal) | — |
| cooking create | `sol` / `bsc` / `base` / `robinhood` | — | | cooking create | `sol` / `bsc` / `base` / `robinhood` | — |
--- ---
+6 -4
View File
@@ -759,6 +759,8 @@ gmgn-cli order strategy list --chain sol
# 撤销策略单 # 撤销策略单
gmgn-cli order strategy cancel --chain sol --from <wallet_address> --order-id <order_id> gmgn-cli order strategy cancel --chain sol --from <wallet_address> --order-id <order_id>
# V2 策略单(通过 OpenAPI V2 接口创建)
gmgn-cli order strategy cancel --chain arbitrum --from <wallet_address> --order-id <order_id> --order-type smart_trade_v2
``` ```
### Cooking 一键策略单(需要私钥) ### Cooking 一键策略单(需要私钥)
@@ -779,10 +781,10 @@ gmgn-cli cooking \
| 接口类型 | 支持的链 | 链原生货币 | | 接口类型 | 支持的链 | 链原生货币 |
|----------|----------|-----------| |----------|----------|-----------|
| token / market / portfolio / track | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` | — | | token / market / portfolio / track | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche` | — |
| swap / order | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` | sol: SOL、USDC · bsc: BNB、USDC · base: ETH、USDC · eth: ETH | | swap / order | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche` | sol: SOL、USDC · bsc: BNB、USDC · base: ETH、USDC · eth: ETH |
| gas-price | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` | — | | gas-price | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche` | — |
| track kol / track smartmoney · market signal | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable`(kol/smartmoney)· `sol` / `bsc` / `robinhood` / `arc` / `stable`(signal) | — | | track kol / track smartmoney · market signal | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche`(kol/smartmoney)· `sol` / `bsc` / `base` / `eth` / `arbitrum` / `robinhood` / `arc` / `stable` / `avalanche`(signal) | — |
| cooking create | `sol` / `bsc` / `base` / `robinhood` | — | | cooking create | `sol` / `bsc` / `base` / `robinhood` | — |
--- ---
+33 -33
View File
@@ -16,7 +16,7 @@ npx gmgn-cli token info --chain <chain> --address <address> [--raw]
| Option | Required | Description | | Option | Required | Description |
|--------|----------|-------------| |--------|----------|-------------|
| `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` | | `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche` |
| `--address` | Yes | Token contract address | | `--address` | Yes | Token contract address |
--- ---
@@ -31,7 +31,7 @@ npx gmgn-cli token security --chain <chain> --address <address> [--raw]
| Option | Required | Description | | Option | Required | Description |
|--------|----------|-------------| |--------|----------|-------------|
| `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` | | `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche` |
| `--address` | Yes | Token contract address | | `--address` | Yes | Token contract address |
--- ---
@@ -46,7 +46,7 @@ npx gmgn-cli token pool --chain <chain> --address <address> [--raw]
| Option | Required | Description | | Option | Required | Description |
|--------|----------|-------------| |--------|----------|-------------|
| `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` | | `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche` |
| `--address` | Yes | Token contract address | | `--address` | Yes | Token contract address |
--- ---
@@ -61,7 +61,7 @@ npx gmgn-cli token holders --chain <chain> --address <address> [--limit <n>] [--
| Option | Required | Description | | Option | Required | Description |
|--------|----------|-------------| |--------|----------|-------------|
| `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` | | `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche` |
| `--address` | Yes | Token contract address | | `--address` | Yes | Token contract address |
| `--limit` | No | Number of results (default 20, max 100) | | `--limit` | No | Number of results (default 20, max 100) |
@@ -77,7 +77,7 @@ npx gmgn-cli token traders --chain <chain> --address <address> [--limit <n>] [--
| Option | Required | Description | | Option | Required | Description |
|--------|----------|-------------| |--------|----------|-------------|
| `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` | | `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche` |
| `--address` | Yes | Token contract address | | `--address` | Yes | Token contract address |
| `--limit` | No | Number of results (default 20, max 100) | | `--limit` | No | Number of results (default 20, max 100) |
@@ -99,7 +99,7 @@ npx gmgn-cli market kline \
| Option | Required | Description | | Option | Required | Description |
|--------|----------|-------------| |--------|----------|-------------|
| `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` | | `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche` |
| `--address` | Yes | Token contract address | | `--address` | Yes | Token contract address |
| `--resolution` | Yes | Candlestick resolution: `1s` (**Pro only; max 500 candles per request**) / `30s` / `1m` / `5m` / `15m` / `1h` / `4h` / `1d` | | `--resolution` | Yes | Candlestick resolution: `1s` (**Pro only; max 500 candles per request**) / `30s` / `1m` / `5m` / `15m` / `1h` / `4h` / `1d` |
| `--from` | No | Start time (Unix seconds) | | `--from` | No | Start time (Unix seconds) |
@@ -126,7 +126,7 @@ npx gmgn-cli market trending \
| Option | Required | Description | | Option | Required | Description |
|--------|----------|-------------| |--------|----------|-------------|
| `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` | | `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche` |
| `--interval` | Yes | `1m` / `5m` / `1h` / `6h` / `24h` | | `--interval` | Yes | `1m` / `5m` / `1h` / `6h` / `24h` |
| `--limit` | No | Number of results (default 100, max 100) | | `--limit` | No | Number of results (default 100, max 100) |
| `--order-by` | No | Sort field: `volume` / `swaps` / `liquidity` / `marketcap` / `holders` / `price` / `change` / `change1m` / `change5m` / `change1h` / `renowned_count` / `smart_degen_count` / `bluechip_owner_percentage` / `rank` / `creation_timestamp` / `square_mentions` / `history_highest_market_cap` / `gas_fee` | | `--order-by` | No | Sort field: `volume` / `swaps` / `liquidity` / `marketcap` / `holders` / `price` / `change` / `change1m` / `change5m` / `change1h` / `renowned_count` / `smart_degen_count` / `bluechip_owner_percentage` / `rank` / `creation_timestamp` / `square_mentions` / `history_highest_market_cap` / `gas_fee` |
@@ -169,7 +169,7 @@ npx gmgn-cli portfolio holdings \
| Option | Required | Description | | Option | Required | Description |
|--------|----------|-------------| |--------|----------|-------------|
| `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` | | `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche` |
| `--wallet` | Yes | Wallet address | | `--wallet` | Yes | Wallet address |
| `--limit` | No | Page size (default `20`, max 50) | | `--limit` | No | Page size (default `20`, max 50) |
| `--cursor` | No | Pagination cursor | | `--cursor` | No | Pagination cursor |
@@ -201,7 +201,7 @@ npx gmgn-cli portfolio activity \
| Option | Required | Description | | Option | Required | Description |
|--------|----------|-------------| |--------|----------|-------------|
| `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` | | `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche` |
| `--wallet` | Yes | Wallet address | | `--wallet` | Yes | Wallet address |
| `--token` | No | Filter by token contract address | | `--token` | No | Filter by token contract address |
| `--limit` | No | Page size | | `--limit` | No | Page size |
@@ -223,7 +223,7 @@ npx gmgn-cli portfolio stats \
| Option | Required | Description | | Option | Required | Description |
|--------|----------|-------------| |--------|----------|-------------|
| `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` | | `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche` |
| `--wallet` | Yes | Wallet address (repeatable for batch queries) | | `--wallet` | Yes | Wallet address (repeatable for batch queries) |
--- ---
@@ -242,7 +242,7 @@ gmgn-cli portfolio profits \
| Option | Required | Description | | Option | Required | Description |
|--------|----------|-------------| |--------|----------|-------------|
| `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` | | `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche` |
| `--wallet` | Yes | Wallet address (one or more, max 100) | | `--wallet` | Yes | Wallet address (one or more, max 100) |
| `--period` | No | P&L period: `1d` / `7d` / `30d` / `all` (default `7d`) | | `--period` | No | P&L period: `1d` / `7d` / `30d` / `all` (default `7d`) |
@@ -276,7 +276,7 @@ npx gmgn-cli portfolio token-balance \
| Option | Required | Description | | Option | Required | Description |
|--------|----------|-------------| |--------|----------|-------------|
| `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` | | `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche` |
| `--wallet` | Yes | Wallet address | | `--wallet` | Yes | Wallet address |
| `--token` | Yes | Token contract address | | `--token` | Yes | Token contract address |
@@ -298,7 +298,7 @@ npx gmgn-cli portfolio created-tokens \
| Option | Required | Description | | Option | Required | Description |
|--------|----------|-------------| |--------|----------|-------------|
| `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` | | `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche` |
| `--wallet` | Yes | Developer wallet address | | `--wallet` | Yes | Developer wallet address |
| `--order-by` | No | Sort field: `market_cap` / `token_ath_mc` | | `--order-by` | No | Sort field: `market_cap` / `token_ath_mc` |
| `--direction` | No | Sort direction: `asc` / `desc` | | `--direction` | No | Sort direction: `asc` / `desc` |
@@ -316,7 +316,7 @@ npx gmgn-cli market trenches --chain <chain> [--type <type...>] [--launchpad-pla
| Option | Required | Description | | Option | Required | Description |
|--------|----------|-------------| |--------|----------|-------------|
| `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` | | `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche` |
| `--type` | No | Categories to query, repeatable: `new_creation` / `near_completion` / `completed` (default: all three) | | `--type` | No | Categories to query, repeatable: `new_creation` / `near_completion` / `completed` (default: all three) |
| `--launchpad-platform` | No | Launchpad platform filter, repeatable. **Default is NOT literally "all platforms": when omitted, the server injects a fixed per-chain default platform allow-list; passing values REPLACES that allow-list (so passing fewer platforms returns less data). Platforms outside the allow-list — including some newer RWA / tokenized-stock platforms — are filtered out.** Values depend on chain — see below. | | `--launchpad-platform` | No | Launchpad platform filter, repeatable. **Default is NOT literally "all platforms": when omitted, the server injects a fixed per-chain default platform allow-list; passing values REPLACES that allow-list (so passing fewer platforms returns less data). Platforms outside the allow-list — including some newer RWA / tokenized-stock platforms — are filtered out.** Values depend on chain — see below. |
| `--limit` | No | Max results per category (default: 80). **Best-effort only — not guaranteed.** The value is forwarded upstream but the `new_creation` category is served from a fixed live window (~60 in practice), so both larger and smaller `--limit` may still return ~60. | | `--limit` | No | Max results per category (default: 80). **Best-effort only — not guaranteed.** The value is forwarded upstream but the `new_creation` category is served from a fixed live window (~60 in practice), so both larger and smaller `--limit` may still return ~60. |
@@ -331,7 +331,7 @@ npx gmgn-cli market trenches --chain <chain> [--type <type...>] [--launchpad-pla
**`robinhood` platforms:** `trench` / `noxa` / `dyorswap` / `apestore` / `printr` / `virtuals` / `bankr` / `clanker` / `klik` / `livo` / `flap` / `flap_stocks` / `flap_pve` / `bags` / `bowfun` / `o1` / `circus` / `arrowfinance` / `longxyz` / `motion` / `pons` / `stoxes_tax` / `stoxes` / `holoworld` / `pewfun` / `dyorfun_v3` / `noxafi` **`robinhood` platforms:** `trench` / `noxa` / `dyorswap` / `apestore` / `printr` / `virtuals` / `bankr` / `clanker` / `klik` / `livo` / `flap` / `flap_stocks` / `flap_pve` / `bags` / `bowfun` / `o1` / `circus` / `arrowfinance` / `longxyz` / `motion` / `pons` / `stoxes_tax` / `stoxes` / `holoworld` / `pewfun` / `dyorfun_v3` / `noxafi`
**`arc` / `stable` platforms:** no default allow-list — the server applies no launchpad-platform filter (returns all platforms). Pass `--launchpad-platform` only if you want to narrow to specific platforms. **Other chains (arbitrum / hyperevm / arc / stable / avalanche):** the server also applies a per-chain default allow-list (see `skills/gmgn-market/SKILL.md`). Pass `--launchpad-platform` only if you want to replace it.
> The `robinhood` list above is the trenches default allow-list. It may lag behind newly launched platforms (e.g. some RWA / tokenized-stock launchpads); tokens on a platform not in this list will not appear unless/until the list is updated server-side. > The `robinhood` list above is the trenches default allow-list. It may lag behind newly launched platforms (e.g. some RWA / tokenized-stock launchpads); tokens on a platform not in this list will not appear unless/until the list is updated server-side.
@@ -353,7 +353,7 @@ gmgn-cli market signal --chain sol --groups '<json_array>' [--raw]
| Option | Required | Description | | Option | Required | Description |
|--------|----------|-------------| |--------|----------|-------------|
| `--chain` | Yes | `sol` / `bsc` / `robinhood` / `arc` / `stable` | | `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `robinhood` / `arc` / `stable` / `avalanche` (`hyperevm` not supported) |
| `--signal-type` | No | Signal type(s), repeatable: `1`–`13`, `17`–`21`; default: all supported types. Values `14` / `15` / `16` are rejected by the API. See Signal Types below. | | `--signal-type` | No | Signal type(s), repeatable: `1`–`13`, `17`–`21`; default: all supported types. Values `14` / `15` / `16` are rejected by the API. See Signal Types below. |
| `--mc-min` | No | Min market cap at trigger time (USD) | | `--mc-min` | No | Min market cap at trigger time (USD) |
| `--mc-max` | No | Max market cap at trigger time (USD) | | `--mc-max` | No | Max market cap at trigger time (USD) |
@@ -398,7 +398,7 @@ gmgn-cli market signal --chain sol --groups '<json_array>' [--raw]
Query the hot-search ranking — the most-searched tokens, ranked by `visiting_count` (search heat). Cross-chain top-500; one request can cover several chains at once. API Key auth only. Query the hot-search ranking — the most-searched tokens, ranked by `visiting_count` (search heat). Cross-chain top-500; one request can cover several chains at once. API Key auth only.
```bash ```bash
# Default 9-chain set (sol/bsc/base/eth/arbitrum/hyperevm/robinhood/arc/stable, each 24h): # Default 9-chain set (sol/bsc/base/eth/arbitrum/hyperevm/robinhood/arc/stable/avalanche, each 24h):
gmgn-cli market hot-searches [--raw] gmgn-cli market hot-searches [--raw]
# Specific chain(s) and interval: # Specific chain(s) and interval:
@@ -410,7 +410,7 @@ gmgn-cli market hot-searches --params '<json_array>' [--raw]
| Option | Required | Description | | Option | Required | Description |
|--------|----------|-------------| |--------|----------|-------------|
| `--chain` | No | Repeatable: `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable`. Omit for the default 9-chain set. | | `--chain` | No | Repeatable: `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche`. Omit for the default 9-chain set. |
| `--interval` | No | `1m` / `5m` / `1h` / `6h` / `24h` (default `24h`). Applies to every `--chain`. | | `--interval` | No | `1m` / `5m` / `1h` / `6h` / `24h` (default `24h`). Applies to every `--chain`. |
| `--limit` | No | Max results per chain (default `500`). | | `--limit` | No | Max results per chain (default `500`). |
| `--filter` | No | Repeatable **boolean** filter tags (downstream `filter.filters`). sol defaults: `renounced` / `frozen`; EVM defaults: `not_honeypot` / `verified` / `renounced`. Recognised tags: `renounced` / `frozen` (sol) / `is_burnt` / `token_burnt` / `not_wash_trading` / `not_honeypot` (EVM) / `verified` (EVM) / `locked` (EVM) / `has_social` / `distribed` / `not_risk` / `img_not_duplicate` / `social_not_duplicate` / `creator_hold` / `creator_close` / `dexscr_update_link` / `launching` / `migrated` / `hide_b20` (base) / `hide_non_b20` (base). Unknown tags are silent no-ops. | | `--filter` | No | Repeatable **boolean** filter tags (downstream `filter.filters`). sol defaults: `renounced` / `frozen`; EVM defaults: `not_honeypot` / `verified` / `renounced`. Recognised tags: `renounced` / `frozen` (sol) / `is_burnt` / `token_burnt` / `not_wash_trading` / `not_honeypot` (EVM) / `verified` (EVM) / `locked` (EVM) / `has_social` / `distribed` / `not_risk` / `img_not_duplicate` / `social_not_duplicate` / `creator_hold` / `creator_close` / `dexscr_update_link` / `launching` / `migrated` / `hide_b20` (base) / `hide_non_b20` (base). Unknown tags are silent no-ops. |
@@ -439,7 +439,7 @@ gmgn-cli track follow-tokens \
| Option | Required | Description | | Option | Required | Description |
|--------|----------|-------------| |--------|----------|-------------|
| `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` | | `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche` |
| `--wallet` | Yes | Wallet address | | `--wallet` | Yes | Wallet address |
| `--group-id` | No | `all_group` (all tokens), `default`, or a user-defined group ID | | `--group-id` | No | `all_group` (all tokens), `default`, or a user-defined group ID |
| `--interval` | No | Time interval for price change stats: `1m` / `5m` / `1h` / `6h` / `24h` | | `--interval` | No | Time interval for price change stats: `1m` / `5m` / `1h` / `6h` / `24h` |
@@ -464,7 +464,7 @@ gmgn-cli track follow-token-groups \
| Option | Required | Description | | Option | Required | Description |
|--------|----------|-------------| |--------|----------|-------------|
| `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` | | `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche` |
| `--wallet` | Yes | Wallet address | | `--wallet` | Yes | Wallet address |
--- ---
@@ -487,7 +487,7 @@ gmgn-cli track follow-wallet \
| Option | Required | Description | | Option | Required | Description |
|--------|----------|-------------| |--------|----------|-------------|
| `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` | | `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche` |
| `--wallet` | No | Wallet address (optional; follow list resolved from API Key's bound user account) | | `--wallet` | No | Wallet address (optional; follow list resolved from API Key's bound user account) |
| `--limit` | No | Page size (1–100, default 10) | | `--limit` | No | Page size (1–100, default 10) |
| `--side` | No | Trade direction: `buy` / `sell` | | `--side` | No | Trade direction: `buy` / `sell` |
@@ -507,7 +507,7 @@ gmgn-cli track kol [--chain <chain>] [--limit <n>] [--side <side>] [--raw]
| Option | Required | Description | | Option | Required | Description |
|--------|----------|-------------| |--------|----------|-------------|
| `--chain` | No | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` (default `sol`) | | `--chain` | No | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche` (default `sol`) |
| `--limit` | No | Page size (1–200, default 100) | | `--limit` | No | Page size (1–200, default 100) |
| `--side` | No | Filter by trade direction: `buy` / `sell` (client-side filter) | | `--side` | No | Filter by trade direction: `buy` / `sell` (client-side filter) |
@@ -523,7 +523,7 @@ gmgn-cli track smartmoney [--chain <chain>] [--limit <n>] [--side <side>] [--raw
| Option | Required | Description | | Option | Required | Description |
|--------|----------|-------------| |--------|----------|-------------|
| `--chain` | No | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` (default `sol`) | | `--chain` | No | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche` (default `sol`) |
| `--limit` | No | Page size (1–200, default 100) | | `--limit` | No | Page size (1–200, default 100) |
| `--side` | No | Filter by trade direction: `buy` / `sell` (client-side filter) | | `--side` | No | Filter by trade direction: `buy` / `sell` (client-side filter) |
@@ -539,7 +539,7 @@ gmgn-cli callout record --chain <chain> --wallet <address> [--token <address>] [
| Option | Required | Description | | Option | Required | Description |
|--------|----------|-------------| |--------|----------|-------------|
| `--chain` | Yes | `sol` / `bsc` / `eth` / `base` / `megaeth` / `hyperevm` / `tron` / `monad` / `xlayer` / `robinhood` / `arbitrum` / `arc` / `stable` | | `--chain` | Yes | `sol` / `bsc` / `eth` / `base` / `megaeth` / `hyperevm` / `tron` / `monad` / `xlayer` / `robinhood` / `arbitrum` / `arc` / `stable` / `avalanche` |
| `--wallet` | Yes | Call-out wallet address | | `--wallet` | Yes | Call-out wallet address |
| `--token` | No | Only call-outs on this token | | `--token` | No | Only call-outs on this token |
| `--limit` | No | Page size (0–50, 0 = server default) | | `--limit` | No | Page size (0–50, 0 = server default) |
@@ -586,7 +586,7 @@ npx gmgn-cli order quote \
| Option | Required | Description | | Option | Required | Description |
|--------|----------|-------------| |--------|----------|-------------|
| `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` | | `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche` |
| `--from` | Yes | Wallet address | | `--from` | Yes | Wallet address |
| `--input-token` | Yes | Input token contract address | | `--input-token` | Yes | Input token contract address |
| `--output-token` | Yes | Output token contract address | | `--output-token` | Yes | Output token contract address |
@@ -633,7 +633,7 @@ npx gmgn-cli swap \
| Option | Required | Chain | Description | | Option | Required | Chain | Description |
|--------|----------|-------|-------------| |--------|----------|-------|-------------|
| `--chain` | Yes | all | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` | | `--chain` | Yes | all | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche` |
| `--from` | Yes | all | Wallet address (must match the wallet bound to the API Key) | | `--from` | Yes | all | Wallet address (must match the wallet bound to the API Key) |
| `--input-token` | Yes | all | Input token contract address | | `--input-token` | Yes | all | Input token contract address |
| `--output-token` | Yes | all | Output token contract address | | `--output-token` | Yes | all | Output token contract address |
@@ -710,7 +710,7 @@ gmgn-cli multi-swap \
| Option | Required | Chain | Description | | Option | Required | Chain | Description |
|--------|----------|-------|-------------| |--------|----------|-------|-------------|
| `--chain` | Yes | all | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` | | `--chain` | Yes | all | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche` |
| `--accounts` | Yes | all | Comma-separated wallet addresses (1–100, all bound to API Key) | | `--accounts` | Yes | all | Comma-separated wallet addresses (1–100, all bound to API Key) |
| `--input-token` | Yes | all | Input token contract address | | `--input-token` | Yes | all | Input token contract address |
| `--output-token` | Yes | all | Output token contract address | | `--output-token` | Yes | all | Output token contract address |
@@ -753,7 +753,7 @@ npx gmgn-cli order get --chain <chain> --order-id <order_id> [--raw]
| Option | Required | Description | | Option | Required | Description |
|--------|----------|-------------| |--------|----------|-------------|
| `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` | | `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche` |
| `--order-id` | Yes | Order ID (returned by the `swap` command) | | `--order-id` | Yes | Order ID (returned by the `swap` command) |
**Response fields (data):** Same structure as the `swap` response above. **Response fields (data):** Same structure as the `swap` response above.
@@ -788,11 +788,11 @@ gmgn-cli order strategy create \
| Option | Required | Description | | Option | Required | Description |
|--------|----------|-------------| |--------|----------|-------------|
| `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` | | `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche` |
| `--from` | Yes | Wallet address (must match API Key binding) | | `--from` | Yes | Wallet address (must match API Key binding) |
| `--base-token` | Yes | Base token contract address | | `--base-token` | Yes | Base token contract address |
| `--quote-token` | Yes | Quote token contract address | | `--quote-token` | Yes | Quote token contract address |
| `--order-type` | Yes | Order type: `limit_order` / `smart_trade`. **`arc` / `stable` support `limit_order` only** — `smart_trade` returns a 400. | | `--order-type` | Yes | Order type: `limit_order` / `smart_trade`. **`arbitrum` / `hyperevm` / `arc` / `stable` / `avalanche` support `limit_order` only** — V1 `smart_trade` returns a 400 there (use the OpenAPI V2 strategy endpoint for TP/SL). |
| `--sub-order-type` | Yes | `limit_order`: `buy_low` / `buy_high` / `stop_loss` / `take_profit`; `smart_trade` with condition_orders: `mix_trade` | | `--sub-order-type` | Yes | `limit_order`: `buy_low` / `buy_high` / `stop_loss` / `take_profit`; `smart_trade` with condition_orders: `mix_trade` |
| `--check-price` | No* | Trigger check price — required for `limit_order`; omit for `smart_trade` (trigger is in the `buy_low` condition order) | | `--check-price` | No* | Trigger check price — required for `limit_order`; omit for `smart_trade` (trigger is in the `buy_low` condition order) |
| `--open-price` | No | Open price of the position | | `--open-price` | No | Open price of the position |
@@ -834,7 +834,7 @@ gmgn-cli order strategy list --chain <chain> --group-tag <LimitOrder|STMix> [--t
| Option | Required | Description | | Option | Required | Description |
|--------|----------|-------------| |--------|----------|-------------|
| `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` | | `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche` |
| `--type` | No | `open` (default) / `history` | | `--type` | No | `open` (default) / `history` |
| `--from` | No | Filter by wallet address | | `--from` | No | Filter by wallet address |
| `--group-tag` | Yes | Group: `LimitOrder` / `STMix` | | `--group-tag` | Yes | Group: `LimitOrder` / `STMix` |
@@ -862,10 +862,10 @@ gmgn-cli order strategy cancel --chain <chain> --from <wallet_address> --order-i
| Option | Required | Description | | Option | Required | Description |
|--------|----------|-------------| |--------|----------|-------------|
| `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` | | `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche` |
| `--from` | Yes | Wallet address (must match API Key binding) | | `--from` | Yes | Wallet address (must match API Key binding) |
| `--order-id` | Yes | Order ID to cancel | | `--order-id` | Yes | Order ID to cancel |
| `--order-type` | No | Order type: `limit_order` / `smart_trade` | | `--order-type` | No | Order type: `limit_order` / `smart_trade` / `smart_trade_v2` (orders created via the OpenAPI V2 strategy endpoint). Default when omitted: `smart_trade` |
| `--close-sell-model` | No | Sell model when closing | | `--close-sell-model` | No | Sell model when closing |
--- ---
+1 -1
View File
@@ -130,7 +130,7 @@ read this table before using any of them.
`robinhood` / `arbitrum` / `arc` / `stable` for `callout record`. `robinhood` / `arbitrum` / `arc` / `stable` for `callout record`.
The conduct axis additionally needs `portfolio activity` and `portfolio stats`, which cover The conduct axis additionally needs `portfolio activity` and `portfolio stats`, which cover
`sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable`. `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche`.
On a chain outside that set, report the selection axis only and say the conduct axis is On a chain outside that set, report the selection axis only and say the conduct axis is
unavailable on this chain. unavailable on this chain.
+2 -2
View File
@@ -1,7 +1,7 @@
--- ---
name: gmgn-callout name: gmgn-callout
description: Read GMGN call-outs (喊单) — public token calls that wallets publish on GMGN, with call price, call market cap, multiplier since the call, thesis text and the caller's current holding. Use when user asks who is calling a token, what a wallet has called, a wallet's call-out track record (hit rate, best multiplier), or wants the latest call-out feed (KOL-only, paid declarations, safe tokens). Read-only; publishing a call-out is not supported. description: Read GMGN call-outs (喊单) — public token calls that wallets publish on GMGN, with call price, call market cap, multiplier since the call, thesis text and the caller's current holding. Use when user asks who is calling a token, what a wallet has called, a wallet's call-out track record (hit rate, best multiplier), or wants the latest call-out feed (KOL-only, paid declarations, safe tokens). Read-only; publishing a call-out is not supported.
argument-hint: "<record|global> --chain <sol|bsc|eth|base|megaeth|hyperevm|tron|monad|xlayer|robinhood|arbitrum|arc|stable> [--wallet <wallet_address>]" argument-hint: "<record|global> --chain <sol|bsc|eth|base|megaeth|hyperevm|tron|monad|xlayer|robinhood|arbitrum|arc|stable|avalanche> [--wallet <wallet_address>]"
metadata: metadata:
cliHelp: "gmgn-cli callout --help" cliHelp: "gmgn-cli callout --help"
--- ---
@@ -45,7 +45,7 @@ Use the `gmgn-cli` tool to read call-out data based on the user's request.
## Supported Chains ## Supported Chains
`sol` / `bsc` / `eth` / `base` / `megaeth` / `hyperevm` / `tron` / `monad` / `xlayer` / `robinhood` / `arbitrum` / `arc` / `stable` `sol` / `bsc` / `eth` / `base` / `megaeth` / `hyperevm` / `tron` / `monad` / `xlayer` / `robinhood` / `arbitrum` / `arc` / `stable` / `avalanche`
This is wider than the trading chains of other skills — call-outs are read-only data. A token surfaced here on e.g. `tron` or `monad` may not be queryable with `gmgn-token` or tradable with `gmgn-swap`. This is wider than the trading chains of other skills — call-outs are read-only data. A token surfaced here on e.g. `tron` or `monad` may not be queryable with `gmgn-token` or tradable with `gmgn-swap`.
+1 -1
View File
@@ -1,7 +1,7 @@
--- ---
name: gmgn-contract-dd name: gmgn-contract-dd
description: "Contract due-diligence score for one token address — contract safety, holder structure and price action combined into a single 0-100 composite, capped by GMGN's own rug label, where every deduction names the field it read and an absent field is never a passing check. Use when the user wants one verdict number rather than fields: 尽调, CA 尽调, 给这个币打个分, 这个币安全吗, 能不能买, 有没有貔貅, is this token safe, rug check, honeypot check, due-diligence score, score this contract, or pastes a bare token contract address. A bare address may equally be a wallet — Step 0 resolves which and hands wallets to gmgn-wallet-analysis. Prefer this over gmgn-token whenever the ask is a verdict rather than a field dump; the raw fields themselves — price, market cap, liquidity, holder and trader lists, the unscored security fields — are gmgn-token, chip structure is gmgn-holder-analysis, chart-pattern naming is gmgn-kline-pattern. Buy intent narrows to this skill only when the ask is a bare address: the input is --address, and no name is ever resolved here. When the user names the token instead — 帮我买 200u 的 PENGU, XX 能不能买, 能不能冲, 我想梭, buy me $500 of BONK — or wants a position size, gmgn-token-buy owns it, because picking the one right contract out of the same-name copycats and sizing slippage and gas are both outside this skill's input. That skill calls this one for the safety verdict rather than replacing it, so a bare address with no name and no amount still scores here exactly as before." description: "Contract due-diligence score for one token address — contract safety, holder structure and price action combined into a single 0-100 composite, capped by GMGN's own rug label, where every deduction names the field it read and an absent field is never a passing check. Use when the user wants one verdict number rather than fields: 尽调, CA 尽调, 给这个币打个分, 这个币安全吗, 能不能买, 有没有貔貅, is this token safe, rug check, honeypot check, due-diligence score, score this contract, or pastes a bare token contract address. A bare address may equally be a wallet — Step 0 resolves which and hands wallets to gmgn-wallet-analysis. Prefer this over gmgn-token whenever the ask is a verdict rather than a field dump; the raw fields themselves — price, market cap, liquidity, holder and trader lists, the unscored security fields — are gmgn-token, chip structure is gmgn-holder-analysis, chart-pattern naming is gmgn-kline-pattern. Buy intent narrows to this skill only when the ask is a bare address: the input is --address, and no name is ever resolved here. When the user names the token instead — 帮我买 200u 的 PENGU, XX 能不能买, 能不能冲, 我想梭, buy me $500 of BONK — or wants a position size, gmgn-token-buy owns it, because picking the one right contract out of the same-name copycats and sizing slippage and gas are both outside this skill's input. That skill calls this one for the safety verdict rather than replacing it, so a bare address with no name and no amount still scores here exactly as before."
argument-hint: "--chain <sol|bsc|base|eth|arbitrum|hyperevm|robinhood|arc|stable> --address <token_address>" argument-hint: "--chain <sol|bsc|base|eth|arbitrum|hyperevm|robinhood|arc|stable|avalanche> --address <token_address>"
metadata: metadata:
cliHelp: "gmgn-cli token security --help" cliHelp: "gmgn-cli token security --help"
--- ---
+1 -1
View File
@@ -33,7 +33,7 @@ description: >-
"dev score" (decision → here): the deciding factor is whether a buy is on "dev score" (decision → here): the deciding factor is whether a buy is on
the table. If it is genuinely ambiguous, ask one short question instead of the table. If it is genuinely ambiguous, ask one short question instead of
guessing — the two produce different reports and there is no cheap hedge. guessing — the two produce different reports and there is no cheap hedge.
argument-hint: "--chain <sol|bsc|base|eth|arbitrum|hyperevm|robinhood|arc|stable> --dev <creator_address> [--max-pages <n>]" argument-hint: "--chain <sol|bsc|base|eth|arbitrum|hyperevm|robinhood|arc|stable|avalanche> --dev <creator_address> [--max-pages <n>]"
metadata: metadata:
cliHelp: "gmgn-cli portfolio created-tokens --help && gmgn-cli portfolio activity --help && gmgn-cli token info --help" cliHelp: "gmgn-cli portfolio created-tokens --help && gmgn-cli portfolio activity --help && gmgn-cli token info --help"
--- ---
+1 -1
View File
@@ -118,7 +118,7 @@ Only these fields are confirmed against the live API. Anything else — degrade
## Supported Chains ## Supported Chains
`sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche`
`robinhood` is a real chain hosting tokenized-stock tickers with the `longxyz` launchpad — do not assume a `0x…` address is on BSC/ETH. If `created-tokens` returns `inner_count=0, open_count=0`, probe the other chains before concluding the address is not a dev. `robinhood` is a real chain hosting tokenized-stock tickers with the `longxyz` launchpad — do not assume a `0x…` address is on BSC/ETH. If `created-tokens` returns `inner_count=0, open_count=0`, probe the other chains before concluding the address is not a dev.
+1 -1
View File
@@ -23,7 +23,7 @@ below is computed by you from that one response — no script, no second call.
## Supported Chains ## Supported Chains
`sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable`. `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche`.
## Prerequisites ## Prerequisites
+20 -16
View File
@@ -2,7 +2,7 @@
name: gmgn-market name: gmgn-market
description: Get crypto and meme token price charts (K-line, candlestick, OHLCV), trending meme coin rankings by volume, newly launched tokens on launchpads (pump.fun, fourmeme, letsbonk, Raydium, etc.), the hot-search ranking (most-searched tokens), and search for a specific token or wallet by name, symbol, contract address, wallet address, or ENS via GMGN API on Solana, BSC, Base, or Ethereum. Use when user asks for price chart, trending tokens, what's pumping, hot coins, most searched tokens, new launches, token signals, wants to look up / find / search a specific token or wallet by name or address, or wants to discover early-stage opportunities. description: Get crypto and meme token price charts (K-line, candlestick, OHLCV), trending meme coin rankings by volume, newly launched tokens on launchpads (pump.fun, fourmeme, letsbonk, Raydium, etc.), the hot-search ranking (most-searched tokens), and search for a specific token or wallet by name, symbol, contract address, wallet address, or ENS via GMGN API on Solana, BSC, Base, or Ethereum. Use when user asks for price chart, trending tokens, what's pumping, hot coins, most searched tokens, new launches, token signals, wants to look up / find / search a specific token or wallet by name or address, or wants to discover early-stage opportunities.
metadata: metadata:
argument-hint: "kline --chain <sol|bsc|base|eth|arbitrum|hyperevm|robinhood|arc|stable> --address <token_address> --resolution <1s|30s|1m|5m|15m|1h|4h|1d> [--from <unix_ts>] [--to <unix_ts>] | trending --chain <sol|bsc|base|eth|arbitrum|hyperevm|robinhood|arc|stable> --interval <1m|5m|1h|6h|24h> | trenches --chain <sol|bsc|base|eth|arbitrum|hyperevm|robinhood|arc|stable> | signal --chain <sol|bsc|robinhood> | hot-searches [--chain <sol|bsc|base|eth|robinhood...>] [--interval <1m|5m|1h|6h|24h>] | search --query <name|symbol|address|ens> [--chain <chain>] [--launchpad-platform <p>...] [--is-og <true|false>] [--is-launched <true|false>] [--order-by weight]" argument-hint: "kline --chain <sol|bsc|base|eth|arbitrum|hyperevm|robinhood|arc|stable|avalanche> --address <token_address> --resolution <1s|30s|1m|5m|15m|1h|4h|1d> [--from <unix_ts>] [--to <unix_ts>] | trending --chain <sol|bsc|base|eth|arbitrum|hyperevm|robinhood|arc|stable|avalanche> --interval <1m|5m|1h|6h|24h> | trenches --chain <sol|bsc|base|eth|arbitrum|hyperevm|robinhood|arc|stable|avalanche> | signal --chain <sol|bsc|base|eth|arbitrum|robinhood|arc|stable|avalanche> | hot-searches [--chain <sol|bsc|base|eth|robinhood...>] [--interval <1m|5m|1h|6h|24h>] | search --query <name|symbol|address|ens> [--chain <chain>] [--launchpad-platform <p>...] [--is-og <true|false>] [--is-launched <true|false>] [--order-by weight]"
cliHelp: "gmgn-cli market --help" cliHelp: "gmgn-cli market --help"
--- ---
@@ -50,13 +50,13 @@ Use the `gmgn-cli` tool to query K-line data for a token, browse trending tokens
| `market kline` | Token candlestick / OHLCV data and trading volume over a time range | | `market kline` | Token candlestick / OHLCV data and trading volume over a time range |
| `market trending` | Trending tokens ranked by swap activity — use `--interval` to specify the time window (e.g. `1m` for 1-minute hottest, `1h` for 1-hour trending) | | `market trending` | Trending tokens ranked by swap activity — use `--interval` to specify the time window (e.g. `1m` for 1-minute hottest, `1h` for 1-hour trending) |
| `market trenches` | Newly launched launchpad platform tokens — **use this when the user asks for "new tokens", "just launched tokens", "latest tokens on pump.fun/letsbonk"**. Three categories: `new_creation` (just created), `near_completion` (bonding curve almost full), `completed` (graduated to open market / DEX) | | `market trenches` | Newly launched launchpad platform tokens — **use this when the user asks for "new tokens", "just launched tokens", "latest tokens on pump.fun/letsbonk"**. Three categories: `new_creation` (just created), `near_completion` (bonding curve almost full), `completed` (graduated to open market / DEX) |
| `market signal` | Real-time token signal feed — price spikes, smart money buys, large buys, Dex ads, CTO events, and more. Results sorted by `trigger_at` descending. **sol / bsc / robinhood / arc / stable only. Max 50 results per group.** | | `market signal` | Real-time token signal feed — price spikes, smart money buys, large buys, Dex ads, CTO events, and more. Results sorted by `trigger_at` descending. **All supported chains except hyperevm. Max 50 results per group.** |
| `market hot-searches` | Hot-search ranking — the most-searched tokens, ranked by `visiting_count` (search heat). **Use this when the user asks "what tokens are people searching for", "most searched tokens", "hot search list", "热搜榜".** Supports multiple chains in a single request. | | `market hot-searches` | Hot-search ranking — the most-searched tokens, ranked by `visiting_count` (search heat). **Use this when the user asks "what tokens are people searching for", "most searched tokens", "hot search list", "热搜榜".** Supports multiple chains in a single request. |
| `market search` | Look up a **specific** token or wallet by name, symbol, contract address, wallet address, or ENS. Returns both matching tokens (`coins`) and wallets (`wallets`). **Use this when the user names a token/wallet and wants to find it — "search for PEPE", "look up this address", "find vitalik.eth", "查一下这个代币/钱包"** — as opposed to browsing rankings (`trending` / `hot-searches`). | | `market search` | Look up a **specific** token or wallet by name, symbol, contract address, wallet address, or ENS. Returns both matching tokens (`coins`) and wallets (`wallets`). **Use this when the user names a token/wallet and wants to find it — "search for PEPE", "look up this address", "find vitalik.eth", "查一下这个代币/钱包"** — as opposed to browsing rankings (`trending` / `hot-searches`). |
## Supported Chains ## Supported Chains
`sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` (kline / trending / trenches / hot-searches; signal: `sol` / `bsc` / `robinhood` / `arc` / `stable`; search: `--chain` is **optional** — omit to search all chains; accepts `all` and any chain the search module has enabled, including dynamically-enabled chains such as `tron` / `monad` / `megaeth` / `xlayer`) `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche` (kline / trending / trenches / hot-searches; signal: `sol` / `bsc` / `base` / `eth` / `arbitrum` / `robinhood` / `arc` / `stable` / `avalanche` (no `hyperevm`); search: `--chain` is **optional** — omit to search all chains; accepts `all` and any chain the search module has enabled, including dynamically-enabled chains such as `tron` / `monad` / `megaeth` / `xlayer`)
## Prerequisites ## Prerequisites
@@ -92,7 +92,7 @@ When a request returns `429`:
| Parameter | Required | Description | | Parameter | Required | Description |
|-----------|----------|-------------| |-----------|----------|-------------|
| `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` | | `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche` |
| `--address` | Yes | Token contract address | | `--address` | Yes | Token contract address |
| `--resolution` | Yes | Candlestick resolution: `1s` (**Pro only; at most 500 candles per request**) / `30s` / `1m` / `5m` / `15m` / `1h` / `4h` / `1d` | | `--resolution` | Yes | Candlestick resolution: `1s` (**Pro only; at most 500 candles per request**) / `30s` / `1m` / `5m` / `15m` / `1h` / `4h` / `1d` |
| `--from` | No | Start time (Unix seconds) | | `--from` | No | Start time (Unix seconds) |
@@ -135,7 +135,7 @@ The response is an object with a `list` array. Each element in `list` is one can
| Option | Description | | Option | Description |
|--------|-------------| |--------|-------------|
| `--chain` | Required. `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` | | `--chain` | Required. `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche` |
| `--interval` | Required. `1m` / `5m` / `1h` / `6h` / `24h` (default `1h`) | | `--interval` | Required. `1m` / `5m` / `1h` / `6h` / `24h` (default `1h`) |
| `--limit <n>` | Number of results (default 100, max 100) | | `--limit <n>` | Number of results (default 100, max 100) |
| `--order-by <field>` | Sort field: `default` / `swaps` / `marketcap` / `history_highest_market_cap` / `liquidity` / `volume` / `holder_count` / `smart_degen_count` / `renowned_count` / `gas_fee` / `price` / `change1m` / `change5m` / `change1h` / `creation_timestamp` | | `--order-by <field>` | Sort field: `default` / `swaps` / `marketcap` / `history_highest_market_cap` / `liquidity` / `volume` / `holder_count` / `smart_degen_count` / `renowned_count` / `gas_fee` / `price` / `change1m` / `change5m` / `change1h` / `creation_timestamp` |
@@ -559,16 +559,16 @@ Use field combinations to determine what stage a token is in. This affects how s
| Parameter | Required | Description | | Parameter | Required | Description |
|-----------|----------|-------------| |-----------|----------|-------------|
| `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` | | `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche` |
| `--type` | No | Categories to query, repeatable: `new_creation` / `near_completion` / `completed` (default: all three) | | `--type` | No | Categories to query, repeatable: `new_creation` / `near_completion` / `completed` (default: all three) |
| `--launchpad-platform` | No | Launchpad platform filter, repeatable. Omitted: sol/bsc/base/eth/robinhood use the server's fixed default allow-list; arc/stable apply no platform filter. Passing values replaces that default. | | `--launchpad-platform` | No | Launchpad platform filter, repeatable. Omitted: every chain uses the server's per-chain default allow-list (see the table below). Passing values replaces that default. |
| `--limit` | No | Max results per category, max 80 (default: 80) | | `--limit` | No | Max results per category, max 80 (default: 80) |
| `--filter-preset` | No | Named server-side filter preset: `safe` / `smart-money` / `strict` | | `--filter-preset` | No | Named server-side filter preset: `safe` / `smart-money` / `strict` |
| `--sort-by` | No | Client-side sort per category: `smart_degen_count` / `renowned_count` / `volume_24h` / `volume_1h` / `swaps_24h` / `swaps_1h` / `rug_ratio` / `holder_count` / `usd_market_cap` / `created_timestamp` | | `--sort-by` | No | Client-side sort per category: `smart_degen_count` / `renowned_count` / `volume_24h` / `volume_1h` / `swaps_24h` / `swaps_1h` / `rug_ratio` / `holder_count` / `usd_market_cap` / `created_timestamp` |
| `--direction` | No | Sort direction: `asc` / `desc` (default: `desc`; `asc` for `rug_ratio`) | | `--direction` | No | Sort direction: `asc` / `desc` (default: `desc`; `asc` for `rug_ratio`) |
| `--min-*` / `--max-*` | No | Server-side filter range flags — see Filter Fields Reference below | | `--min-*` / `--max-*` | No | Server-side filter range flags — see Filter Fields Reference below |
**`--launchpad-platform` values by chain** (on sol/bsc/base/eth/robinhood, omitting the flag uses the server default allow-list rather than all platforms): **`--launchpad-platform` values by chain** (omitting the flag uses the server's per-chain default allow-list below, on every chain — not "all platforms"; passing the flag replaces the list entirely):
| Chain | Platforms | | Chain | Platforms |
|-------|-----------| |-------|-----------|
@@ -576,8 +576,12 @@ Use field combinations to determine what stage a token is in. This affects how s
| `bsc` | `fourmeme` / `fourmeme_agent` / `bn_fourmeme` / `four_xmode_agent` / `cubepeg` / `likwid` / `goplus_creator` / `goplus_skills` / `openfour` / `flap` / `flap_stocks` / `flap_aioracle` / `clanker` / `lunafun` | | `bsc` | `fourmeme` / `fourmeme_agent` / `bn_fourmeme` / `four_xmode_agent` / `cubepeg` / `likwid` / `goplus_creator` / `goplus_skills` / `openfour` / `flap` / `flap_stocks` / `flap_aioracle` / `clanker` / `lunafun` |
| `base` | `clanker` / `bankr` / `flaunch` / `zora` / `zora_creator` / `baseapp` / `basememe` / `virtuals_v2` / `klik` | | `base` | `clanker` / `bankr` / `flaunch` / `zora` / `zora_creator` / `baseapp` / `basememe` / `virtuals_v2` / `klik` |
| `eth` | `trench` / `clanker` / `klik` / `livo` / `stroid` / `pool_uniswap_v2` / `pool_uniswap_v3` / `printr` | | `eth` | `trench` / `clanker` / `klik` / `livo` / `stroid` / `pool_uniswap_v2` / `pool_uniswap_v3` / `printr` |
| `arc` | `dyorfun_v3` / `dyorswap` / `trench` / `onmifun` / `sharcfun` / `klik` | | `arbitrum` | `odysfun_v3` / `pool_uniswap_v2` / `pool_uniswap_v3` / `pool_uniswap_v4` / `pool_pancake_v2` / `pool_pancake_v3` / `pool_camelot_v2` / `pool_camelot_v3` |
| `stable` | `dyorfun_v3` / `dyorswap` / `trench` | | `hyperevm` | `altfun` / `motion_meme` / `liqd` / `signal` |
| `robinhood` | `trench` / `noxa` / `dyorswap` / `apestore` / `printr` / `virtuals` / `bankr` / `clanker` / `klik` / `livo` / `flap` / `flap_stocks` / `flap_pve` / `bags` / `bowfun` / `o1` / `circus` / `arrowfinance` / `longxyz` / `motion` / `pons` / `stoxes_tax` / `stoxes` / `holoworld` / `pewfun` / `dyorfun_v3` / `noxafi` |
| `arc` | `trench` / `circlewarp` / `argus` / `argus_v2` / `minara` / `tollylabs_direct` / `radardex` / `o1` / `dyorswap` / `dyorfun_v3` / `sharcfun` / `lift` / `klik` / `actfun` / `peach` / `ayoo_curve` / `flutch_v3` / `archemist_v2` / `pegd` / `akafun` / `onmidotfun` / `foci` / `evefun` / `lazymemes` / `zyora_bc` / `ubifun` / `ellipse` / `arcpad` / `pool_uniswap_v2` / `pool_uniswap_v3` / `pool_uniswap_v4` |
| `stable` | `trench` / `dyorswap` / `dyorfun_v3` |
| `avalanche` | `arenatrade` / `pool_uniswap_v2` / `pool_uniswap_v3` / `pool_uniswap_v4` / `pool_pharaoh_v2` / `pool_pharaoh_v3` / `pool_pharaoh_dlmm` / `pool_lfj_v1` / `pool_blackhole_clmm` / `pool_pangolin_v2` / `pool_sushiswap_v2` / `pool_allblue_v2` |
### Filter Presets ### Filter Presets
@@ -1002,7 +1006,7 @@ Present each category separately with a header:
## `market signal` Parameters ## `market signal` Parameters
Chains: `sol` / `bsc` / `robinhood` / `arc` / `stable` only. **Maximum 50 results per group** — use multiple groups via `--groups` to cover different signal types in a single request. Chains: `sol` / `bsc` / `base` / `eth` / `arbitrum` / `robinhood` / `arc` / `stable` / `avalanche` (`hyperevm` is not supported upstream). **Maximum 50 results per group** — use multiple groups via `--groups` to cover different signal types in a single request.
**Single-group (individual flags):** **Single-group (individual flags):**
@@ -1010,7 +1014,7 @@ Do **not** pass signal types **14, 15, or 16** in `signal_type` / `--signal-type
| Option | Required | Description | | Option | Required | Description |
|--------|----------|-------------| |--------|----------|-------------|
| `--chain` | Yes | `sol` / `bsc` / `robinhood` / `arc` / `stable` | | `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `robinhood` / `arc` / `stable` / `avalanche` (`hyperevm` not supported) |
| `--signal-type` | No | Signal type(s), repeatable: `1`–`13`, `17`–`21`; default: all supported types. See Signal Types below. | | `--signal-type` | No | Signal type(s), repeatable: `1`–`13`, `17`–`21`; default: all supported types. See Signal Types below. |
| `--mc-min` | No | Min market cap at trigger time (USD) | | `--mc-min` | No | Min market cap at trigger time (USD) |
| `--mc-max` | No | Max market cap at trigger time (USD) | | `--mc-max` | No | Max market cap at trigger time (USD) |
@@ -1115,7 +1119,7 @@ Returns the hot-search ranking — the tokens people are searching for most righ
| Option | Description | | Option | Description |
|--------|-------------| |--------|-------------|
| `--chain <chain...>` | Repeatable. `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable`. **Omit to query the default 9-chain set** (each at `24h` with chain-appropriate safety filters). | | `--chain <chain...>` | Repeatable. `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche`. **Omit to query the default 10-chain set** (each at `24h` with chain-appropriate safety filters). |
| `--interval <interval>` | `1m` / `5m` / `1h` / `6h` / `24h` (default `24h`). Applies to every `--chain` provided. | | `--interval <interval>` | `1m` / `5m` / `1h` / `6h` / `24h` (default `24h`). Applies to every `--chain` provided. |
| `--limit <n>` | Max results per chain (default `500`). | | `--limit <n>` | Max results per chain (default `500`). |
| `--filter <tag...>` | Repeatable **boolean** filter tags (the downstream `filter.filters` array). **⚠️ SOL defaults: `renounced frozen`; EVM defaults: `not_honeypot verified renounced`.** Omitting `--filter` is NOT "no filter" — the server applies chain defaults. See the Filter Tags table below for the exact vocabulary. | | `--filter <tag...>` | Repeatable **boolean** filter tags (the downstream `filter.filters` array). **⚠️ SOL defaults: `renounced frozen`; EVM defaults: `not_honeypot verified renounced`.** Omitting `--filter` is NOT "no filter" — the server applies chain defaults. See the Filter Tags table below for the exact vocabulary. |
@@ -1181,7 +1185,7 @@ Numeric bounds use the **same rank-style metric names as `market trending`**. Th
**Notes on behaviour:** **Notes on behaviour:**
- `--chain all` is **not** valid. To aggregate across chains, pass `--chain` multiple times (or omit `--chain` for the default 9-chain set). - `--chain all` is **not** valid. To aggregate across chains, pass `--chain` multiple times (or omit `--chain` for the default 10-chain set).
- When you pass `--chain` but omit `--filter`, the **server** applies the chain-appropriate default filters — so each chain is filtered even without an explicit `--filter`. - When you pass `--chain` but omit `--filter`, the **server** applies the chain-appropriate default filters — so each chain is filtered even without an explicit `--filter`.
- Different chains return different counts: a chain's token count depends on how many of its tokens made the global top-500 (sol is usually the largest). - Different chains return different counts: a chain's token count depends on how many of its tokens made the global top-500 (sol is usually the largest).
@@ -1217,7 +1221,7 @@ See the [`market trending` Response Fields](#market-trending-response-fields) se
### `market hot-searches` Usage Examples ### `market hot-searches` Usage Examples
```bash ```bash
# Default 9-chain hot-search ranking (sol/bsc/base/eth/arbitrum/hyperevm/robinhood/arc/stable, each 24h) # Default 10-chain hot-search ranking (sol/bsc/base/eth/arbitrum/hyperevm/robinhood/arc/stable/avalanche, each 24h)
gmgn-cli market hot-searches --raw gmgn-cli market hot-searches --raw
# SOL only, 24h hot-search list # SOL only, 24h hot-search list
@@ -1346,7 +1350,7 @@ Present tokens and wallets separately. Do not dump the raw JSON.
- `market kline`: `--from` and `--to` are Unix timestamps in **seconds** — CLI converts to milliseconds automatically - `market kline`: `--from` and `--to` are Unix timestamps in **seconds** — CLI converts to milliseconds automatically
- `market trending`: `--filter` and `--platform` are repeatable flags - `market trending`: `--filter` and `--platform` are repeatable flags
- `market hot-searches`: `--chain` and `--filter` are repeatable flags; omit `--chain` to query the default 9-chain set. `--min-*`/`--max-*` range flags reuse the same metric names as `market trending` and are translated server-side per `--interval` - `market hot-searches`: `--chain` and `--filter` are repeatable flags; omit `--chain` to query the default 10-chain set. `--min-*`/`--max-*` range flags reuse the same metric names as `market trending` and are translated server-side per `--interval`
- `market search`: `--query` is required; `--launchpad-platform` is a repeatable flag (max 50). `--chain` is optional (omit = all chains). `--launchpad-platform` / `--is-og` / `--is-launched` / `--order-by` filter `coins` only, never `wallets` - `market search`: `--query` is required; `--launchpad-platform` is a repeatable flag (max 50). `--chain` is optional (omit = all chains). `--launchpad-platform` / `--is-og` / `--is-launched` / `--order-by` filter `coins` only, never `wallets`
- All commands use exist auth (API Key only, no signature) - All commands use exist auth (API Key only, no signature)
- If the user doesn't provide kline timestamps, calculate them from the current time based on their desired time range - If the user doesn't provide kline timestamps, calculate them from the current time based on their desired time range
+1 -1
View File
@@ -1,7 +1,7 @@
--- ---
name: gmgn-narrative name: gmgn-narrative
description: Independently research and write an AI-narrative / due-diligence card for a crypto token — the kind of "叙事分析" card that covers what story a token is telling and what's independently verifiable about its social spread. Use whenever the user asks for a token's "叙事"、"舆情"、"传播情况"、"社媒热度", wants to know "这个币在讲什么故事"/"这个币是不是在蹭热点", asks to analyze or fact-check a token's X/Twitter narrative, or gives a bare contract address together with a request to understand its story rather than just its price/security numbers. This is not a raw safety score (`gmgn-contract-dd` owns that), not a screened hot list (`gmgn-heat-rank` owns that), and not a buy decision (`gmgn-token-buy` / `gmgn-swap` own that) — route here only when the ask is specifically about story and spread. description: Independently research and write an AI-narrative / due-diligence card for a crypto token — the kind of "叙事分析" card that covers what story a token is telling and what's independently verifiable about its social spread. Use whenever the user asks for a token's "叙事"、"舆情"、"传播情况"、"社媒热度", wants to know "这个币在讲什么故事"/"这个币是不是在蹭热点", asks to analyze or fact-check a token's X/Twitter narrative, or gives a bare contract address together with a request to understand its story rather than just its price/security numbers. This is not a raw safety score (`gmgn-contract-dd` owns that), not a screened hot list (`gmgn-heat-rank` owns that), and not a buy decision (`gmgn-token-buy` / `gmgn-swap` own that) — route here only when the ask is specifically about story and spread.
argument-hint: "--chain <sol|bsc|base|eth|arbitrum|hyperevm|robinhood|arc|stable> --address <token_address>" argument-hint: "--chain <sol|bsc|base|eth|arbitrum|hyperevm|robinhood|arc|stable|avalanche> --address <token_address>"
metadata: metadata:
cliHelp: "gmgn-cli token info --help && gmgn-cli token security --help" cliHelp: "gmgn-cli token info --help && gmgn-cli token security --help"
--- ---
+2 -2
View File
@@ -1,7 +1,7 @@
--- ---
name: gmgn-portfolio name: gmgn-portfolio
description: Analyze one or many crypto wallets by address — holdings, batch realized/unrealized P&L, win rate, trading history, performance stats, specific token balance, and tokens created by a developer wallet (with ATH market cap and DEX graduation status) via GMGN API on Solana, BSC, Base, or Ethereum. Use when user asks about wallet holdings, P&L (including comparing up to 100 wallets), win rate, what tokens a dev has launched, the highest ATH token a dev ever created, or wants a wallet report to decide whether to copy-trade or follow. description: Analyze one or many crypto wallets by address — holdings, batch realized/unrealized P&L, win rate, trading history, performance stats, specific token balance, and tokens created by a developer wallet (with ATH market cap and DEX graduation status) via GMGN API on Solana, BSC, Base, or Ethereum. Use when user asks about wallet holdings, P&L (including comparing up to 100 wallets), win rate, what tokens a dev has launched, the highest ATH token a dev ever created, or wants a wallet report to decide whether to copy-trade or follow.
argument-hint: "<info|holdings|activity|stats|profits|token-balance|created-tokens> [--chain <sol|bsc|base|eth|arbitrum|hyperevm|robinhood|arc|stable>] [--wallet <wallet_address...>]" argument-hint: "<info|holdings|activity|stats|profits|token-balance|created-tokens> [--chain <sol|bsc|base|eth|arbitrum|hyperevm|robinhood|arc|stable|avalanche>] [--wallet <wallet_address...>]"
metadata: metadata:
cliHelp: "gmgn-cli portfolio --help" cliHelp: "gmgn-cli portfolio --help"
--- ---
@@ -46,7 +46,7 @@ Use the `gmgn-cli` tool to query wallet portfolio data based on the user's reque
## Supported Chains ## Supported Chains
`sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche`
## Prerequisites ## Prerequisites
+13 -13
View File
@@ -23,7 +23,7 @@ description: >-
catch. Everything else is unchanged and unconditionally this skill's: catch. Everything else is unchanged and unconditionally this skill's:
selling, percentage sells, swaps, multi-wallet batch trading, limit orders, selling, percentage sells, swaps, multi-wallet batch trading, limit orders,
stop loss, take profit, trailing orders, order status, gas prices. stop loss, take profit, trailing orders, order status, gas prices.
argument-hint: "[--chain <chain> --from <wallet> --input-token <addr> --output-token <addr> --amount <n>] | [order get --chain <chain> --order-id <id>] | [gas-price --chain <eth|bsc|base|sol>] | [order strategy list --chain <chain> --group-tag <LimitOrder|STMix>] | [order strategy create --chain <chain> --order-type <limit_order|smart_trade> --sub-order-type <buy_low|buy_high|stop_loss|take_profit|mix_trade> ...]" argument-hint: "[--chain <chain> --from <wallet> --input-token <addr> --output-token <addr> --amount <n>] | [order get --chain <chain> --order-id <id>] | [gas-price --chain <sol|bsc|base|eth|arbitrum|hyperevm|robinhood|arc|stable|avalanche>] | [order strategy list --chain <chain> --group-tag <LimitOrder|STMix>] | [order strategy create --chain <chain> --order-type <limit_order|smart_trade> --sub-order-type <buy_low|buy_high|stop_loss|take_profit|mix_trade> ...]"
metadata: metadata:
cliHelp: "gmgn-cli swap --help" cliHelp: "gmgn-cli swap --help"
--- ---
@@ -79,7 +79,7 @@ Use the `gmgn-cli` tool to submit a token swap or query an existing order. `GMGN
## Supported Chains ## Supported Chains
`sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche`
## Chain Currencies ## Chain Currencies
@@ -179,7 +179,7 @@ gmgn-cli swap \
| Parameter | Required | Chain | Description | | Parameter | Required | Chain | Description |
|-----------|----------|-------|-------------| |-----------|----------|-------|-------------|
| `--chain` | Yes | all | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` | | `--chain` | Yes | all | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche` |
| `--from` | Yes | all | Wallet address (must match API Key binding) | | `--from` | Yes | all | Wallet address (must match API Key binding) |
| `--input-token` | Yes | all | Input token contract address | | `--input-token` | Yes | all | Input token contract address |
| `--output-token` | Yes | all | Output token contract address | | `--output-token` | Yes | all | Output token contract address |
@@ -360,7 +360,7 @@ gmgn-cli multi-swap \
| Parameter | Required | Chain | Description | | Parameter | Required | Chain | Description |
|-----------|----------|-------|-------------| |-----------|----------|-------|-------------|
| `--chain` | Yes | all | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` | | `--chain` | Yes | all | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche` |
| `--accounts` | Yes | all | Comma-separated wallet addresses (1–100, all must be bound to the API Key) | | `--accounts` | Yes | all | Comma-separated wallet addresses (1–100, all must be bound to the API Key) |
| `--input-token` | Yes | all | Input token contract address | | `--input-token` | Yes | all | Input token contract address |
| `--output-token` | Yes | all | Output token contract address | | `--output-token` | Yes | all | Output token contract address |
@@ -527,11 +527,11 @@ gmgn-cli order strategy create \
| Parameter | Required | Chain | Description | | Parameter | Required | Chain | Description |
|-----------|----------|-------|-------------| |-----------|----------|-------|-------------|
| `--chain` | Yes | all | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` | | `--chain` | Yes | all | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche` |
| `--from` | Yes | all | Wallet address (must match API Key binding) | | `--from` | Yes | all | Wallet address (must match API Key binding) |
| `--base-token` | Yes | all | Base token contract address | | `--base-token` | Yes | all | Base token contract address |
| `--quote-token` | Yes | all | Quote token contract address | | `--quote-token` | Yes | all | Quote token contract address |
| `--order-type` | Yes | all | Order type: `limit_order` / `smart_trade`. **`arc` / `stable` support `limit_order` only** — `smart_trade` returns a 400. | | `--order-type` | Yes | all | Order type: `limit_order` / `smart_trade`. **`arbitrum` / `hyperevm` / `arc` / `stable` / `avalanche` support `limit_order` only** — V1 `smart_trade` returns a 400 there (use the OpenAPI V2 strategy endpoint for TP/SL). |
| `--sub-order-type` | Yes | all | `limit_order`: `buy_low` / `buy_high` / `stop_loss` / `take_profit`; `smart_trade` with condition_orders: `mix_trade` | | `--sub-order-type` | Yes | all | `limit_order`: `buy_low` / `buy_high` / `stop_loss` / `take_profit`; `smart_trade` with condition_orders: `mix_trade` |
| `--check-price` | No* | all | Trigger price — required for `limit_order`; omit for `smart_trade` (trigger is in the `buy_low` condition order) | | `--check-price` | No* | all | Trigger price — required for `limit_order`; omit for `smart_trade` (trigger is in the `buy_low` condition order) |
| `--open-price` | No | all | Open price of the position | | `--open-price` | No | all | Open price of the position |
@@ -553,7 +553,7 @@ gmgn-cli order strategy create \
| `--max-fee-per-gas` | No | `bsc` / `base` / `eth` | EIP-1559 max fee per gas. | | `--max-fee-per-gas` | No | `bsc` / `base` / `eth` | EIP-1559 max fee per gas. |
| `--max-priority-fee-per-gas` | No | `bsc` / `base` / `eth` | EIP-1559 max priority fee per gas. Capped to `--max-fee-per-gas`. | | `--max-priority-fee-per-gas` | No | `bsc` / `base` / `eth` | EIP-1559 max priority fee per gas. Capped to `--max-fee-per-gas`. |
| `--anti-mev` | No | sol / bsc / eth | Enable anti-MEV protection. Not supported on `base`. | | `--anti-mev` | No | sol / bsc / eth | Enable anti-MEV protection. Not supported on `base`. |
| `--condition-orders` | No | sol / bsc / base / eth / robinhood | JSON array of condition sub-orders for `smart_trade`. Must include one `buy_low` entry (with `check_price` lower than `open_price`) plus at least one TP/SL entry. **Not supported on `arc` / `stable`** (`smart_trade` is rejected there). | | `--condition-orders` | No | sol / bsc / base / eth / robinhood | JSON array of condition sub-orders for `smart_trade`. Must include one `buy_low` entry (with `check_price` lower than `open_price`) plus at least one TP/SL entry. **Not supported on `arbitrum` / `hyperevm` / `arc` / `stable` / `avalanche`** (V1 `smart_trade` is rejected there). |
### `order strategy create` Response Fields ### `order strategy create` Response Fields
@@ -584,7 +584,7 @@ gmgn-cli order strategy list --chain sol --group-tag STMix --base-token <token_a
| Parameter | Required | Description | | Parameter | Required | Description |
|-----------|----------|-------------| |-----------|----------|-------------|
| `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` | | `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche` |
| `--type` | No | `open` (default) / `history` | | `--type` | No | `open` (default) / `history` |
| `--from` | No | Filter by wallet address | | `--from` | No | Filter by wallet address |
| `--group-tag` | Yes | Filter by order group: `LimitOrder` (limit orders only) / `STMix` (mixed strategy orders: take-profit, stop-loss, trailing take-profit, trailing stop-loss) | | `--group-tag` | Yes | Filter by order group: `LimitOrder` (limit orders only) / `STMix` (mixed strategy orders: take-profit, stop-loss, trailing take-profit, trailing stop-loss) |
@@ -608,7 +608,7 @@ gmgn-cli order strategy list --chain sol --group-tag STMix --base-token <token_a
| `auto_slippage` | bool | Whether auto slippage is enabled | | `auto_slippage` | bool | Whether auto slippage is enabled |
| `base_decimal` | int | Base token decimal places | | `base_decimal` | int | Base token decimal places |
| `base_token` | string | Base token contract address | | `base_token` | string | Base token contract address |
| `chain` | string | Chain: `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` | | `chain` | string | Chain: `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche` |
| `close_amount` | string | Token amount sold on close; empty when order is open | | `close_amount` | string | Token amount sold on close; empty when order is open |
| `close_price` | string | Token price at close; empty when order is open | | `close_price` | string | Token price at close; empty when order is open |
| `close_sell_model` | string | Sell model used on close; empty when order is open | | `close_sell_model` | string | Sell model used on close; empty when order is open |
@@ -633,7 +633,7 @@ gmgn-cli order strategy list --chain sol --group-tag STMix --base-token <token_a
| `open_sign_hash` | string | Open transaction hash; empty before confirmed | | `open_sign_hash` | string | Open transaction hash; empty before confirmed |
| `order_id` | string | Unique order ID (UUID) | | `order_id` | string | Unique order ID (UUID) |
| `order_statistic` | object | Cumulative order statistics; see `order_statistic` Object below | | `order_statistic` | object | Cumulative order statistics; see `order_statistic` Object below |
| `order_type` | string | Order type: `smart_trade` / `limit_order` | | `order_type` | string | Order type: `smart_trade` / `smart_trade_v2` / `limit_order` — pass it as `--order-type` to `order strategy cancel` |
| `place_action` | string | Placement action; empty when not applicable | | `place_action` | string | Placement action; empty when not applicable |
| `prepare_status` | string | Preparation status; empty when not applicable | | `prepare_status` | string | Preparation status; empty when not applicable |
| `priority_fee` | string | Priority fee; SOL / BSC only | | `priority_fee` | string | Priority fee; SOL / BSC only |
@@ -722,10 +722,10 @@ gmgn-cli order strategy cancel \
| Parameter | Required | Description | | Parameter | Required | Description |
|-----------|----------|-------------| |-----------|----------|-------------|
| `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` | | `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche` |
| `--from` | Yes | Wallet address (must match API Key binding) | | `--from` | Yes | Wallet address (must match API Key binding) |
| `--order-id` | Yes | Order ID to cancel | | `--order-id` | Yes | Order ID to cancel |
| `--order-type` | No | Order type: `limit_order` (limit order) / `smart_trade` (mixed strategy order: take-profit, stop-loss, trailing take-profit, trailing stop-loss) | | `--order-type` | No | Order type: `limit_order` (limit order) / `smart_trade` (mixed strategy order: take-profit, stop-loss, trailing take-profit, trailing stop-loss) / `smart_trade_v2` (orders created via the OpenAPI V2 strategy endpoint). Default when omitted: `smart_trade` |
| `--close-sell-model` | No | Sell model when closing the order | | `--close-sell-model` | No | Sell model when closing the order |
--- ---
@@ -737,7 +737,7 @@ gmgn-cli order strategy cancel \
- `--amount` is in the **smallest unit** (e.g., lamports for SOL) - `--amount` is in the **smallest unit** (e.g., lamports for SOL)
- `order strategy create`, `order strategy list`, and `order strategy cancel` use signed auth (require `GMGN_PRIVATE_KEY`) - `order strategy create`, `order strategy list`, and `order strategy cancel` use signed auth (require `GMGN_PRIVATE_KEY`)
- Use `--raw` to get single-line JSON for further processing - Use `--raw` to get single-line JSON for further processing
- **Chain restrictions for fee flags** — see the `Chain` column in each parameter table above. `--priority-fee` and `--tip-fee` are SOL/BSC only; `--gas-price`, `--max-fee-per-gas`, `--max-priority-fee-per-gas` are BSC/BASE/ETH only; `--gas-level` and `--auto-fee` are ETH only. The server returns 400 if a chain-restricted flag is sent on the wrong chain. (`gas-price` itself supports all four chains including `sol`.) - **Chain restrictions for fee flags** — see the `Chain` column in each parameter table above. `--priority-fee` and `--tip-fee` are SOL/BSC only; `--gas-price`, `--max-fee-per-gas`, `--max-priority-fee-per-gas` are BSC/BASE/ETH only; `--gas-level` and `--auto-fee` are ETH only. The server returns 400 if a chain-restricted flag is sent on the wrong chain. (`gas-price` itself supports every chain: `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche`.)
- **No per-chain fee bounds** — the OpenAPI layer does not clamp `--priority-fee`, `--tip-fee`, `--gas-price`, `--max-fee-per-gas` or `--max-priority-fee-per-gas` to any minimum or maximum; values are forwarded as-is and the trade backend enforces its global fee ceilings. The server only checks: - **No per-chain fee bounds** — the OpenAPI layer does not clamp `--priority-fee`, `--tip-fee`, `--gas-price`, `--max-fee-per-gas` or `--max-priority-fee-per-gas` to any minimum or maximum; values are forwarded as-is and the trade backend enforces its global fee ceilings. The server only checks:
- every fee must be a non-negative number, otherwise 400 - every fee must be a non-negative number, otherwise 400
- BSC: `max_fee_per_gas` / `max_priority_fee_per_gas` of `"0"` returns 400 - BSC: `max_fee_per_gas` / `max_priority_fee_per_gas` of `"0"` returns 400
+1 -1
View File
@@ -36,7 +36,7 @@ description: >-
and an amount needs sizing, so both start here; a bare address needs only a and an amount needs sizing, so both start here; a bare address needs only a
verdict, so it is gmgn-contract-dd's; a signed transaction is always verdict, so it is gmgn-contract-dd's; a signed transaction is always
gmgn-swap's. gmgn-swap's.
argument-hint: "<token name | symbol | contract address> [amount, e.g. 200u | 0.5 ETH | 1 sol] [--chain <sol|bsc|base|eth|arbitrum|hyperevm|robinhood|arc|stable>]" argument-hint: "<token name | symbol | contract address> [amount, e.g. 200u | 0.5 ETH | 1 sol] [--chain <sol|bsc|base|eth|arbitrum|hyperevm|robinhood|arc|stable|avalanche>]"
metadata: metadata:
cliHelp: "gmgn-cli market search --help" cliHelp: "gmgn-cli market search --help"
--- ---
+4 -4
View File
@@ -1,7 +1,7 @@
--- ---
name: gmgn-token name: gmgn-token
description: Research any crypto or meme token by address — real-time price, market cap, liquidity, holder list, trader list, top Smart Money and KOL positions, security audit (honeypot, rug pull risk, dev wallet, renounced status), social links (Twitter/X, website) via GMGN API on Solana, BSC, Base, or Ethereum. Use when user asks about a token's price, safety, holders, traders, smart money exposure, or wants due diligence before buying. description: Research any crypto or meme token by address — real-time price, market cap, liquidity, holder list, trader list, top Smart Money and KOL positions, security audit (honeypot, rug pull risk, dev wallet, renounced status), social links (Twitter/X, website) via GMGN API on Solana, BSC, Base, or Ethereum. Use when user asks about a token's price, safety, holders, traders, smart money exposure, or wants due diligence before buying.
argument-hint: "<sub-command> --chain <sol|bsc|base|eth|arbitrum|hyperevm|robinhood|arc|stable> --address <token_address>" argument-hint: "<sub-command> --chain <sol|bsc|base|eth|arbitrum|hyperevm|robinhood|arc|stable|avalanche> --address <token_address>"
metadata: metadata:
cliHelp: "gmgn-cli token --help" cliHelp: "gmgn-cli token --help"
--- ---
@@ -46,7 +46,7 @@ Use the `gmgn-cli` tool to query token information based on the user's request.
## Supported Chains ## Supported Chains
`sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche`
## Prerequisites ## Prerequisites
@@ -80,7 +80,7 @@ When a request returns `429`:
| Parameter | Required | Description | | Parameter | Required | Description |
|-----------|----------|-------------| |-----------|----------|-------------|
| `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` | | `--chain` | Yes | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche` |
| `--address` | Yes | Token contract address | | `--address` | Yes | Token contract address |
| `--raw` | No | Output raw single-line JSON (for piping or further processing) | | `--raw` | No | Output raw single-line JSON (for piping or further processing) |
@@ -88,7 +88,7 @@ When a request returns `429`:
| Parameter | Required | Default | Description | | Parameter | Required | Default | Description |
|-----------|----------|---------|-------------| |-----------|----------|---------|-------------|
| `--chain` | Yes | — | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` | | `--chain` | Yes | — | `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche` |
| `--address` | Yes | — | Token contract address | | `--address` | Yes | — | Token contract address |
| `--limit` | No | `20` | Number of results, max `100` | | `--limit` | No | `20` | Number of results, max `100` |
| `--order-by` | No | `amount_percentage` | Sort field — see table below | | `--order-by` | No | `amount_percentage` | Sort field — see table below |
+5 -5
View File
@@ -1,7 +1,7 @@
--- ---
name: gmgn-track name: gmgn-track
description: Get real-time crypto buy/sell activity from Smart Money wallets, KOL influencer wallets, and personally followed wallets via GMGN API — alpha signals, whale tracking, meme token copy-trading ideas on Solana, BSC, Base, or Ethereum. Also query which tokens a wallet has followed (bookmarked) on GMGN. Use when user asks what smart money or KOLs are buying, wants whale alerts, on-chain alpha, copy-trade signals, or wants to check a wallet's followed tokens. (For a specific wallet address's portfolio, use gmgn-portfolio.) description: Get real-time crypto buy/sell activity from Smart Money wallets, KOL influencer wallets, and personally followed wallets via GMGN API — alpha signals, whale tracking, meme token copy-trading ideas on Solana, BSC, Base, or Ethereum. Also query which tokens a wallet has followed (bookmarked) on GMGN. Use when user asks what smart money or KOLs are buying, wants whale alerts, on-chain alpha, copy-trade signals, or wants to check a wallet's followed tokens. (For a specific wallet address's portfolio, use gmgn-portfolio.)
argument-hint: "<follow-tokens|follow-wallet|kol|smartmoney> --chain <sol|bsc|base|eth|arbitrum|hyperevm|robinhood|arc|stable> [--wallet <wallet_address>]" argument-hint: "<follow-tokens|follow-wallet|kol|smartmoney> --chain <sol|bsc|base|eth|arbitrum|hyperevm|robinhood|arc|stable|avalanche> [--wallet <wallet_address>]"
metadata: metadata:
cliHelp: "gmgn-cli track --help" cliHelp: "gmgn-cli track --help"
--- ---
@@ -59,7 +59,7 @@ Use the `gmgn-cli` tool to query on-chain tracking data based on the user's requ
## Supported Chains ## Supported Chains
`sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche`
## Prerequisites ## Prerequisites
@@ -134,7 +134,7 @@ gmgn-cli track smartmoney --chain sol --side sell --limit 10 --raw
| Option | Description | | Option | Description |
|--------|-------------| |--------|-------------|
| `--chain` | Required. `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` | | `--chain` | Required. `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche` |
| `--wallet <address>` | Required. Wallet address to query | | `--wallet <address>` | Required. Wallet address to query |
| `--group-id <id>` | Filter by group: `all_group` (all tokens across groups), `default` (default group), or a user-defined group ID | | `--group-id <id>` | Filter by group: `all_group` (all tokens across groups), `default` (default group), or a user-defined group ID |
| `--interval <interval>` | Time interval for price change stats (e.g. `1m`, `5m`, `1h`, `6h`, `24h`) | | `--interval <interval>` | Time interval for price change stats (e.g. `1m`, `5m`, `1h`, `6h`, `24h`) |
@@ -176,7 +176,7 @@ Each item in `followings` contains:
| Option | Description | | Option | Description |
|--------|-------------| |--------|-------------|
| `--chain` | Required. `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` | | `--chain` | Required. `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche` |
| `--wallet <address>` | Required. Wallet address to query | | `--wallet <address>` | Required. Wallet address to query |
## `track follow-token-groups` Response Fields ## `track follow-token-groups` Response Fields
@@ -194,7 +194,7 @@ Each item in `followings` contains:
| Option | Description | | Option | Description |
|--------|-------------| |--------|-------------|
| `--chain` | Required. `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` | | `--chain` | Required. `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche` |
| `--wallet <address>` | Filter by wallet address | | `--wallet <address>` | Filter by wallet address |
| `--limit <n>` | Page size (1–100, default 10) | | `--limit <n>` | Page size (1–100, default 10) |
| `--side <side>` | Trade direction: `buy` / `sell` | | `--side <side>` | Trade direction: `buy` / `sell` |
+2 -2
View File
@@ -2,7 +2,7 @@
name: gmgn-wallet-analysis name: gmgn-wallet-analysis
description: >- description: >-
The trader's decision dossier on a wallet — four pass/fail gates (is the record real, is the edge still working THIS week, can you actually get filled, does it cut losses) plus what the wallet is holding and buying right now, its entry market-cap band, its copy window in seconds, and a concrete size cap. Answers the question a memecoin trader actually has: "the numbers look good, but if I copy this wallet what happens to me?" Use when the user asks 「这个钱包能跟吗」, 「帮我分析一下这个钱包」, 「它现在在买什么」, 「这个钱包最近还行吗」, 「跟着他买我能吃到吗」, 「他是不是已经不行了」, 「它是什么类型的」, "can I copy this wallet", "analyze this wallet", "what is this wallet buying now", "is this wallet still hot", "would I actually get filled following this", or pastes a bare wallet address. This is the default for a bare wallet address, answering "what kind of trader is this" and "should I act on it" in one pass. A one-line recap or 打法 advice (复盘, 一句话总结, 下一步怎么打) goes to gmgn-wallet-review; style-only asks (这个钱包什么风格, 打法) to gmgn-wallet-style. The trader's decision dossier on a wallet — four pass/fail gates (is the record real, is the edge still working THIS week, can you actually get filled, does it cut losses) plus what the wallet is holding and buying right now, its entry market-cap band, its copy window in seconds, and a concrete size cap. Answers the question a memecoin trader actually has: "the numbers look good, but if I copy this wallet what happens to me?" Use when the user asks 「这个钱包能跟吗」, 「帮我分析一下这个钱包」, 「它现在在买什么」, 「这个钱包最近还行吗」, 「跟着他买我能吃到吗」, 「他是不是已经不行了」, 「它是什么类型的」, "can I copy this wallet", "analyze this wallet", "what is this wallet buying now", "is this wallet still hot", "would I actually get filled following this", or pastes a bare wallet address. This is the default for a bare wallet address, answering "what kind of trader is this" and "should I act on it" in one pass. A one-line recap or 打法 advice (复盘, 一句话总结, 下一步怎么打) goes to gmgn-wallet-review; style-only asks (这个钱包什么风格, 打法) to gmgn-wallet-style.
argument-hint: "--chain <sol|bsc|base|eth|arbitrum|hyperevm|robinhood|arc|stable> --wallet <wallet_address> [--latency <seconds>]" argument-hint: "--chain <sol|bsc|base|eth|arbitrum|hyperevm|robinhood|arc|stable|avalanche> --wallet <wallet_address> [--latency <seconds>]"
metadata: metadata:
cliHelp: "gmgn-cli portfolio stats --help && gmgn-cli portfolio profits --help && gmgn-cli portfolio activity --help && gmgn-cli portfolio holdings --help && gmgn-cli portfolio created-tokens --help && gmgn-cli token info --help" cliHelp: "gmgn-cli portfolio stats --help && gmgn-cli portfolio profits --help && gmgn-cli portfolio activity --help && gmgn-cli portfolio holdings --help && gmgn-cli portfolio created-tokens --help && gmgn-cli token info --help"
--- ---
@@ -460,7 +460,7 @@ cross-check — and the CLI remains the only supported way to read wallet data.)
## Supported Chains ## Supported Chains
`sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` — whatever `gmgn-cli portfolio` accepts. `portfolio stats --period` accepts only `7d` and `30d`; `portfolio profits --period` accepts `1d` / `7d` / `30d` / `all`. Every conclusion is a statement about its window — the report names the window, and so should you. `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche` — whatever `gmgn-cli portfolio` accepts. `portfolio stats --period` accepts only `7d` and `30d`; `portfolio profits --period` accepts `1d` / `7d` / `30d` / `all`. Every conclusion is a statement about its window — the report names the window, and so should you.
## Notes ## Notes
+2 -2
View File
@@ -11,7 +11,7 @@ description: >-
("这个钱包发盘情况怎么样", "是不是发币方钱包", "dev 信誉怎么样", "is this a token-creator wallet"), or gives a wallet ("这个钱包发盘情况怎么样", "是不是发币方钱包", "dev 信誉怎么样", "is this a token-creator wallet"), or gives a wallet
address and wants any of these judgments. A one-line recap of the record or next-step advice (复盘, address and wants any of these judgments. A one-line recap of the record or next-step advice (复盘,
一句话总结战绩, 下一步怎么打) goes to gmgn-wallet-review. 一句话总结战绩, 下一步怎么打) goes to gmgn-wallet-review.
argument-hint: "--chain <sol|bsc|base|eth|arbitrum|hyperevm|robinhood|arc|stable> --wallet <wallet_address> [--latency <seconds>] [--slippage <pct>] [--gas <usd>] [--sample <n>]" argument-hint: "--chain <sol|bsc|base|eth|arbitrum|hyperevm|robinhood|arc|stable|avalanche> --wallet <wallet_address> [--latency <seconds>] [--slippage <pct>] [--gas <usd>] [--sample <n>]"
metadata: metadata:
cliHelp: "gmgn-cli portfolio stats --help && gmgn-cli portfolio activity --help && gmgn-cli portfolio created-tokens --help && gmgn-cli token security --help" cliHelp: "gmgn-cli portfolio stats --help && gmgn-cli portfolio activity --help && gmgn-cli portfolio created-tokens --help && gmgn-cli token security --help"
--- ---
@@ -516,7 +516,7 @@ Fields the script reads, confirmed against `portfolio stats` / `portfolio activi
## Supported Chains ## Supported Chains
`sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` `sol` / `bsc` / `base` / `eth` / `arbitrum` / `hyperevm` / `robinhood` / `arc` / `stable` / `avalanche`
## Prerequisites ## Prerequisites
+1 -1
View File
@@ -1,7 +1,7 @@
--- ---
name: gmgn-wallet-style name: gmgn-wallet-style
description: Tag any wallet's trading style — one main title from a 20-cell frequency×P&L grid (印钞机, 磨损户, P小将, 一击必杀, and 16 others), one holding-speed subtitle (秒杀流/日内流/波段流/长持流), and any of 14 orthogonal badges plus a wash-trader flag. Every tag states the number that triggered it. Use when the user asks what kind of trader a wallet is — 「这个钱包什么风格」, 「交易风格」, 「打法」, 「是不是机器人」, 「是不是狙击盘的」, 「帮我给这个钱包打标签」, "what's this wallet's trading style", "tag this wallet". A bare wallet address with no question goes to gmgn-wallet-analysis. If the user also wants the tag shown on a real GMGN screenshot or as a clickable interactive page ("生成标签预览", "把标签叠加到这张截图上", "1:1还原钱包页并加标签", "可交互交易风格标签"), answer with Part A below and then also do Part B — the same algorithm, rendered. When 打法 / 风格 comes with 问题, 建议, 复盘 or 一句话总结, hand off to gmgn-wallet-review, which returns one tag plus a one-line recap and next step. description: Tag any wallet's trading style — one main title from a 20-cell frequency×P&L grid (印钞机, 磨损户, P小将, 一击必杀, and 16 others), one holding-speed subtitle (秒杀流/日内流/波段流/长持流), and any of 14 orthogonal badges plus a wash-trader flag. Every tag states the number that triggered it. Use when the user asks what kind of trader a wallet is — 「这个钱包什么风格」, 「交易风格」, 「打法」, 「是不是机器人」, 「是不是狙击盘的」, 「帮我给这个钱包打标签」, "what's this wallet's trading style", "tag this wallet". A bare wallet address with no question goes to gmgn-wallet-analysis. If the user also wants the tag shown on a real GMGN screenshot or as a clickable interactive page ("生成标签预览", "把标签叠加到这张截图上", "1:1还原钱包页并加标签", "可交互交易风格标签"), answer with Part A below and then also do Part B — the same algorithm, rendered. When 打法 / 风格 comes with 问题, 建议, 复盘 or 一句话总结, hand off to gmgn-wallet-review, which returns one tag plus a one-line recap and next step.
argument-hint: "--chain <sol|bsc|base|eth|arbitrum|hyperevm|robinhood|arc|stable> --wallet <wallet_address> [--period 7d|30d] [--screenshot <path>]" argument-hint: "--chain <sol|bsc|base|eth|arbitrum|hyperevm|robinhood|arc|stable|avalanche> --wallet <wallet_address> [--period 7d|30d] [--screenshot <path>]"
metadata: metadata:
cliHelp: "gmgn-cli portfolio stats --help && gmgn-cli portfolio activity --help" cliHelp: "gmgn-cli portfolio stats --help && gmgn-cli portfolio activity --help"
--- ---
+5 -14
View File
@@ -203,7 +203,7 @@ export interface TokenSignalGroup {
export interface HotSearchesParam { export interface HotSearchesParam {
label?: string; label?: string;
interval: string; // "1m" | "5m" | "1h" | "6h" | "24h" interval: string; // "1m" | "5m" | "1h" | "6h" | "24h"
chain: string; // "sol" | "bsc" | "base" | "eth" | "robinhood" | "arc" | "stable" chain: string; // any chain accepted by validateChain
filters?: string[]; filters?: string[];
limit?: number; limit?: number;
[key: string]: string[] | number | string | undefined; [key: string]: string[] | number | string | undefined;
@@ -897,17 +897,8 @@ function formatCurl(method: string, url: string, headers: Record<string, string>
return `\n[curl]\ncurl -X ${method} '${url}' \\\n${headerArgs}${bodyArg}\n`; return `\n[curl]\ncurl -X ${method} '${url}' \\\n${headerArgs}${bodyArg}\n`;
} }
const TRENCHES_QUOTE_ADDRESS_TYPES: Record<string, number[]> = {
sol: [4, 5, 3, 1, 13, 0],
bsc: [6, 7, 1, 16, 8, 3, 9, 10, 2, 17, 18, 0],
base: [11, 3, 12, 13, 0],
eth: [20, 11, 8, 3, 12, 1, 0],
robinhood: [11, 20, 24, 12, 26, 0],
};
function buildTrenchesBody(chain: string, types?: string[], platforms?: string[], limit?: number, filters?: Record<string, number | string>): Record<string, unknown> { function buildTrenchesBody(chain: string, types?: string[], platforms?: string[], limit?: number, filters?: Record<string, number | string>): Record<string, unknown> {
const selectedTypes = types?.length ? types : ["new_creation", "near_completion", "completed"]; const selectedTypes = types?.length ? types : ["new_creation", "near_completion", "completed"];
const quote_address_type = TRENCHES_QUOTE_ADDRESS_TYPES[chain] ?? [];
const actualLimit = limit ?? 80; const actualLimit = limit ?? 80;
const section: Record<string, unknown> = { const section: Record<string, unknown> = {
filters: ["offchain", "onchain"], filters: ["offchain", "onchain"],
@@ -915,11 +906,11 @@ function buildTrenchesBody(chain: string, types?: string[], platforms?: string[]
limit: actualLimit, limit: actualLimit,
...filters, ...filters,
}; };
// Let the service apply its current per-chain launchpad defaults when the user // Let the service apply its current per-chain launchpad_platform and
// does not provide an explicit filter. Keeping a duplicate client-side allow-list // quote_address_type defaults when the user does not provide explicit filters.
// here can silently hide newly supported platforms until the CLI is released. // Keeping duplicate client-side lists here silently hides newly supported
// platforms / quote currencies until the CLI is released.
if (platforms?.length) section.launchpad_platform = platforms; if (platforms?.length) section.launchpad_platform = platforms;
if (quote_address_type.length) section.quote_address_type = quote_address_type;
const body: Record<string, unknown> = { version: "v2" }; const body: Record<string, unknown> = { version: "v2" };
for (const type of selectedTypes) { for (const type of selectedTypes) {
body[type] = { ...section }; body[type] = { ...section };
+1 -1
View File
@@ -5,7 +5,7 @@ import { exitOnError, printResult } from "../output.js";
import { validateCalloutChains, validateCalloutLimit, validateNonNegativeDecimal } from "../validate.js"; import { validateCalloutChains, validateCalloutLimit, validateNonNegativeDecimal } from "../validate.js";
const CALLOUT_CHAIN_HELP = const CALLOUT_CHAIN_HELP =
"sol / bsc / eth / base / megaeth / hyperevm / tron / monad / xlayer / robinhood / arbitrum / arc / stable"; "sol / bsc / eth / base / megaeth / hyperevm / tron / monad / xlayer / robinhood / arbitrum / arc / stable / avalanche";
export function registerCalloutCommands(program: Command): void { export function registerCalloutCommands(program: Command): void {
const callout = program.command("callout").description("Call-out (喊单) read commands: one wallet's call-out history, global call-out feed"); const callout = program.command("callout").description("Call-out (喊单) read commands: one wallet's call-out history, global call-out feed");
+10 -8
View File
@@ -5,6 +5,8 @@ import { exitOnError, printResult } from "../output.js";
import { validateAddress, validateChain, validateSearchChain, normalizeSearchQuery } from "../validate.js"; import { validateAddress, validateChain, validateSearchChain, normalizeSearchQuery } from "../validate.js";
const unsupportedSignalTypes = new Set([14, 15, 16]); const unsupportedSignalTypes = new Set([14, 15, 16]);
// Mirrors dto.TokenSignalChains in gmgn-openapi-service (google-api rejects hyperevm).
const TOKEN_SIGNAL_CHAINS = ["sol", "bsc", "base", "eth", "arbitrum", "robinhood", "arc", "stable", "avalanche"];
// Parse token age string. If a unit suffix is present (s/m), use it as-is. // Parse token age string. If a unit suffix is present (s/m), use it as-is.
// Bare numbers (no unit) are treated as minutes with a warning. // Bare numbers (no unit) are treated as minutes with a warning.
@@ -36,7 +38,7 @@ export function registerMarketCommands(program: Command): void {
market market
.command("kline") .command("kline")
.description("Get token K-line (candlestick) data") .description("Get token K-line (candlestick) data")
.requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable") .requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable / avalanche")
.requiredOption("--address <address>", "Token contract address") .requiredOption("--address <address>", "Token contract address")
.requiredOption("--resolution <resolution>", "Candlestick resolution: 1s (Pro only) / 30s / 1m / 5m / 15m / 1h / 4h / 1d") .requiredOption("--resolution <resolution>", "Candlestick resolution: 1s (Pro only) / 30s / 1m / 5m / 15m / 1h / 4h / 1d")
.option("--from <timestamp>", "Start time (Unix seconds)", parseInt) .option("--from <timestamp>", "Start time (Unix seconds)", parseInt)
@@ -61,7 +63,7 @@ export function registerMarketCommands(program: Command): void {
const trendingCmd = market const trendingCmd = market
.command("trending") .command("trending")
.description("Get trending token swap data") .description("Get trending token swap data")
.requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable") .requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable / avalanche")
.requiredOption("--interval <interval>", "Time interval: 1m / 5m / 1h / 6h / 24h") .requiredOption("--interval <interval>", "Time interval: 1m / 5m / 1h / 6h / 24h")
.option("--limit <n>", "Number of results (default 100, max 100)", parseInt) .option("--limit <n>", "Number of results (default 100, max 100)", parseInt)
.option("--order-by <field>", "Sort field: default / volume / swaps / marketcap / holder_count / price / change1h / ... (see docs for full list)") .option("--order-by <field>", "Sort field: default / volume / swaps / marketcap / holder_count / price / change1h / ... (see docs for full list)")
@@ -106,9 +108,9 @@ export function registerMarketCommands(program: Command): void {
const trenchesCmd = market const trenchesCmd = market
.command("trenches") .command("trenches")
.description("Get Trenches token data (new creation, near completion, completed)") .description("Get Trenches token data (new creation, near completion, completed)")
.requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable") .requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable / avalanche")
.option("--type <type...>", "Categories to query, repeatable: new_creation / near_completion / completed (default: all three)") .option("--type <type...>", "Categories to query, repeatable: new_creation / near_completion / completed (default: all three)")
.option("--launchpad-platform <platform...>", "Launchpad platform filter, repeatable (default: all platforms for the chain)") .option("--launchpad-platform <platform...>", "Launchpad platform filter, repeatable (default: the server's per-chain default platform list)")
.option("--limit <n>", "Max results per category, max 80 (default: 80)", parseInt) .option("--limit <n>", "Max results per category, max 80 (default: 80)", parseInt)
.option("--filter-preset <preset>", "Apply a named filter preset: safe / smart-money / strict") .option("--filter-preset <preset>", "Apply a named filter preset: safe / smart-money / strict")
.option("--sort-by <field>", "Client-side sort per category: smart_degen_count / renowned_count / volume_24h / volume_1h / swaps_24h / swaps_1h / rug_ratio / holder_count / usd_market_cap / created_timestamp") .option("--sort-by <field>", "Client-side sort per category: smart_degen_count / renowned_count / volume_24h / volume_1h / swaps_24h / swaps_1h / rug_ratio / holder_count / usd_market_cap / created_timestamp")
@@ -167,7 +169,7 @@ export function registerMarketCommands(program: Command): void {
market market
.command("signal") .command("signal")
.description("Query token signals (price spikes, smart money buys, large buys, etc.) — max 50 results per group") .description("Query token signals (price spikes, smart money buys, large buys, etc.) — max 50 results per group")
.requiredOption("--chain <chain>", "Chain: sol / bsc / robinhood / arc / stable") .requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / robinhood / arc / stable / avalanche (hyperevm not supported)")
.option("--signal-type <n...>", "Signal type(s), repeatable: 1–13, 17–21 (default: all supported types)", (v: string, acc: number[]) => { acc.push(parseInt(v, 10)); return acc; }, [] as number[]) .option("--signal-type <n...>", "Signal type(s), repeatable: 1–13, 17–21 (default: all supported types)", (v: string, acc: number[]) => { acc.push(parseInt(v, 10)); return acc; }, [] as number[])
.option("--mc-min <usd>", "Min market cap at trigger time (USD)", parseFloat) .option("--mc-min <usd>", "Min market cap at trigger time (USD)", parseFloat)
.option("--mc-max <usd>", "Max market cap at trigger time (USD)", parseFloat) .option("--mc-max <usd>", "Max market cap at trigger time (USD)", parseFloat)
@@ -181,8 +183,8 @@ export function registerMarketCommands(program: Command): void {
.option("--raw", "Output raw JSON") .option("--raw", "Output raw JSON")
.action(async (opts: Record<string, unknown>) => { .action(async (opts: Record<string, unknown>) => {
validateChain(opts["chain"] as string); validateChain(opts["chain"] as string);
if (!["sol", "bsc", "robinhood", "arc", "stable"].includes(opts["chain"] as string)) { if (!TOKEN_SIGNAL_CHAINS.includes(opts["chain"] as string)) {
console.error(`[gmgn-cli] market signal only supports sol, bsc, robinhood, arc and stable, got "${opts["chain"]}"`); console.error(`[gmgn-cli] market signal only supports ${TOKEN_SIGNAL_CHAINS.join(", ")}, got "${opts["chain"]}"`);
process.exit(1); process.exit(1);
} }
@@ -228,7 +230,7 @@ export function registerMarketCommands(program: Command): void {
const hotSearchesCmd = market const hotSearchesCmd = market
.command("hot-searches") .command("hot-searches")
.description("Get the hot-search ranking (most-searched tokens) for one or more chains") .description("Get the hot-search ranking (most-searched tokens) for one or more chains")
.option("--chain <chain...>", "Chain(s), repeatable: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable (default: all default chains)") .option("--chain <chain...>", "Chain(s), repeatable: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable / avalanche (default: all default chains)")
.option("--interval <interval>", "Time window: 1m / 5m / 1h / 6h / 24h (default 24h)", "24h") .option("--interval <interval>", "Time window: 1m / 5m / 1h / 6h / 24h (default 24h)", "24h")
.option("--limit <n>", "Max results per chain (default 500)", parseInt) .option("--limit <n>", "Max results per chain (default 500)", parseInt)
.option("--filter <tag...>", "Boolean filter tags, repeatable. sol defaults: renounced / frozen; EVM defaults: not_honeypot / verified / renounced") .option("--filter <tag...>", "Boolean filter tags, repeatable. sol defaults: renounced / frozen; EVM defaults: not_honeypot / verified / renounced")
+6 -6
View File
@@ -10,7 +10,7 @@ export function registerPortfolioCommands(program: Command): void {
portfolio portfolio
.command("holdings") .command("holdings")
.description("Get wallet token holdings") .description("Get wallet token holdings")
.requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable") .requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable / avalanche")
.requiredOption("--wallet <address>", "Wallet address") .requiredOption("--wallet <address>", "Wallet address")
.option("--limit <n>", "Page size (default 20, max 50)", parseInt, 20) .option("--limit <n>", "Page size (default 20, max 50)", parseInt, 20)
.option("--cursor <cursor>", "Pagination cursor") .option("--cursor <cursor>", "Pagination cursor")
@@ -46,7 +46,7 @@ export function registerPortfolioCommands(program: Command): void {
portfolio portfolio
.command("activity") .command("activity")
.description("Get wallet transaction activity") .description("Get wallet transaction activity")
.requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable") .requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable / avalanche")
.requiredOption("--wallet <address>", "Wallet address") .requiredOption("--wallet <address>", "Wallet address")
.option("--token <address>", "Filter by token contract address") .option("--token <address>", "Filter by token contract address")
.option("--limit <n>", "Page size", parseInt) .option("--limit <n>", "Page size", parseInt)
@@ -71,7 +71,7 @@ export function registerPortfolioCommands(program: Command): void {
portfolio portfolio
.command("stats") .command("stats")
.description("Get wallet trading statistics (supports multiple wallets)") .description("Get wallet trading statistics (supports multiple wallets)")
.requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable") .requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable / avalanche")
.requiredOption("--wallet <address...>", "Wallet address(es), repeatable") .requiredOption("--wallet <address...>", "Wallet address(es), repeatable")
.option("--period <period>", "Stats period: 7d / 30d", "7d") .option("--period <period>", "Stats period: 7d / 30d", "7d")
.option("--raw", "Output raw JSON") .option("--raw", "Output raw JSON")
@@ -86,7 +86,7 @@ export function registerPortfolioCommands(program: Command): void {
portfolio portfolio
.command("profits") .command("profits")
.description("Batch query wallet profit and loss (1–100 wallets)") .description("Batch query wallet profit and loss (1–100 wallets)")
.requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable") .requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable / avalanche")
.requiredOption("--wallet <address...>", "Wallet address(es), up to 100") .requiredOption("--wallet <address...>", "Wallet address(es), up to 100")
.option("--period <period>", "Profit period: 1d / 7d / 30d / all", "7d") .option("--period <period>", "Profit period: 1d / 7d / 30d / all", "7d")
.option("--raw", "Output raw JSON") .option("--raw", "Output raw JSON")
@@ -118,7 +118,7 @@ export function registerPortfolioCommands(program: Command): void {
portfolio portfolio
.command("token-balance") .command("token-balance")
.description("Get wallet token balance for a single token") .description("Get wallet token balance for a single token")
.requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable") .requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable / avalanche")
.requiredOption("--wallet <address>", "Wallet address") .requiredOption("--wallet <address>", "Wallet address")
.requiredOption("--token <address>", "Token contract address") .requiredOption("--token <address>", "Token contract address")
.option("--raw", "Output raw JSON") .option("--raw", "Output raw JSON")
@@ -134,7 +134,7 @@ export function registerPortfolioCommands(program: Command): void {
portfolio portfolio
.command("created-tokens") .command("created-tokens")
.description("Get tokens created by a developer wallet") .description("Get tokens created by a developer wallet")
.requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable") .requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable / avalanche")
.requiredOption("--wallet <address>", "Developer wallet address") .requiredOption("--wallet <address>", "Developer wallet address")
.option("--order-by <field>", "Sort field: market_cap / token_ath_mc") .option("--order-by <field>", "Sort field: market_cap / token_ath_mc")
.option("--direction <dir>", "Sort direction: asc / desc") .option("--direction <dir>", "Sort direction: asc / desc")
+12 -12
View File
@@ -8,7 +8,7 @@ export function registerSwapCommands(program: Command): void {
program program
.command("swap") .command("swap")
.description("Submit a token swap") .description("Submit a token swap")
.requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable") .requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable / avalanche")
.requiredOption("--from <address>", "Wallet address (must match API Key binding)") .requiredOption("--from <address>", "Wallet address (must match API Key binding)")
.requiredOption("--input-token <address>", "Input token contract address") .requiredOption("--input-token <address>", "Input token contract address")
.requiredOption("--output-token <address>", "Output token contract address") .requiredOption("--output-token <address>", "Output token contract address")
@@ -72,7 +72,7 @@ export function registerSwapCommands(program: Command): void {
program program
.command("multi-swap") .command("multi-swap")
.description("Submit token swaps across multiple wallets concurrently (up to 100 wallets)") .description("Submit token swaps across multiple wallets concurrently (up to 100 wallets)")
.requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable") .requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable / avalanche")
.requiredOption("--accounts <addresses>", "Comma-separated wallet addresses (all must be bound to the API Key)") .requiredOption("--accounts <addresses>", "Comma-separated wallet addresses (all must be bound to the API Key)")
.requiredOption("--input-token <address>", "Input token contract address") .requiredOption("--input-token <address>", "Input token contract address")
.requiredOption("--output-token <address>", "Output token contract address") .requiredOption("--output-token <address>", "Output token contract address")
@@ -147,7 +147,7 @@ export function registerSwapCommands(program: Command): void {
order order
.command("quote") .command("quote")
.description("Get a swap quote without submitting a transaction (exist auth — GMGN_API_KEY only, no private key needed)") .description("Get a swap quote without submitting a transaction (exist auth — GMGN_API_KEY only, no private key needed)")
.requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable") .requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable / avalanche")
.requiredOption("--from <address>", "Wallet address") .requiredOption("--from <address>", "Wallet address")
.requiredOption("--input-token <address>", "Input token contract address") .requiredOption("--input-token <address>", "Input token contract address")
.requiredOption("--output-token <address>", "Output token contract address") .requiredOption("--output-token <address>", "Output token contract address")
@@ -170,7 +170,7 @@ export function registerSwapCommands(program: Command): void {
order order
.command("get") .command("get")
.description("Query order status (requires private key)") .description("Query order status (requires private key)")
.requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable") .requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable / avalanche")
.requiredOption("--order-id <id>", "Order ID") .requiredOption("--order-id <id>", "Order ID")
.option("--raw", "Output raw JSON") .option("--raw", "Output raw JSON")
.action(async (opts) => { .action(async (opts) => {
@@ -182,8 +182,8 @@ export function registerSwapCommands(program: Command): void {
program program
.command("gas-price") .command("gas-price")
.description("Query recommended gas price tiers for any chain (exist auth — API Key only; eth / bsc / base / sol / robinhood / arc / stable)") .description("Query recommended gas price tiers for any chain (exist auth — API Key only)")
.requiredOption("--chain <chain>", "Chain: eth / bsc / base / sol / robinhood / arc / stable") .requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable / avalanche")
.option("--raw", "Output raw JSON") .option("--raw", "Output raw JSON")
.action(async (opts) => { .action(async (opts) => {
const client = new OpenApiClient(getConfig(false)); const client = new OpenApiClient(getConfig(false));
@@ -196,11 +196,11 @@ export function registerSwapCommands(program: Command): void {
strategy strategy
.command("create") .command("create")
.description("Create a limit/strategy order (requires private key)") .description("Create a limit/strategy order (requires private key)")
.requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable") .requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable / avalanche")
.requiredOption("--from <address>", "Wallet address (must match API Key binding)") .requiredOption("--from <address>", "Wallet address (must match API Key binding)")
.requiredOption("--base-token <address>", "Base token contract address") .requiredOption("--base-token <address>", "Base token contract address")
.requiredOption("--quote-token <address>", "Quote token contract address") .requiredOption("--quote-token <address>", "Quote token contract address")
.requiredOption("--order-type <type>", "Order type: limit_order / smart_trade (arbitrum / hyperevm / arc / stable support limit_order only in V1)") .requiredOption("--order-type <type>", "Order type: limit_order / smart_trade (arbitrum / hyperevm / arc / stable / avalanche support limit_order only in V1)")
.requiredOption("--sub-order-type <type>", "Sub-order type: buy_low / buy_high / stop_loss / take_profit (limit_order); mix_trade (smart_trade with condition_orders)") .requiredOption("--sub-order-type <type>", "Sub-order type: buy_low / buy_high / stop_loss / take_profit (limit_order); mix_trade (smart_trade with condition_orders)")
.option("--check-price <price>", "Trigger check price (required for limit_order; omit for smart_trade)") .option("--check-price <price>", "Trigger check price (required for limit_order; omit for smart_trade)")
.option("--open-price <price>", "Open price of the position") .option("--open-price <price>", "Open price of the position")
@@ -220,7 +220,7 @@ export function registerSwapCommands(program: Command): void {
.option("--max-fee-per-gas <amount>", "EIP-1559 max fee per gas (BSC / BASE / ETH)") .option("--max-fee-per-gas <amount>", "EIP-1559 max fee per gas (BSC / BASE / ETH)")
.option("--max-priority-fee-per-gas <amount>", "EIP-1559 max priority fee per gas (BSC / BASE / ETH)") .option("--max-priority-fee-per-gas <amount>", "EIP-1559 max priority fee per gas (BSC / BASE / ETH)")
.option("--anti-mev", "Enable anti-MEV protection") .option("--anti-mev", "Enable anti-MEV protection")
.option("--condition-orders <json>", "JSON array of condition sub-orders for smart_trade (must include a buy_low entry + TP/SL entries); V1 smart_trade is not supported on arbitrum / hyperevm / arc / stable") .option("--condition-orders <json>", "JSON array of condition sub-orders for smart_trade (must include a buy_low entry + TP/SL entries); V1 smart_trade is not supported on arbitrum / hyperevm / arc / stable / avalanche")
.option("--sell-param <json>", "JSON object of sell-side trade params used when a TP/SL condition fires (required for smart_trade)") .option("--sell-param <json>", "JSON object of sell-side trade params used when a TP/SL condition fires (required for smart_trade)")
.option("--buy-param <json>", "JSON object of buy-side trade params override for smart_trade") .option("--buy-param <json>", "JSON object of buy-side trade params override for smart_trade")
.option("--raw", "Output raw JSON") .option("--raw", "Output raw JSON")
@@ -283,7 +283,7 @@ export function registerSwapCommands(program: Command): void {
strategy strategy
.command("list") .command("list")
.description("List strategy orders (requires private key)") .description("List strategy orders (requires private key)")
.requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable") .requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable / avalanche")
.option("--type <type>", "open (default) / history") .option("--type <type>", "open (default) / history")
.option("--from <address>", "Filter by wallet address") .option("--from <address>", "Filter by wallet address")
.requiredOption("--group-tag <tag>", "Filter by group: LimitOrder / STMix") .requiredOption("--group-tag <tag>", "Filter by group: LimitOrder / STMix")
@@ -308,10 +308,10 @@ export function registerSwapCommands(program: Command): void {
strategy strategy
.command("cancel") .command("cancel")
.description("Cancel a strategy order (requires private key)") .description("Cancel a strategy order (requires private key)")
.requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable") .requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable / avalanche")
.requiredOption("--from <address>", "Wallet address (must match API Key binding)") .requiredOption("--from <address>", "Wallet address (must match API Key binding)")
.requiredOption("--order-id <id>", "Order ID to cancel") .requiredOption("--order-id <id>", "Order ID to cancel")
.option("--order-type <type>", "Order type: limit_order / smart_trade") .option("--order-type <type>", "Order type: limit_order / smart_trade / smart_trade_v2 (default: smart_trade; pass smart_trade_v2 for orders created via the OpenAPI V2 strategy endpoint)")
.option("--close-sell-model <model>", "Sell model when closing") .option("--close-sell-model <model>", "Sell model when closing")
.option("--raw", "Output raw JSON") .option("--raw", "Output raw JSON")
.action(async (opts) => { .action(async (opts) => {
+5 -5
View File
@@ -10,7 +10,7 @@ export function registerTokenCommands(program: Command): void {
token token
.command("info") .command("info")
.description("Get token basic information and realtime price") .description("Get token basic information and realtime price")
.requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable") .requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable / avalanche")
.requiredOption("--address <address>", "Token contract address") .requiredOption("--address <address>", "Token contract address")
.option("--raw", "Output raw JSON") .option("--raw", "Output raw JSON")
.action(async (opts) => { .action(async (opts) => {
@@ -24,7 +24,7 @@ export function registerTokenCommands(program: Command): void {
token token
.command("security") .command("security")
.description("Get token security metrics") .description("Get token security metrics")
.requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable") .requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable / avalanche")
.requiredOption("--address <address>", "Token contract address") .requiredOption("--address <address>", "Token contract address")
.option("--raw", "Output raw JSON") .option("--raw", "Output raw JSON")
.action(async (opts) => { .action(async (opts) => {
@@ -38,7 +38,7 @@ export function registerTokenCommands(program: Command): void {
token token
.command("pool") .command("pool")
.description("Get token liquidity pool information") .description("Get token liquidity pool information")
.requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable") .requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable / avalanche")
.requiredOption("--address <address>", "Token contract address") .requiredOption("--address <address>", "Token contract address")
.option("--raw", "Output raw JSON") .option("--raw", "Output raw JSON")
.action(async (opts) => { .action(async (opts) => {
@@ -52,7 +52,7 @@ export function registerTokenCommands(program: Command): void {
token token
.command("holders") .command("holders")
.description("Get top token holders") .description("Get top token holders")
.requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable") .requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable / avalanche")
.requiredOption("--address <address>", "Token contract address") .requiredOption("--address <address>", "Token contract address")
.option("--limit <n>", "Number of results (default 20, max 100)", parseInt) .option("--limit <n>", "Number of results (default 20, max 100)", parseInt)
.option("--order-by <field>", "Sort field: amount_percentage / profit / unrealized_profit / buy_volume_cur / sell_volume_cur", "amount_percentage") .option("--order-by <field>", "Sort field: amount_percentage / profit / unrealized_profit / buy_volume_cur / sell_volume_cur", "amount_percentage")
@@ -75,7 +75,7 @@ export function registerTokenCommands(program: Command): void {
token token
.command("traders") .command("traders")
.description("Get top token traders") .description("Get top token traders")
.requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable") .requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable / avalanche")
.requiredOption("--address <address>", "Token contract address") .requiredOption("--address <address>", "Token contract address")
.option("--limit <n>", "Number of results (default 20, max 100)", parseInt) .option("--limit <n>", "Number of results (default 20, max 100)", parseInt)
.option("--order-by <field>", "Sort field: amount_percentage / profit / unrealized_profit / buy_volume_cur / sell_volume_cur", "amount_percentage") .option("--order-by <field>", "Sort field: amount_percentage / profit / unrealized_profit / buy_volume_cur / sell_volume_cur", "amount_percentage")
+5 -5
View File
@@ -10,7 +10,7 @@ export function registerTrackCommands(program: Command): void {
track track
.command("follow-tokens") .command("follow-tokens")
.description("Get the followed token list for a wallet on a given chain") .description("Get the followed token list for a wallet on a given chain")
.requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable") .requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable / avalanche")
.requiredOption("--wallet <address>", "Wallet address") .requiredOption("--wallet <address>", "Wallet address")
.option("--group-id <id>", "Filter by group: all_group (all), default, or a user-defined group ID") .option("--group-id <id>", "Filter by group: all_group (all), default, or a user-defined group ID")
.option("--interval <interval>", "Time interval for price change stats (e.g. 1m, 5m, 1h, 6h, 24h)") .option("--interval <interval>", "Time interval for price change stats (e.g. 1m, 5m, 1h, 6h, 24h)")
@@ -38,7 +38,7 @@ export function registerTrackCommands(program: Command): void {
track track
.command("follow-token-groups") .command("follow-token-groups")
.description("Get the follow token group names for a wallet on a given chain") .description("Get the follow token group names for a wallet on a given chain")
.requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable") .requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable / avalanche")
.requiredOption("--wallet <address>", "Wallet address") .requiredOption("--wallet <address>", "Wallet address")
.option("--raw", "Output raw JSON") .option("--raw", "Output raw JSON")
.action(async (opts) => { .action(async (opts) => {
@@ -51,7 +51,7 @@ export function registerTrackCommands(program: Command): void {
track track
.command("follow-wallet") .command("follow-wallet")
.description("Get follow-wallet trade records") .description("Get follow-wallet trade records")
.requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable") .requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable / avalanche")
.option("--wallet <address>", "Filter by wallet address") .option("--wallet <address>", "Filter by wallet address")
.option("--limit <n>", "Page size (1–100, default 10)", parseInt) .option("--limit <n>", "Page size (1–100, default 10)", parseInt)
.option("--side <side>", "Trade direction filter: buy / sell") .option("--side <side>", "Trade direction filter: buy / sell")
@@ -76,7 +76,7 @@ export function registerTrackCommands(program: Command): void {
track track
.command("kol") .command("kol")
.description("Get KOL trade records") .description("Get KOL trade records")
.requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable") .requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable / avalanche")
.option("--limit <n>", "Page size (1–200, default 100)", parseInt) .option("--limit <n>", "Page size (1–200, default 100)", parseInt)
.option("--side <side>", "Filter by trade direction: buy / sell (client-side filter)") .option("--side <side>", "Filter by trade direction: buy / sell (client-side filter)")
.option("--raw", "Output raw JSON") .option("--raw", "Output raw JSON")
@@ -93,7 +93,7 @@ export function registerTrackCommands(program: Command): void {
track track
.command("smartmoney") .command("smartmoney")
.description("Get Smart Money trade records") .description("Get Smart Money trade records")
.requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable") .requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / arbitrum / hyperevm / robinhood / arc / stable / avalanche")
.option("--limit <n>", "Page size (1–200, default 100)", parseInt) .option("--limit <n>", "Page size (1–200, default 100)", parseInt)
.option("--side <side>", "Filter by trade direction: buy / sell (client-side filter)") .option("--side <side>", "Filter by trade direction: buy / sell (client-side filter)")
.option("--raw", "Output raw JSON") .option("--raw", "Output raw JSON")
+4 -4
View File
@@ -1,4 +1,4 @@
const VALID_CHAINS = new Set(["sol", "bsc", "base", "eth", "arbitrum", "hyperevm", "robinhood", "arc", "stable" /*, "monad" */]); const VALID_CHAINS = new Set(["sol", "bsc", "base", "eth", "arbitrum", "hyperevm", "robinhood", "arc", "stable", "avalanche" /*, "monad" */]);
const SOL_ADDRESS_RE = /^[1-9A-HJ-NP-Za-km-z]{32,44}$/; const SOL_ADDRESS_RE = /^[1-9A-HJ-NP-Za-km-z]{32,44}$/;
const EVM_ADDRESS_RE = /^0x[0-9a-fA-F]{40}$/; const EVM_ADDRESS_RE = /^0x[0-9a-fA-F]{40}$/;
const POSITIVE_INT_RE = /^\d+$/; const POSITIVE_INT_RE = /^\d+$/;
@@ -13,7 +13,7 @@ export function validateChain(chain: string): void {
} }
export function validateAddress(address: string, chain: string, label: string): void { export function validateAddress(address: string, chain: string, label: string): void {
const isEvm = chain === "bsc" || chain === "base" || chain === "eth" || chain === "arbitrum" || chain === "hyperevm" || chain === "robinhood" || chain === "arc" || chain === "stable" /* || chain === "monad" */; const isEvm = VALID_CHAINS.has(chain) && chain !== "sol";
const valid = isEvm ? EVM_ADDRESS_RE.test(address) : SOL_ADDRESS_RE.test(address); const valid = isEvm ? EVM_ADDRESS_RE.test(address) : SOL_ADDRESS_RE.test(address);
if (!valid) { if (!valid) {
console.error( console.error(
@@ -37,7 +37,7 @@ const NO_CONDITION_ORDER_CHAINS = new Set(["arc", "stable"]);
// V1 smart_trade is unavailable on the newer EVM chains. They support the V2 // V1 smart_trade is unavailable on the newer EVM chains. They support the V2
// strategy endpoint instead; the CLI currently exposes only the V1 command. // strategy endpoint instead; the CLI currently exposes only the V1 command.
const NO_V1_SMART_TRADE_CHAINS = new Set(["arbitrum", "hyperevm", "arc", "stable"]); const NO_V1_SMART_TRADE_CHAINS = new Set(["arbitrum", "hyperevm", "arc", "stable", "avalanche"]);
export function validateConditionOrdersSupported(chain: string, feature: string): void { export function validateConditionOrdersSupported(chain: string, feature: string): void {
if (NO_CONDITION_ORDER_CHAINS.has(chain)) { if (NO_CONDITION_ORDER_CHAINS.has(chain)) {
@@ -73,7 +73,7 @@ export function validatePercent(value: number): void {
// Keep the two lists independent. // Keep the two lists independent.
const CALLOUT_CHAINS = new Set([ const CALLOUT_CHAINS = new Set([
"sol", "bsc", "eth", "base", "megaeth", "hyperevm", "sol", "bsc", "eth", "base", "megaeth", "hyperevm",
"tron", "monad", "xlayer", "robinhood", "arbitrum", "arc", "stable", "tron", "monad", "xlayer", "robinhood", "arbitrum", "arc", "stable", "avalanche",
]); ]);
const CALLOUT_MAX_CHAINS = 20; const CALLOUT_MAX_CHAINS = 20;
const CALLOUT_MAX_LIMIT = 50; const CALLOUT_MAX_LIMIT = 50;