gmgn-cli 1.0.1 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Readme.md +146 -66
- package/Readme.zh.md +150 -70
- package/dist/client/OpenApiClient.d.ts +2 -2
- package/dist/client/OpenApiClient.d.ts.map +1 -1
- package/dist/client/OpenApiClient.js +4 -4
- package/dist/client/OpenApiClient.js.map +1 -1
- package/dist/commands/market.js +5 -5
- package/dist/commands/market.js.map +1 -1
- package/dist/commands/portfolio.js +1 -1
- package/dist/commands/portfolio.js.map +1 -1
- package/dist/commands/token.d.ts.map +1 -1
- package/dist/commands/token.js +28 -2
- package/dist/commands/token.js.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/skills/gmgn-market/SKILL.md +17 -18
- package/skills/gmgn-portfolio/SKILL.md +5 -3
- package/skills/gmgn-swap/SKILL.md +17 -7
- package/skills/gmgn-token/SKILL.md +19 -3
package/Readme.md
CHANGED
|
@@ -1,8 +1,16 @@
|
|
|
1
|
-
|
|
1
|
+
<div align="center">
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
<img src="static/gmgnagentskills.png" alt="GMGN Agent Skills" />
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
[](https://x.com/gmgnai) [](https://t.me/gmgnagentapi) [](https://discord.gg/gmgnai)
|
|
6
|
+
|
|
7
|
+
English | [简体中文](Readme.zh.md)
|
|
8
|
+
|
|
9
|
+
</div>
|
|
10
|
+
|
|
11
|
+
## GMGN Agent Skills
|
|
12
|
+
|
|
13
|
+
With GMGN Agent Skills, you can use AI agents to query real-time trending token rankings across multiple chains, token fundamentals, social media signals, live trading activity, new tokens in Trenches, top holders, top traders, smart money positions, KOL holdings, insider wallets, bundled wallet exposure, and other professional on-chain analytics. It also supports market orders, limit orders, advanced take-profit/stop-loss strategy orders, and wallet management — including real-time holdings, recent P&L, and transaction history — all through natural language.
|
|
6
14
|
|
|
7
15
|
---
|
|
8
16
|
|
|
@@ -15,50 +23,127 @@ GMGN AI skills for on-chain operations — token research, market data, wallet a
|
|
|
15
23
|
| [`/gmgn-portfolio`](skills/gmgn-portfolio/SKILL.md) | Wallet holdings, activity, stats | [SKILL.md](skills/gmgn-portfolio/SKILL.md) |
|
|
16
24
|
| [`/gmgn-swap`](skills/gmgn-swap/SKILL.md) | Swap submission + order query | [SKILL.md](skills/gmgn-swap/SKILL.md) |
|
|
17
25
|
|
|
26
|
+
> For detailed CLI commands, parameters, and recommended values, see the [Wiki documentation](https://github.com/GMGNAI/gmgn-skills/wiki).
|
|
27
|
+
|
|
28
|
+
### Quick Start
|
|
29
|
+
|
|
30
|
+
Ready to install skills? [Jump to Installation →](#get-started)
|
|
31
|
+
|
|
18
32
|
---
|
|
19
33
|
|
|
20
|
-
##
|
|
34
|
+
## Demo Cases
|
|
21
35
|
|
|
22
|
-
|
|
36
|
+
### Trending Token Rankings
|
|
37
|
+
|
|
38
|
+
Send this prompt to your AI Agent:
|
|
23
39
|
|
|
24
40
|
```
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
41
|
+
Fetch Solana 1h trending, filter for pump.fun tokens created within 6h, sort by volume descending.
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+

|
|
45
|
+
|
|
46
|
+
### Real-Time Token Trading Analysis
|
|
47
|
+
|
|
48
|
+
Send this prompt to your AI Agent:
|
|
49
|
+
|
|
33
50
|
```
|
|
51
|
+
Check the first token's K-line, analyze entry timing, plot price + volume chart, and provide social media links and smart money/KOL trading analysis.
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+

|
|
55
|
+

|
|
34
56
|
|
|
35
57
|
---
|
|
36
58
|
|
|
37
|
-
##
|
|
59
|
+
## Get Started
|
|
38
60
|
|
|
39
|
-
|
|
61
|
+
Before installing, create your API Key at **https://gmgn.ai/ai**. The API key is used for:
|
|
40
62
|
|
|
41
|
-
|
|
63
|
+
1. Read data: tokens, trending lists, K-line, and featured on-chain metrics
|
|
64
|
+
2. Submit trades: market orders, limit orders, strategy orders, and more
|
|
42
65
|
|
|
43
|
-
|
|
66
|
+
---
|
|
44
67
|
|
|
45
|
-
|
|
68
|
+
## 1. Installation
|
|
46
69
|
|
|
47
|
-
|
|
70
|
+
Choose one of the following methods:
|
|
71
|
+
|
|
72
|
+
### 1.1 Via Agent (recommended)
|
|
73
|
+
|
|
74
|
+
Send this to your AI agent:
|
|
48
75
|
|
|
49
76
|
```bash
|
|
50
|
-
|
|
77
|
+
npx skills add GMGNAI/gmgn-skills
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### 1.2 npm Global Install
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
npm install -g gmgn-cli@1.0.2
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### 1.3 Local Development
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
npm install
|
|
90
|
+
npm run build
|
|
91
|
+
node dist/index.js <command> [options]
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## 2. Verify Connection
|
|
95
|
+
|
|
96
|
+
### Option 1: Via AI Agent
|
|
97
|
+
|
|
98
|
+
Send this prompt to your AI Agent:
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
Run this CLI command: GMGN_API_KEY=gmgn_solbscbaseethmonadtron npx gmgn-cli market trending --chain sol --interval 1h --limit 3
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Option 2: Via CLI
|
|
105
|
+
|
|
106
|
+
Test with the public API key — no registration required:
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
GMGN_API_KEY=gmgn_solbscbaseethmonadtron gmgn-cli market trending --chain sol --interval 1h --limit 3
|
|
51
110
|
```
|
|
52
111
|
|
|
53
|
-
|
|
112
|
+
If you see JSON output, the CLI is working. The public key supports all read-only commands (token / market / portfolio). The public key is for testing only — apply for your own API key to use any feature (see step 3).
|
|
113
|
+
|
|
114
|
+
## 3. Get Your Own API Key
|
|
115
|
+
|
|
116
|
+
The public key in step 2 is for testing only. Apply for your own API key at **https://gmgn.ai/ai** — required for all actual use (read-only and swap). You will need:
|
|
117
|
+
|
|
118
|
+
### 3.1 Generate an Ed25519 Key Pair
|
|
54
119
|
|
|
55
|
-
|
|
120
|
+
**Option 1 — Ask your AI agent (recommended)**
|
|
56
121
|
|
|
57
|
-
|
|
122
|
+
Send this prompt to your agent:
|
|
123
|
+
|
|
124
|
+
```
|
|
125
|
+
Generate an Ed25519 key pair for me using OpenSSL and show me:
|
|
126
|
+
1. The public key (I need to fill it in the GMGN API Key application form)
|
|
127
|
+
2. The private key in PEM format (I need to set it as GMGN_PRIVATE_KEY in my .env)
|
|
128
|
+
```
|
|
58
129
|
|
|
59
|
-
|
|
130
|
+
**Option 2 — Binance Key Generator**
|
|
60
131
|
|
|
61
|
-
|
|
132
|
+
Download and run the [Binance Asymmetric Key Generator](https://github.com/binance/asymmetric-key-generator/releases).
|
|
133
|
+
|
|
134
|
+
Enter the **public key** in the application form.
|
|
135
|
+
|
|
136
|
+
### 3.2 Get Your Public Egress IP
|
|
137
|
+
|
|
138
|
+
For the IP whitelist (required when enabling swap capability on your API key):
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
curl ip.me
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
## 4. Configure Your API Key
|
|
145
|
+
|
|
146
|
+
### Option 1: Global config (recommended)
|
|
62
147
|
|
|
63
148
|
Create `~/.config/gmgn/.env` once — works from any directory:
|
|
64
149
|
|
|
@@ -67,12 +152,12 @@ mkdir -p ~/.config/gmgn
|
|
|
67
152
|
cat > ~/.config/gmgn/.env << 'EOF'
|
|
68
153
|
GMGN_API_KEY=your_api_key_here
|
|
69
154
|
|
|
70
|
-
# Required for swap / order
|
|
155
|
+
# Required for swap / order only:
|
|
71
156
|
GMGN_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\n<base64>\n-----END PRIVATE KEY-----\n"
|
|
72
157
|
EOF
|
|
73
158
|
```
|
|
74
159
|
|
|
75
|
-
|
|
160
|
+
### Option 2: Project `.env`
|
|
76
161
|
|
|
77
162
|
```bash
|
|
78
163
|
cp .env.example .env
|
|
@@ -81,23 +166,15 @@ cp .env.example .env
|
|
|
81
166
|
|
|
82
167
|
Config lookup order: `~/.config/gmgn/.env` → project `.env` (project takes precedence).
|
|
83
168
|
|
|
84
|
-
|
|
169
|
+
## 5. Try in AI Clients
|
|
85
170
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
```bash
|
|
89
|
-
npm install -g gmgn-cli@1.0.1
|
|
90
|
-
```
|
|
171
|
+
#### OpenClaw
|
|
91
172
|
|
|
92
|
-
|
|
173
|
+
Send the following prompt directly to test the query capabilities:
|
|
93
174
|
|
|
94
|
-
```bash
|
|
95
|
-
npm install
|
|
96
|
-
npm run build
|
|
97
|
-
node dist/index.js <command> [options]
|
|
98
175
|
```
|
|
99
|
-
|
|
100
|
-
|
|
176
|
+
Show me the trending tokens on Solana in the last 1 hour.
|
|
177
|
+
```
|
|
101
178
|
|
|
102
179
|
#### Claude Code
|
|
103
180
|
|
|
@@ -107,19 +184,17 @@ Skills are automatically discovered when the package is installed as a plugin.
|
|
|
107
184
|
|
|
108
185
|
Skills are automatically discovered via the `.cursor-plugin/` configuration.
|
|
109
186
|
|
|
110
|
-
1. Complete steps
|
|
111
|
-
2.
|
|
112
|
-
3. Restart Cursor — skills will be available in Agent mode via `/gmgn-*` commands
|
|
187
|
+
1. Complete the installation and configuration steps above
|
|
188
|
+
2. Restart Cursor — skills will be available in Agent mode via `/gmgn-*` commands
|
|
113
189
|
|
|
114
190
|
#### Cline
|
|
115
191
|
|
|
116
|
-
1. Complete steps
|
|
192
|
+
1. Complete the installation and configuration steps above
|
|
117
193
|
2. In Cline settings → **Skills directory**: point to the installed package's `skills/` folder:
|
|
118
194
|
```bash
|
|
119
195
|
echo "$(npm root -g)/gmgn-skills/skills"
|
|
120
196
|
```
|
|
121
|
-
3.
|
|
122
|
-
4. Restart Cline — `/gmgn-token`, `/gmgn-market`, `/gmgn-portfolio`, `/gmgn-swap` will be available
|
|
197
|
+
3. Restart Cline — `/gmgn-token`, `/gmgn-market`, `/gmgn-portfolio`, `/gmgn-swap` will be available
|
|
123
198
|
|
|
124
199
|
#### Codex CLI
|
|
125
200
|
|
|
@@ -143,7 +218,24 @@ See [.opencode/INSTALL.md](.opencode/INSTALL.md) for full instructions.
|
|
|
143
218
|
|
|
144
219
|
---
|
|
145
220
|
|
|
146
|
-
##
|
|
221
|
+
## 6. Usage
|
|
222
|
+
|
|
223
|
+
### Examples
|
|
224
|
+
|
|
225
|
+
Natural language prompts you can send to any AI assistant with gmgn-cli skills installed:
|
|
226
|
+
|
|
227
|
+
```
|
|
228
|
+
buy 0.1 SOL of <token_address>
|
|
229
|
+
sell 50% of <token_address> on BSC
|
|
230
|
+
check order status <order_id>
|
|
231
|
+
is <token_address> safe to buy on solana?
|
|
232
|
+
show top holders of <token_address>
|
|
233
|
+
show my wallet holdings on SOL
|
|
234
|
+
query token details for 0x1234...
|
|
235
|
+
show trading stats for wallet <wallet_address> on BSC
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
### Typical Workflows
|
|
147
239
|
|
|
148
240
|
**Research a token:**
|
|
149
241
|
```
|
|
@@ -162,14 +254,14 @@ token info (confirm token) → portfolio token-balance (check funds) → swa
|
|
|
162
254
|
|
|
163
255
|
**Discover trading opportunities via trending:**
|
|
164
256
|
```
|
|
165
|
-
market trending (top 50
|
|
257
|
+
market trending (top 50) → AI selects top 5 by multi-factor analysis → user reviews → token info / token security → swap
|
|
166
258
|
```
|
|
167
259
|
|
|
168
260
|
---
|
|
169
261
|
|
|
170
|
-
## CLI Reference
|
|
262
|
+
## 7. CLI Reference
|
|
171
263
|
|
|
172
|
-
Full parameter reference: [docs/cli-usage.md](docs/cli-usage.md)
|
|
264
|
+
Full parameter reference: [docs/cli-usage.md](docs/cli-usage.md). All commands support `--raw` for single-line JSON output (pipe-friendly, e.g. `| jq '.price'`).
|
|
173
265
|
|
|
174
266
|
### Token
|
|
175
267
|
|
|
@@ -183,7 +275,7 @@ npx gmgn-cli token info --chain sol --address <addr>
|
|
|
183
275
|
npx gmgn-cli market trending \
|
|
184
276
|
--chain sol \
|
|
185
277
|
--interval 1h \
|
|
186
|
-
--
|
|
278
|
+
--order-by volume --limit 20 \
|
|
187
279
|
--filter not_risk --filter not_honeypot
|
|
188
280
|
```
|
|
189
281
|
|
|
@@ -209,9 +301,7 @@ npx gmgn-cli swap \
|
|
|
209
301
|
npx gmgn-cli order get --chain sol --order-id <order-id>
|
|
210
302
|
```
|
|
211
303
|
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
## Supported Chains
|
|
304
|
+
## 8. Supported Chains
|
|
215
305
|
|
|
216
306
|
| Commands | Chains | Chain Currencies |
|
|
217
307
|
|----------|--------|-----------------|
|
|
@@ -220,17 +310,7 @@ npx gmgn-cli order get --chain sol --order-id <order-id>
|
|
|
220
310
|
|
|
221
311
|
---
|
|
222
312
|
|
|
223
|
-
##
|
|
224
|
-
|
|
225
|
-
Default: formatted JSON. Use `--raw` for single-line JSON (pipe-friendly):
|
|
226
|
-
|
|
227
|
-
```bash
|
|
228
|
-
npx gmgn-cli token info --chain sol --address <addr> --raw | jq '.price'
|
|
229
|
-
```
|
|
230
|
-
|
|
231
|
-
---
|
|
232
|
-
|
|
233
|
-
## Security & Disclaimer
|
|
313
|
+
## 9. Security & Disclaimer
|
|
234
314
|
|
|
235
315
|
**About `GMGN_PRIVATE_KEY`**
|
|
236
316
|
|
|
@@ -241,7 +321,7 @@ npx gmgn-cli token info --chain sol --address <addr> --raw | jq '.price'
|
|
|
241
321
|
- Restrict config file permissions: `chmod 600 ~/.config/gmgn/.env`
|
|
242
322
|
- Never commit your `.env` file to version control — add it to `.gitignore`
|
|
243
323
|
- Do not share `GMGN_API_KEY` or `GMGN_PRIVATE_KEY` in logs, screenshots, or chat messages
|
|
244
|
-
- Use a pinned install (`npm install -g gmgn-cli@1.0.
|
|
324
|
+
- Use a pinned install (`npm install -g gmgn-cli@1.0.2`) rather than `npx gmgn-cli` to avoid executing unintended package updates alongside your credentials
|
|
245
325
|
|
|
246
326
|
**Disclaimer**
|
|
247
327
|
|
package/Readme.zh.md
CHANGED
|
@@ -1,8 +1,16 @@
|
|
|
1
|
-
|
|
1
|
+
<div align="center">
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
<img src="static/gmgnagentskills.png" alt="GMGN Agent Skills" />
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
[](https://x.com/gmgnai) [](https://t.me/gmgnagentapi) [](https://discord.gg/gmgnai)
|
|
6
|
+
|
|
7
|
+
[English](Readme.md) | 简体中文
|
|
8
|
+
|
|
9
|
+
</div>
|
|
10
|
+
|
|
11
|
+
## GMGN Agent Skills
|
|
12
|
+
|
|
13
|
+
使用 GMGN Agent Skills,你可以通过 AI Agent 实时查询多个链上热门代币排行榜,代币基础信息,社交媒体信息,实时交易动态,实时战壕新币,报持仓大户(Top Holder),交易大户(Top Trader),聪明钱持仓占比,KOL持仓占比,老鼠仓持仓,捆绑持仓占比,等代币专业数据分析数据,以及支持代币市价单交易、限价单交易、高级止盈止损策略单交易,以及钱包资产管理相关功能,例如查询钱包实时持仓、钱包最近盈亏、钱包交易动态等,全部通过自然语言与 AI Agent 交互即可完成。
|
|
6
14
|
|
|
7
15
|
---
|
|
8
16
|
|
|
@@ -15,50 +23,127 @@ GMGN 链上操作 AI 技能套件 — Token 研究、行情数据、钱包分析
|
|
|
15
23
|
| [`/gmgn-portfolio`](skills/gmgn-portfolio/SKILL.md) | 钱包持仓、活动、统计 | [SKILL.md](skills/gmgn-portfolio/SKILL.md) |
|
|
16
24
|
| [`/gmgn-swap`](skills/gmgn-swap/SKILL.md) | 兑换提交 + 订单查询 | [SKILL.md](skills/gmgn-swap/SKILL.md) |
|
|
17
25
|
|
|
26
|
+
> 如需查看详细的 CLI 接口说明、传参格式和推荐值,请参阅 [Wiki 文档](https://github.com/GMGNAI/gmgn-skills/wiki/Home-Chinese)。
|
|
27
|
+
|
|
28
|
+
### 快速开始安装
|
|
29
|
+
|
|
30
|
+
已准备好?[点击这里开始安装 Skills →](#开始安装-skills)
|
|
31
|
+
|
|
18
32
|
---
|
|
19
33
|
|
|
20
|
-
##
|
|
34
|
+
## 使用案例
|
|
21
35
|
|
|
22
|
-
|
|
36
|
+
### 查询热门代币榜
|
|
37
|
+
|
|
38
|
+
发送下面提示词给 AI Agent:
|
|
23
39
|
|
|
24
40
|
```
|
|
25
|
-
|
|
26
|
-
sell 50% of <token_address> on BSC
|
|
27
|
-
check order status <order_id>
|
|
28
|
-
is <token_address> safe to buy on solana?
|
|
29
|
-
show top holders of <token_address>
|
|
30
|
-
show my wallet holdings on SOL
|
|
31
|
-
query token details for 0x1234...
|
|
32
|
-
show trading stats for wallet <wallet_address> on BSC
|
|
41
|
+
查 Solana 1h 热门榜,筛出 6 小时内创建的新币,并且platforms是pump.fun的代币,然后按交易量从高到低排列。
|
|
33
42
|
```
|
|
34
43
|
|
|
44
|
+

|
|
45
|
+
|
|
46
|
+
### 实时分析代币交易走势
|
|
47
|
+
|
|
48
|
+
发送下面提示词给 AI Agent:
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
查看第一个代币的 K 线,分析入场时机,并提供社交媒体链接以及聪明资金 / KOL 的交易分析。
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+

|
|
55
|
+

|
|
56
|
+
|
|
35
57
|
---
|
|
36
58
|
|
|
37
|
-
##
|
|
59
|
+
## 开始安装 Skills
|
|
38
60
|
|
|
39
|
-
|
|
61
|
+
安装前,请先在 **https://gmgn.ai/ai** 创建 API Key,用于:
|
|
40
62
|
|
|
41
|
-
|
|
63
|
+
1. 读取数据:代币、榜单、K 线、特色数据指标
|
|
64
|
+
2. 提交交易:市价立即交易、创建限价单、策略单等
|
|
42
65
|
|
|
43
|
-
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## 1. 安装
|
|
69
|
+
|
|
70
|
+
选择以下任意一种方式:
|
|
44
71
|
|
|
45
|
-
|
|
72
|
+
### 1.1 通过 Agent 安装(推荐)
|
|
46
73
|
|
|
47
|
-
|
|
74
|
+
发送给你的 AI Agent:
|
|
48
75
|
|
|
49
76
|
```bash
|
|
50
|
-
|
|
77
|
+
npx skills add GMGNAI/gmgn-skills
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### 1.2 npm 全局安装
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
npm install -g gmgn-cli@1.0.2
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### 1.3 本地开发
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
npm install
|
|
90
|
+
npm run build
|
|
91
|
+
node dist/index.js <command> [options]
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## 2. 验证连通性
|
|
95
|
+
|
|
96
|
+
### 方式一:通过 AI Agent 验证
|
|
97
|
+
|
|
98
|
+
发送以下提示词给你的 AI Agent:
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
执行这个cli命令:GMGN_API_KEY=gmgn_solbscbaseethmonadtron npx gmgn-cli market trending --chain sol --interval 1h --limit 3
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### 方式二:通过 CLI 验证
|
|
105
|
+
|
|
106
|
+
使用公共 API Key 测试,无需注册:
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
GMGN_API_KEY=gmgn_solbscbaseethmonadtron npx gmgn-cli market trending --chain sol --interval 1h --limit 3
|
|
51
110
|
```
|
|
52
111
|
|
|
53
|
-
|
|
112
|
+
看到 JSON 输出即表示 CLI 正常工作。公共 Key 支持所有只读接口(token / market / portfolio),公共 Key 仅用于测试,正式使用任何接口均需申请个人 API Key(见第 3 步)。
|
|
113
|
+
|
|
114
|
+
## 3. 申请个人 API Key
|
|
115
|
+
|
|
116
|
+
第 2 步的公共 Key 仅用于测试。正式使用(只读接口和 swap)均需在 https://gmgn.ai/ai 申请个人 API Key,需要准备:
|
|
54
117
|
|
|
55
|
-
### 1
|
|
118
|
+
### 3.1 生成 Ed25519 密钥对
|
|
56
119
|
|
|
57
|
-
|
|
120
|
+
**方式一:输入提示词(推荐)**
|
|
58
121
|
|
|
59
|
-
|
|
122
|
+
将以下提示词发送给你的 AI Agent:
|
|
123
|
+
|
|
124
|
+
```
|
|
125
|
+
帮我用 OpenSSL 生成一个 Ed25519 密钥对,并分别显示给我:
|
|
126
|
+
1. 公钥(我需要填写到GMGN网站上的 API Key 创建表单中)
|
|
127
|
+
2. PEM 格式的私钥(我需要将它设置为 .env 中的 GMGN_PRIVATE_KEY)
|
|
128
|
+
```
|
|
60
129
|
|
|
61
|
-
|
|
130
|
+
**方式二:Binance Key Generator**
|
|
131
|
+
|
|
132
|
+
下载并运行 [Binance Asymmetric Key Generator](https://github.com/binance/asymmetric-key-generator/releases)。
|
|
133
|
+
|
|
134
|
+
申请时填入**公钥**。
|
|
135
|
+
|
|
136
|
+
### 3.2 获取本机出口 IP
|
|
137
|
+
|
|
138
|
+
用于填写 IP 白名单(开通 API Key 的交易能力时需要):
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
curl ip.me
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
## 4. 配置个人 API Key
|
|
145
|
+
|
|
146
|
+
### 方式一:全局配置(推荐)
|
|
62
147
|
|
|
63
148
|
创建 `~/.config/gmgn/.env`,配置一次,所有目录均生效:
|
|
64
149
|
|
|
@@ -67,12 +152,12 @@ mkdir -p ~/.config/gmgn
|
|
|
67
152
|
cat > ~/.config/gmgn/.env << 'EOF'
|
|
68
153
|
GMGN_API_KEY=your_api_key_here
|
|
69
154
|
|
|
70
|
-
# swap / order
|
|
155
|
+
# 仅 swap / order 接口需要:
|
|
71
156
|
GMGN_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\n<base64>\n-----END PRIVATE KEY-----\n"
|
|
72
157
|
EOF
|
|
73
158
|
```
|
|
74
159
|
|
|
75
|
-
|
|
160
|
+
### 方式二:项目 `.env`
|
|
76
161
|
|
|
77
162
|
```bash
|
|
78
163
|
cp .env.example .env
|
|
@@ -81,23 +166,15 @@ cp .env.example .env
|
|
|
81
166
|
|
|
82
167
|
配置加载顺序:`~/.config/gmgn/.env` → 项目 `.env`(项目级优先)。
|
|
83
168
|
|
|
84
|
-
|
|
169
|
+
## 5. 在 AI 客户端中使用
|
|
85
170
|
|
|
86
|
-
|
|
171
|
+
#### OpenClaw
|
|
87
172
|
|
|
88
|
-
|
|
89
|
-
npm install -g gmgn-cli@1.0.1
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
本地开发:
|
|
173
|
+
直接发送以下提示词,测试查询能力:
|
|
93
174
|
|
|
94
|
-
```bash
|
|
95
|
-
npm install
|
|
96
|
-
npm run build
|
|
97
|
-
node dist/index.js <command> [options]
|
|
98
175
|
```
|
|
99
|
-
|
|
100
|
-
|
|
176
|
+
查询 Solana 链 1 小时热门代币
|
|
177
|
+
```
|
|
101
178
|
|
|
102
179
|
#### Claude Code
|
|
103
180
|
|
|
@@ -107,19 +184,17 @@ node dist/index.js <command> [options]
|
|
|
107
184
|
|
|
108
185
|
技能通过 `.cursor-plugin/` 配置自动发现。
|
|
109
186
|
|
|
110
|
-
1.
|
|
111
|
-
2.
|
|
112
|
-
3. 重启 Cursor — Agent 模式下可通过 `/gmgn-*` 命令使用技能
|
|
187
|
+
1. 完成上方安装和配置步骤
|
|
188
|
+
2. 重启 Cursor — Agent 模式下可通过 `/gmgn-*` 命令使用技能
|
|
113
189
|
|
|
114
190
|
#### Cline
|
|
115
191
|
|
|
116
|
-
1.
|
|
192
|
+
1. 完成上方安装和配置步骤
|
|
117
193
|
2. 在 Cline 设置 → **Skills directory**:填入已安装包的 `skills/` 目录路径:
|
|
118
194
|
```bash
|
|
119
195
|
echo "$(npm root -g)/gmgn-skills/skills"
|
|
120
196
|
```
|
|
121
|
-
3.
|
|
122
|
-
4. 重启 Cline — `/gmgn-token`、`/gmgn-market`、`/gmgn-portfolio`、`/gmgn-swap` 即可使用
|
|
197
|
+
3. 重启 Cline — `/gmgn-token`、`/gmgn-market`、`/gmgn-portfolio`、`/gmgn-swap` 即可使用
|
|
123
198
|
|
|
124
199
|
#### Codex CLI
|
|
125
200
|
|
|
@@ -143,33 +218,50 @@ ln -s ~/.opencode/gmgn-cli/skills ~/.agents/skills/gmgn-cli
|
|
|
143
218
|
|
|
144
219
|
---
|
|
145
220
|
|
|
146
|
-
##
|
|
221
|
+
## 6. 使用示例
|
|
222
|
+
|
|
223
|
+
### 常用指令
|
|
224
|
+
|
|
225
|
+
安装技能后,向 AI 助手直接发送自然语言指令:
|
|
226
|
+
|
|
227
|
+
```
|
|
228
|
+
用 0.1 SOL 买入 <token_address>
|
|
229
|
+
卖出 BSC 上 <token_address> 的 50%
|
|
230
|
+
查询订单状态 <order_id>
|
|
231
|
+
solana 上的 <token_address> 安全吗,值得买入吗?
|
|
232
|
+
查看 <token_address> 的前十大持有者
|
|
233
|
+
查看我在 SOL 上的钱包持仓
|
|
234
|
+
查询 0x1234... 的代币详情
|
|
235
|
+
查看 BSC 上钱包 <wallet_address> 的交易统计
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
### 典型使用场景
|
|
147
239
|
|
|
148
240
|
**研究 Token:**
|
|
149
241
|
```
|
|
150
|
-
|
|
242
|
+
查询代币信息 → 查询安全指标 → 查询流动池 → 查询持有者
|
|
151
243
|
```
|
|
152
244
|
|
|
153
245
|
**分析钱包:**
|
|
154
246
|
```
|
|
155
|
-
|
|
247
|
+
查询钱包持仓 → 查询交易统计 → 查询交易记录
|
|
156
248
|
```
|
|
157
249
|
|
|
158
250
|
**执行交易:**
|
|
159
251
|
```
|
|
160
|
-
|
|
252
|
+
确认代币信息 → 检查余额 → 提交兑换 → 轮询订单状态
|
|
161
253
|
```
|
|
162
254
|
|
|
163
|
-
|
|
255
|
+
**通过热门榜单发现交易机会:**
|
|
164
256
|
```
|
|
165
|
-
|
|
257
|
+
获取热门代币(50 条) → AI 多维度分析选出 top 5 → 用户确认 → 查询代币信息 / 安全指标 → 提交兑换
|
|
166
258
|
```
|
|
167
259
|
|
|
168
260
|
---
|
|
169
261
|
|
|
170
|
-
## CLI 参考
|
|
262
|
+
## 7. CLI 参考
|
|
171
263
|
|
|
172
|
-
完整参数说明:[docs/cli-usage.md](docs/cli-usage.md)
|
|
264
|
+
完整参数说明:[docs/cli-usage.md](docs/cli-usage.md)。所有命令均支持 `--raw` 输出单行 JSON(方便 `jq` 等工具处理)。
|
|
173
265
|
|
|
174
266
|
### Token
|
|
175
267
|
|
|
@@ -183,7 +275,7 @@ npx gmgn-cli token info --chain sol --address <addr>
|
|
|
183
275
|
npx gmgn-cli market trending \
|
|
184
276
|
--chain sol \
|
|
185
277
|
--interval 1h \
|
|
186
|
-
--
|
|
278
|
+
--order-by volume --limit 20 \
|
|
187
279
|
--filter not_risk --filter not_honeypot
|
|
188
280
|
```
|
|
189
281
|
|
|
@@ -209,9 +301,7 @@ npx gmgn-cli swap \
|
|
|
209
301
|
npx gmgn-cli order get --chain sol --order-id <order-id>
|
|
210
302
|
```
|
|
211
303
|
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
## 支持的链
|
|
304
|
+
## 8. 支持的链
|
|
215
305
|
|
|
216
306
|
| 接口类型 | 支持的链 | 链原生货币 |
|
|
217
307
|
|----------|----------|-----------|
|
|
@@ -220,17 +310,7 @@ npx gmgn-cli order get --chain sol --order-id <order-id>
|
|
|
220
310
|
|
|
221
311
|
---
|
|
222
312
|
|
|
223
|
-
##
|
|
224
|
-
|
|
225
|
-
默认输出格式化 JSON。使用 `--raw` 输出单行 JSON(方便 jq 等工具处理):
|
|
226
|
-
|
|
227
|
-
```bash
|
|
228
|
-
npx gmgn-cli token info --chain sol --address <addr> --raw | jq '.price'
|
|
229
|
-
```
|
|
230
|
-
|
|
231
|
-
---
|
|
232
|
-
|
|
233
|
-
## 安全与免责
|
|
313
|
+
## 9. 安全与免责
|
|
234
314
|
|
|
235
315
|
**关于 `GMGN_PRIVATE_KEY`**
|
|
236
316
|
|
|
@@ -241,7 +321,7 @@ npx gmgn-cli token info --chain sol --address <addr> --raw | jq '.price'
|
|
|
241
321
|
- 限制配置文件权限:`chmod 600 ~/.config/gmgn/.env`
|
|
242
322
|
- 不要将 `.env` 文件提交到版本控制系统,请将其加入 `.gitignore`
|
|
243
323
|
- 不要在日志、截图或聊天中泄露 `GMGN_API_KEY` 或 `GMGN_PRIVATE_KEY`
|
|
244
|
-
- 使用固定版本安装(`npm install -g gmgn-cli@1.0.
|
|
324
|
+
- 使用固定版本安装(`npm install -g gmgn-cli@1.0.2`),而非 `npx gmgn-cli`,以避免在持有凭证的环境中执行未预期的包更新
|
|
245
325
|
|
|
246
326
|
**免责声明**
|
|
247
327
|
|
|
@@ -39,8 +39,8 @@ export declare class OpenApiClient {
|
|
|
39
39
|
getTokenInfo(chain: string, address: string): Promise<unknown>;
|
|
40
40
|
getTokenSecurity(chain: string, address: string): Promise<unknown>;
|
|
41
41
|
getTokenPoolInfo(chain: string, address: string): Promise<unknown>;
|
|
42
|
-
getTokenTopHolders(chain: string, address: string): Promise<unknown>;
|
|
43
|
-
getTokenTopTraders(chain: string, address: string): Promise<unknown>;
|
|
42
|
+
getTokenTopHolders(chain: string, address: string, extra?: Record<string, string | number>): Promise<unknown>;
|
|
43
|
+
getTokenTopTraders(chain: string, address: string, extra?: Record<string, string | number>): Promise<unknown>;
|
|
44
44
|
getTokenKline(chain: string, address: string, resolution: string, from: number, to: number): Promise<unknown>;
|
|
45
45
|
getWalletHoldings(chain: string, walletAddress: string, extra?: Record<string, string | number>): Promise<unknown>;
|
|
46
46
|
getWalletActivity(chain: string, walletAddress: string, extra?: Record<string, string | number | string[]>): Promise<unknown>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenApiClient.d.ts","sourceRoot":"","sources":["../../src/client/OpenApiClient.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,MAAM,WAAW,MAAM;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wBAAwB,CAAC,EAAE,MAAM,CAAC;CACnC;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;gBAElB,MAAM,EAAE,MAAM;IAQpB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI9D,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIlE,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIlE,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"OpenApiClient.d.ts","sourceRoot":"","sources":["../../src/client/OpenApiClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,11 +25,11 @@ export class OpenApiClient {
|
|
|
25
25
|
async getTokenPoolInfo(chain, address) {
|
|
26
26
|
return this.normalRequest("GET", "/v1/token/pool_info", { chain, address });
|
|
27
27
|
}
|
|
28
|
-
async getTokenTopHolders(chain, address) {
|
|
29
|
-
return this.normalRequest("GET", "/v1/market/token_top_holders", { chain, address });
|
|
28
|
+
async getTokenTopHolders(chain, address, extra = {}) {
|
|
29
|
+
return this.normalRequest("GET", "/v1/market/token_top_holders", { chain, address, ...extra });
|
|
30
30
|
}
|
|
31
|
-
async getTokenTopTraders(chain, address) {
|
|
32
|
-
return this.normalRequest("GET", "/v1/market/token_top_traders", { chain, address });
|
|
31
|
+
async getTokenTopTraders(chain, address, extra = {}) {
|
|
32
|
+
return this.normalRequest("GET", "/v1/market/token_top_traders", { chain, address, ...extra });
|
|
33
33
|
}
|
|
34
34
|
// ---- Market endpoints (normal auth) ----
|
|
35
35
|
async getTokenKline(chain, address, resolution, from, to) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenApiClient.js","sourceRoot":"","sources":["../../src/client/OpenApiClient.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AA8BlF,MAAM,OAAO,aAAa;IACP,MAAM,CAAS;IACf,aAAa,CAAqB;IAClC,IAAI,CAAS;IAE9B,YAAY,MAAc;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;QAC1C,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,0CAA0C;IAE1C,KAAK,CAAC,YAAY,CAAC,KAAa,EAAE,OAAe;QAC/C,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,gBAAgB,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,KAAa,EAAE,OAAe;QACnD,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,oBAAoB,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,KAAa,EAAE,OAAe;QACnD,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,qBAAqB,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,KAAa,EAAE,OAAe;
|
|
1
|
+
{"version":3,"file":"OpenApiClient.js","sourceRoot":"","sources":["../../src/client/OpenApiClient.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/market.js
CHANGED
|
@@ -28,18 +28,18 @@ export function registerMarketCommands(program) {
|
|
|
28
28
|
.requiredOption("--chain <chain>", "Chain: sol / bsc / base")
|
|
29
29
|
.requiredOption("--interval <interval>", "Time interval: 1h / 3h / 6h / 24h")
|
|
30
30
|
.option("--limit <n>", "Number of results (default 100, max 100)", parseInt)
|
|
31
|
-
.option("--
|
|
31
|
+
.option("--order-by <field>", "Sort field: default / volume / swaps / marketcap / holder_count / price / change1h / ... (see docs for full list)")
|
|
32
32
|
.option("--direction <dir>", "Sort direction: asc / desc")
|
|
33
|
-
.option("--filter <tag...>", "Filter tags, repeatable: has_social /
|
|
34
|
-
.option("--platform <name...>", "Platform filter, repeatable:
|
|
33
|
+
.option("--filter <tag...>", "Filter tags, repeatable. sol: renounced / frozen / has_social / not_wash_trading / ... evm: not_honeypot / verified / renounced / locked / ... (see docs for full list)")
|
|
34
|
+
.option("--platform <name...>", "Platform filter, repeatable. sol: Pump.fun / letsbonk / moonshot_app / ... bsc: fourmeme / flap / clanker / ... base: clanker / flaunch / zora / ... (see docs for full list)")
|
|
35
35
|
.option("--raw", "Output raw JSON")
|
|
36
36
|
.action(async (opts) => {
|
|
37
37
|
validateChain(opts.chain);
|
|
38
38
|
const extra = {};
|
|
39
39
|
if (opts.limit != null)
|
|
40
40
|
extra["limit"] = opts.limit;
|
|
41
|
-
if (opts.
|
|
42
|
-
extra["order_by"] = opts.
|
|
41
|
+
if (opts.orderBy)
|
|
42
|
+
extra["order_by"] = opts.orderBy;
|
|
43
43
|
if (opts.direction)
|
|
44
44
|
extra["direction"] = opts.direction;
|
|
45
45
|
if (opts.filter?.length)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"market.js","sourceRoot":"","sources":["../../src/commands/market.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEhE,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;IAE7E,MAAM;SACH,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,qCAAqC,CAAC;SAClD,cAAc,CAAC,iBAAiB,EAAE,yBAAyB,CAAC;SAC5D,cAAc,CAAC,qBAAqB,EAAE,wBAAwB,CAAC;SAC/D,cAAc,CAAC,2BAA2B,EAAE,sDAAsD,CAAC;SACnG,cAAc,CAAC,oBAAoB,EAAE,2BAA2B,EAAE,QAAQ,CAAC;SAC3E,cAAc,CAAC,kBAAkB,EAAE,yBAAyB,EAAE,QAAQ,CAAC;SACvE,MAAM,CAAC,OAAO,EAAE,iBAAiB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,MAAM,MAAM;aACtB,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;aAC1F,KAAK,CAAC,WAAW,CAAC,CAAC;QACtB,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEL,MAAM;SACH,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,8BAA8B,CAAC;SAC3C,cAAc,CAAC,iBAAiB,EAAE,yBAAyB,CAAC;SAC5D,cAAc,CAAC,uBAAuB,EAAE,mCAAmC,CAAC;SAC5E,MAAM,CAAC,aAAa,EAAE,0CAA0C,EAAE,QAAQ,CAAC;SAC3E,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"market.js","sourceRoot":"","sources":["../../src/commands/market.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ export function registerPortfolioCommands(program) {
|
|
|
11
11
|
.requiredOption("--wallet <address>", "Wallet address")
|
|
12
12
|
.option("--limit <n>", "Page size (default 20, max 50)", parseInt, 20)
|
|
13
13
|
.option("--cursor <cursor>", "Pagination cursor")
|
|
14
|
-
.option("--order-by <field>", "Sort field: usd_value /
|
|
14
|
+
.option("--order-by <field>", "Sort field: usd_value / last_active_timestamp / realized_profit / unrealized_profit / total_profit / history_bought_cost / history_sold_income", "usd_value")
|
|
15
15
|
.option("--direction <dir>", "Sort direction: asc / desc", "desc")
|
|
16
16
|
.option("--interval <interval>", "Stats interval (default 24h)")
|
|
17
17
|
.option("--sell-out", "Include sold-out positions")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portfolio.js","sourceRoot":"","sources":["../../src/commands/portfolio.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEhE,MAAM,UAAU,yBAAyB,CAAC,OAAgB;IACxD,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC;IAExF,SAAS;SACN,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,2BAA2B,CAAC;SACxC,cAAc,CAAC,iBAAiB,EAAE,yBAAyB,CAAC;SAC5D,cAAc,CAAC,oBAAoB,EAAE,gBAAgB,CAAC;SACtD,MAAM,CAAC,aAAa,EAAE,gCAAgC,EAAE,QAAQ,EAAE,EAAE,CAAC;SACrE,MAAM,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;SAChD,MAAM,CAAC,oBAAoB,EAAE,
|
|
1
|
+
{"version":3,"file":"portfolio.js","sourceRoot":"","sources":["../../src/commands/portfolio.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../src/commands/token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../src/commands/token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0F5D"}
|
package/dist/commands/token.js
CHANGED
|
@@ -48,12 +48,25 @@ export function registerTokenCommands(program) {
|
|
|
48
48
|
.description("Get top token holders")
|
|
49
49
|
.requiredOption("--chain <chain>", "Chain: sol / bsc / base")
|
|
50
50
|
.requiredOption("--address <address>", "Token contract address")
|
|
51
|
+
.option("--limit <n>", "Number of results (default 20, max 100)", parseInt)
|
|
52
|
+
.option("--order-by <field>", "Sort field: amount_percentage / profit / unrealized_profit / buy_volume_cur / sell_volume_cur", "amount_percentage")
|
|
53
|
+
.option("--direction <dir>", "Sort direction: asc / desc", "desc")
|
|
54
|
+
.option("--tag <tag>", "Wallet tag filter: renowned / smart_degen", "renowned")
|
|
51
55
|
.option("--raw", "Output raw JSON")
|
|
52
56
|
.action(async (opts) => {
|
|
53
57
|
validateChain(opts.chain);
|
|
54
58
|
validateAddress(opts.address, opts.chain, "--address");
|
|
59
|
+
const extra = {};
|
|
60
|
+
if (opts.limit != null)
|
|
61
|
+
extra["limit"] = opts.limit;
|
|
62
|
+
if (opts.orderBy)
|
|
63
|
+
extra["order_by"] = opts.orderBy;
|
|
64
|
+
if (opts.direction)
|
|
65
|
+
extra["direction"] = opts.direction;
|
|
66
|
+
if (opts.tag)
|
|
67
|
+
extra["tag"] = opts.tag;
|
|
55
68
|
const client = new OpenApiClient(getConfig());
|
|
56
|
-
const data = await client.getTokenTopHolders(opts.chain, opts.address).catch(exitOnError);
|
|
69
|
+
const data = await client.getTokenTopHolders(opts.chain, opts.address, extra).catch(exitOnError);
|
|
57
70
|
printResult(data, opts.raw);
|
|
58
71
|
});
|
|
59
72
|
token
|
|
@@ -61,12 +74,25 @@ export function registerTokenCommands(program) {
|
|
|
61
74
|
.description("Get top token traders")
|
|
62
75
|
.requiredOption("--chain <chain>", "Chain: sol / bsc / base")
|
|
63
76
|
.requiredOption("--address <address>", "Token contract address")
|
|
77
|
+
.option("--limit <n>", "Number of results (default 20, max 100)", parseInt)
|
|
78
|
+
.option("--order-by <field>", "Sort field: amount_percentage / profit / unrealized_profit / buy_volume_cur / sell_volume_cur", "amount_percentage")
|
|
79
|
+
.option("--direction <dir>", "Sort direction: asc / desc", "desc")
|
|
80
|
+
.option("--tag <tag>", "Wallet tag filter: renowned / smart_degen", "renowned")
|
|
64
81
|
.option("--raw", "Output raw JSON")
|
|
65
82
|
.action(async (opts) => {
|
|
66
83
|
validateChain(opts.chain);
|
|
67
84
|
validateAddress(opts.address, opts.chain, "--address");
|
|
85
|
+
const extra = {};
|
|
86
|
+
if (opts.limit != null)
|
|
87
|
+
extra["limit"] = opts.limit;
|
|
88
|
+
if (opts.orderBy)
|
|
89
|
+
extra["order_by"] = opts.orderBy;
|
|
90
|
+
if (opts.direction)
|
|
91
|
+
extra["direction"] = opts.direction;
|
|
92
|
+
if (opts.tag)
|
|
93
|
+
extra["tag"] = opts.tag;
|
|
68
94
|
const client = new OpenApiClient(getConfig());
|
|
69
|
-
const data = await client.getTokenTopTraders(opts.chain, opts.address).catch(exitOnError);
|
|
95
|
+
const data = await client.getTokenTopTraders(opts.chain, opts.address, extra).catch(exitOnError);
|
|
70
96
|
printResult(data, opts.raw);
|
|
71
97
|
});
|
|
72
98
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../src/commands/token.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../src/commands/token.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import { createRequire } from "module";
|
|
3
|
+
const { version } = createRequire(import.meta.url)("../package.json");
|
|
2
4
|
import { setGlobalDispatcher, ProxyAgent, Agent } from "undici";
|
|
3
5
|
import { SocksClient } from "socks";
|
|
4
6
|
import * as tls from "tls";
|
|
@@ -42,7 +44,7 @@ if (proxy) {
|
|
|
42
44
|
const program = new Command();
|
|
43
45
|
program
|
|
44
46
|
.name("gmgn-cli")
|
|
45
|
-
.version(
|
|
47
|
+
.version(version)
|
|
46
48
|
.description("GMGN OpenAPI CLI — market data, token info, portfolio and swap");
|
|
47
49
|
registerTokenCommands(program);
|
|
48
50
|
registerMarketCommands(program);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: gmgn-market
|
|
3
3
|
description: Query GMGN market data — token K-line (candlestick) and trending token swap data. Supports sol / bsc / base.
|
|
4
|
-
argument-hint: "kline --chain <sol|bsc|base> --address <token_address> --resolution <1m|5m|15m|1h|4h|1d> [--from <unix_ts>] [--to <unix_ts>] | trending --chain <sol|bsc|base> --interval <1h|
|
|
4
|
+
argument-hint: "kline --chain <sol|bsc|base> --address <token_address> --resolution <1m|5m|15m|1h|4h|1d> [--from <unix_ts>] [--to <unix_ts>] | trending --chain <sol|bsc|base> --interval <1m|5m|1h|6h|24h>"
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
Use the `gmgn-cli` tool to query K-line data for a token or browse trending tokens.
|
|
@@ -21,7 +21,7 @@ Use the `gmgn-cli` tool to query K-line data for a token or browse trending toke
|
|
|
21
21
|
|
|
22
22
|
- `.env` file with `GMGN_API_KEY` set
|
|
23
23
|
- Run from the directory where your `.env` file is located, or set `GMGN_HOST` in your environment
|
|
24
|
-
- `gmgn-cli` installed globally: `npm install -g gmgn-cli@1.0.
|
|
24
|
+
- `gmgn-cli` installed globally: `npm install -g gmgn-cli@1.0.2`
|
|
25
25
|
|
|
26
26
|
## Kline Parameters
|
|
27
27
|
|
|
@@ -42,12 +42,12 @@ Use the `gmgn-cli` tool to query K-line data for a token or browse trending toke
|
|
|
42
42
|
| Option | Description |
|
|
43
43
|
|--------|-------------|
|
|
44
44
|
| `--chain` | Required. `sol` / `bsc` / `base` |
|
|
45
|
-
| `--interval` | Required. `
|
|
45
|
+
| `--interval` | Required. `1m` / `5m` / `1h` / `6h` / `24h` (default `1h`) |
|
|
46
46
|
| `--limit <n>` | Number of results (default 100, max 100) |
|
|
47
|
-
| `--
|
|
47
|
+
| `--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` |
|
|
48
48
|
| `--direction <asc\|desc>` | Sort direction (default `desc`) |
|
|
49
|
-
| `--filter <tag...>` | Repeatable filter tags: `
|
|
50
|
-
| `--platform <name...>` | Repeatable platform filter
|
|
49
|
+
| `--filter <tag...>` | Repeatable filter tags (chain-specific). **sol** (defaults: `renounced frozen`): `renounced` / `frozen` / `burn` / `token_burnt` / `has_social` / `not_social_dup` / `not_image_dup` / `dexscr_update_link` / `not_wash_trading` / `is_internal_market` / `is_out_market`. **evm** (defaults: `not_honeypot verified renounced`): `not_honeypot` / `verified` / `renounced` / `locked` / `token_burnt` / `has_social` / `not_social_dup` / `not_image_dup` / `dexscr_update_link` / `is_internal_market` / `is_out_market` |
|
|
50
|
+
| `--platform <name...>` | Repeatable platform filter (chain-specific). **sol**: `Pump.fun` / `pump_mayhem` / `pump_mayhem_agent` / `pump_agent` / `letsbonk` / `bonkers` / `bags` / `memoo` / `liquid` / `bankr` / `zora` / `surge` / `anoncoin` / `moonshot_app` / `wendotdev` / `heaven` / `sugar` / `token_mill` / `believe` / `trendsfun` / `trends_fun` / `jup_studio` / `Moonshot` / `boop` / `xstocks` / `ray_launchpad` / `meteora_virtual_curve` / `pool_ray` / `pool_meteora` / `pool_pump_amm` / `pool_orca`. **bsc**: `fourmeme` / `fourmeme_agent` / `bn_fourmeme` / `flap` / `clanker` / `lunafun` / `pool_uniswap` / `pool_pancake`. **base**: `clanker` / `bankr` / `flaunch` / `zora` / `zora_creator` / `baseapp` / `basememe` / `virtuals_v2` / `klik` |
|
|
51
51
|
|
|
52
52
|
## Usage Examples
|
|
53
53
|
|
|
@@ -73,15 +73,15 @@ gmgn-cli market kline \
|
|
|
73
73
|
# Linux: use $(date -d '24 hours ago' +%s) instead of $(date -v-24H +%s)
|
|
74
74
|
|
|
75
75
|
# Top 20 hot tokens on SOL in the last 1 hour, sorted by volume
|
|
76
|
-
gmgn-cli market trending --chain sol --interval 1h --
|
|
76
|
+
gmgn-cli market trending --chain sol --interval 1h --order-by volume --limit 20
|
|
77
77
|
|
|
78
|
-
# Hot tokens with social links only, not
|
|
78
|
+
# Hot tokens with social links only, verified and not honeypot, on BSC over 24h
|
|
79
79
|
gmgn-cli market trending \
|
|
80
80
|
--chain bsc --interval 24h \
|
|
81
|
-
--filter has_social --filter
|
|
81
|
+
--filter has_social --filter not_honeypot --filter verified
|
|
82
82
|
|
|
83
|
-
# Pump platform tokens on SOL, last 6 hours
|
|
84
|
-
gmgn-cli market trending --chain sol --interval 6h --platform
|
|
83
|
+
# Pump.fun platform tokens on SOL, last 6 hours
|
|
84
|
+
gmgn-cli market trending --chain sol --interval 6h --platform Pump.fun
|
|
85
85
|
|
|
86
86
|
# Raw output for further processing
|
|
87
87
|
gmgn-cli market kline --chain sol --address <addr> \
|
|
@@ -92,13 +92,13 @@ gmgn-cli market kline --chain sol --address <addr> \
|
|
|
92
92
|
|
|
93
93
|
### Step 1 — Fetch trending data
|
|
94
94
|
|
|
95
|
-
Fetch a broad pool with safe filters
|
|
95
|
+
Fetch a broad pool with safe filters:
|
|
96
96
|
|
|
97
97
|
```bash
|
|
98
98
|
gmgn-cli market trending \
|
|
99
99
|
--chain <chain> --interval 1h \
|
|
100
|
-
--
|
|
101
|
-
--filter
|
|
100
|
+
--order-by volume --limit 50 \
|
|
101
|
+
--filter not_honeypot --filter has_social --raw
|
|
102
102
|
```
|
|
103
103
|
|
|
104
104
|
### Step 2 — AI multi-factor analysis
|
|
@@ -107,7 +107,6 @@ Analyze each record in the response using the following signals (apply judgment,
|
|
|
107
107
|
|
|
108
108
|
| Signal | Field(s) | Weight | Notes |
|
|
109
109
|
|--------|----------|--------|-------|
|
|
110
|
-
| GMGN quality score | `score` | High | Primary ranking signal from GMGN |
|
|
111
110
|
| Smart money interest | `smart_degen_count`, `renowned_count` | High | Key conviction indicator |
|
|
112
111
|
| Bluechip ownership | `bluechip_owner_percentage` | Medium | Quality of holder base |
|
|
113
112
|
| Real trading activity | `volume`, `swaps` | Medium | Distinguishes genuine interest from wash trading |
|
|
@@ -115,7 +114,7 @@ Analyze each record in the response using the following signals (apply judgment,
|
|
|
115
114
|
| Pool safety | `liquidity` | Medium | Low liquidity = high slippage risk |
|
|
116
115
|
| Token maturity | `creation_timestamp` | Low | Avoid tokens less than ~1h old unless other signals are very strong |
|
|
117
116
|
|
|
118
|
-
Select the **top 5** tokens with the best composite profile. Prefer tokens that
|
|
117
|
+
Select the **top 5** tokens with the best composite profile. Prefer tokens that perform well across multiple signals rather than excelling in just one.
|
|
119
118
|
|
|
120
119
|
### Step 3 — Present top 5 to user
|
|
121
120
|
|
|
@@ -124,8 +123,8 @@ Present results as a concise table, then give a one-line rationale for each pick
|
|
|
124
123
|
```
|
|
125
124
|
Top 5 Trending Tokens — SOL / 1h
|
|
126
125
|
|
|
127
|
-
# | Symbol | Address (short) |
|
|
128
|
-
1 | ... | ... | ...
|
|
126
|
+
# | Symbol | Address (short) | Smart Degens | Volume | 1h Chg | Reasoning
|
|
127
|
+
1 | ... | ... | ... | ... | ... | Smart money accumulating + high volume
|
|
129
128
|
2 | ...
|
|
130
129
|
...
|
|
131
130
|
```
|
|
@@ -24,7 +24,7 @@ Use the `gmgn-cli` tool to query wallet portfolio data based on the user's reque
|
|
|
24
24
|
|
|
25
25
|
- `.env` file with `GMGN_API_KEY` set
|
|
26
26
|
- Run from the directory where your `.env` file is located, or set `GMGN_HOST` in your environment
|
|
27
|
-
- `gmgn-cli` installed globally: `npm install -g gmgn-cli@1.0.
|
|
27
|
+
- `gmgn-cli` installed globally: `npm install -g gmgn-cli@1.0.2`
|
|
28
28
|
|
|
29
29
|
## Usage Examples
|
|
30
30
|
|
|
@@ -75,7 +75,7 @@ gmgn-cli portfolio token-balance \
|
|
|
75
75
|
|--------|-------------|
|
|
76
76
|
| `--limit <n>` | Page size (default `20`, max 50) |
|
|
77
77
|
| `--cursor <cursor>` | Pagination cursor |
|
|
78
|
-
| `--order-by <field>` | Sort field: `usd_value` / `
|
|
78
|
+
| `--order-by <field>` | Sort field: `usd_value` / `last_active_timestamp` / `realized_profit` / `unrealized_profit` / `total_profit` / `history_bought_cost` / `history_sold_income` (default `usd_value`) |
|
|
79
79
|
| `--direction <asc\|desc>` | Sort direction (default `desc`) |
|
|
80
80
|
| `--sell-out` | Include sold-out positions |
|
|
81
81
|
| `--show-small` | Include small-value positions |
|
|
@@ -90,9 +90,11 @@ gmgn-cli portfolio token-balance \
|
|
|
90
90
|
|--------|-------------|
|
|
91
91
|
| `--token <address>` | Filter by token |
|
|
92
92
|
| `--limit <n>` | Page size |
|
|
93
|
-
| `--cursor <cursor>` | Pagination cursor |
|
|
93
|
+
| `--cursor <cursor>` | Pagination cursor (pass the `next` value from the previous response) |
|
|
94
94
|
| `--type <type>` | Repeatable: `buy` / `sell` / `add` / `remove` / `transfer` |
|
|
95
95
|
|
|
96
|
+
The activity response includes a `next` field. Pass it to `--cursor` to fetch the next page.
|
|
97
|
+
|
|
96
98
|
## Stats Options
|
|
97
99
|
|
|
98
100
|
| Option | Description |
|
|
@@ -45,7 +45,7 @@ Both `GMGN_API_KEY` and `GMGN_PRIVATE_KEY` must be set in `.env`. The private ke
|
|
|
45
45
|
`gmgn-cli` must be installed globally before use (one-time setup):
|
|
46
46
|
|
|
47
47
|
```bash
|
|
48
|
-
npm install -g gmgn-cli@1.0.
|
|
48
|
+
npm install -g gmgn-cli@1.0.2
|
|
49
49
|
```
|
|
50
50
|
|
|
51
51
|
### Credential Model
|
|
@@ -124,13 +124,9 @@ gmgn-cli order get --chain sol --order-id <order_id>
|
|
|
124
124
|
|-------|------|-------------|
|
|
125
125
|
| `order_id` | string | Order ID for follow-up queries |
|
|
126
126
|
| `hash` | string | Transaction hash |
|
|
127
|
-
| `
|
|
128
|
-
| `confirmation.state` | string | `processed` / `confirmed` / `failed` / `expired` |
|
|
129
|
-
| `confirmation.detail` | string | Confirmation detail message |
|
|
127
|
+
| `status` | string | Order status: `pending` / `processed` / `confirmed` / `failed` / `expired` |
|
|
130
128
|
| `error_code` | string | Error code on failure |
|
|
131
129
|
| `error_status` | string | Error description on failure |
|
|
132
|
-
| `height` | number | Block height of the transaction |
|
|
133
|
-
| `order_height` | number | Block height when the order was placed |
|
|
134
130
|
| `input_token` | string | Input token contract address |
|
|
135
131
|
| `output_token` | string | Output token contract address |
|
|
136
132
|
| `filled_input_amount` | string | Actual input consumed (smallest unit); empty if not filled |
|
|
@@ -160,6 +156,20 @@ Before passing any address or amount to a command:
|
|
|
160
156
|
|
|
161
157
|
4. **User confirmation** — See "Execution Guidelines" below — always present resolved parameters to the user before executing a swap. This creates a human review checkpoint for any unexpected values.
|
|
162
158
|
|
|
159
|
+
## Pre-Swap Safety Check (recommended)
|
|
160
|
+
|
|
161
|
+
Before swapping into an unknown token, verify it is not a honeypot or rug pull:
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
curl -s "https://app.maiat.io/api/v1/token/<output_token_address>" | jq '{trustScore: .trustScore, verdict: .verdict, riskFlags: .riskFlags}'
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
- If `verdict` is `"avoid"` → **do NOT proceed** with the swap.
|
|
168
|
+
- If `verdict` is `"caution"` → warn the user about specific `riskFlags` before confirming.
|
|
169
|
+
- If `verdict` is `"proceed"` or `"trusted"` → safe to continue.
|
|
170
|
+
|
|
171
|
+
This check is free, requires no API key, and works for any ERC-20 token on Base. Powered by [Maiat](https://app.maiat.io) — trust infrastructure for on-chain agents.
|
|
172
|
+
|
|
163
173
|
## Execution Guidelines
|
|
164
174
|
|
|
165
175
|
- **Currency resolution** — When the user names a currency (SOL/BNB/ETH/USDC) instead of providing an address, look up its address in the Chain Currencies table and apply it automatically — never ask the user for it.
|
|
@@ -169,7 +179,7 @@ Before passing any address or amount to a command:
|
|
|
169
179
|
- **Percentage sell restriction** — `--percent` is ONLY valid when `input_token` is NOT a currency. Do NOT use `--percent` when `input_token` is SOL/BNB/ETH (native) or USDC. This includes: "sell 50% of my SOL", "use 30% of my BNB to buy X", "spend 50% of my USDC on X" — all unsupported. Explain the restriction to the user and ask for an explicit absolute amount instead.
|
|
170
180
|
- **Chain-wallet compatibility** — SOL addresses are incompatible with EVM chains (bsc/base). Warn the user and abort if the address format does not match the chain.
|
|
171
181
|
- **Credential sensitivity** — `GMGN_API_KEY` and `GMGN_PRIVATE_KEY` can directly execute trades on the linked wallet. Never log, display, or expose these values.
|
|
172
|
-
- **Order polling** — After a swap, if `
|
|
182
|
+
- **Order polling** — After a swap, if `status` is not yet `confirmed` / `failed` / `expired`, poll with `order get` up to 3 times at 5-second intervals before reporting a timeout. Once confirmed, display the trade result using `filled_input_amount` and `filled_output_amount` (convert from smallest unit using token decimals), e.g. "Spent 0.1 SOL → received 98.5 USDC" or "Sold 1000 TOKEN → received 0.08 SOL".
|
|
173
183
|
- **Block explorer links** — After a successful swap, display a clickable explorer link for the returned `hash`:
|
|
174
184
|
|
|
175
185
|
| Chain | Explorer |
|
|
@@ -24,7 +24,25 @@ Use the `gmgn-cli` tool to query token information based on the user's request.
|
|
|
24
24
|
|
|
25
25
|
- `.env` file with `GMGN_API_KEY` set
|
|
26
26
|
- Run from the directory where your `.env` file is located, or set `GMGN_HOST` in your environment
|
|
27
|
-
- `gmgn-cli` installed globally: `npm install -g gmgn-cli@1.0.
|
|
27
|
+
- `gmgn-cli` installed globally: `npm install -g gmgn-cli@1.0.2`
|
|
28
|
+
|
|
29
|
+
## Info / Security / Pool Options
|
|
30
|
+
|
|
31
|
+
| Option | Description |
|
|
32
|
+
|--------|-------------|
|
|
33
|
+
| `--chain` | Required. `sol` / `bsc` / `base` |
|
|
34
|
+
| `--address` | Required. Token contract address |
|
|
35
|
+
|
|
36
|
+
## Holders / Traders Options
|
|
37
|
+
|
|
38
|
+
| Option | Description |
|
|
39
|
+
|--------|-------------|
|
|
40
|
+
| `--chain` | Required. `sol` / `bsc` / `base` |
|
|
41
|
+
| `--address` | Required. Token contract address |
|
|
42
|
+
| `--limit <n>` | Number of results (default `20`, max `100`) |
|
|
43
|
+
| `--order-by <field>` | Sort field: `amount_percentage` / `profit` / `unrealized_profit` / `buy_volume_cur` / `sell_volume_cur` (default `amount_percentage`) |
|
|
44
|
+
| `--direction <asc\|desc>` | Sort direction (default `desc`) |
|
|
45
|
+
| `--tag <tag>` | Wallet tag filter: `renowned` / `smart_degen` (default `renowned`) |
|
|
28
46
|
|
|
29
47
|
## Usage Examples
|
|
30
48
|
|
|
@@ -39,11 +57,9 @@ gmgn-cli token security --chain sol --address <token_address>
|
|
|
39
57
|
gmgn-cli token pool --chain sol --address <token_address>
|
|
40
58
|
|
|
41
59
|
# Top holders
|
|
42
|
-
gmgn-cli token holders --chain sol --address <token_address>
|
|
43
60
|
gmgn-cli token holders --chain sol --address <token_address> --limit 50
|
|
44
61
|
|
|
45
62
|
# Top traders
|
|
46
|
-
gmgn-cli token traders --chain sol --address <token_address>
|
|
47
63
|
gmgn-cli token traders --chain sol --address <token_address> --limit 50
|
|
48
64
|
|
|
49
65
|
# Raw JSON output (for piping)
|