madeonsol 1.3.0 → 1.4.1
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/LICENSE +21 -21
- package/README.md +451 -448
- package/dist/index.d.ts +611 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +308 -0
- package/dist/index.js.map +1 -0
- package/package.json +60 -59
package/README.md
CHANGED
|
@@ -1,448 +1,451 @@
|
|
|
1
|
-
# madeonsol
|
|
2
|
-
|
|
3
|
-
[](https://www.npmjs.com/package/madeonsol)
|
|
4
|
-
[](https://www.npmjs.com/package/madeonsol)
|
|
5
|
-
[](https://www.typescriptlang.org/)
|
|
6
|
-
[](package.json)
|
|
7
|
-
[](LICENSE)
|
|
8
|
-
|
|
9
|
-
Official TypeScript/JavaScript SDK for the **[MadeOnSol](https://madeonsol.com) Solana API** — zero dependencies, fully typed, works in Node.js ≥ 18 and edge runtimes.
|
|
10
|
-
n> Real-time Solana trading intelligence: track 1,000+ KOL wallets with <3s latency, score 6,700+ Pump.fun deployers by reputation, detect multi-KOL coordination signals, and stream every DEX trade. Free tier: 200 requests/day at [madeonsol.com/developer](https://madeonsol.com/developer) — no credit card required.
|
|
11
|
-
|
|
12
|
-
> **Build Solana trading bots, analytics dashboards, KOL copy-trading tools, deployer sniper bots, and ecosystem browsers.**
|
|
13
|
-
|
|
14
|
-
| Feature | Description |
|
|
15
|
-
|---|---|
|
|
16
|
-
| **KOL Tracker** | Real-time trade feed, PnL leaderboard, coordination detection, and per-wallet profiles for
|
|
17
|
-
| **Deployer Hunter** | Pump.fun deployer scoring, tier leaderboard, deploy alerts, and bonding intelligence |
|
|
18
|
-
| **DEX Trade Stream** | Real-time WebSocket stream of ALL Solana DEX trades — filter by token, wallet, program, or trade size (Ultra) |
|
|
19
|
-
| **Webhooks** | Push notifications for KOL trades, coordination signals, and deployer alerts (Pro/Ultra) |
|
|
20
|
-
| **Tool Directory** | Search 950+ Solana tools and dApps indexed on MadeOnSol |
|
|
21
|
-
|
|
22
|
-
**Links:** [Full docs](https://madeonsol.com/solana-api) · [Website](https://madeonsol.com) · [RapidAPI listing](https://rapidapi.com/ClaudeTools/api/madeonsol-solana-kol-tracker-tools-api)
|
|
23
|
-
|
|
24
|
-
## Authentication
|
|
25
|
-
|
|
26
|
-
| Method | Format | Best for |
|
|
27
|
-
|---|---|---|
|
|
28
|
-
| **MadeOnSol API key** (recommended) | `msk_...` | Developers — [get a free key](https://madeonsol.com/developer) |
|
|
29
|
-
| RapidAPI key | Standard RapidAPI key | RapidAPI subscribers |
|
|
30
|
-
|
|
31
|
-
The SDK auto-detects the key type by the `msk_` prefix.
|
|
32
|
-
|
|
33
|
-
---
|
|
34
|
-
|
|
35
|
-
## Install
|
|
36
|
-
|
|
37
|
-
```bash
|
|
38
|
-
npm install madeonsol
|
|
39
|
-
# or
|
|
40
|
-
yarn add madeonsol
|
|
41
|
-
# or
|
|
42
|
-
pnpm add madeonsol
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
Requires **Node.js ≥ 18** (uses native `fetch`). Works out of the box in Cloudflare Workers, Vercel Edge, and Bun.
|
|
46
|
-
|
|
47
|
-
---
|
|
48
|
-
|
|
49
|
-
## Quick start
|
|
50
|
-
|
|
51
|
-
```ts
|
|
52
|
-
import { MadeOnSol } from "madeonsol";
|
|
53
|
-
|
|
54
|
-
// With MadeOnSol API key (recommended — get one free at madeonsol.com/developer)
|
|
55
|
-
const client = new MadeOnSol({ apiKey: "msk_your_api_key_here" });
|
|
56
|
-
|
|
57
|
-
// Or with RapidAPI key
|
|
58
|
-
// const client = new MadeOnSol({ apiKey: "your-rapidapi-key" });
|
|
59
|
-
|
|
60
|
-
// Latest KOL buy trades
|
|
61
|
-
const { trades } = await client.kol.feed({ limit: 10, action: "buy" });
|
|
62
|
-
console.log(trades[0].kol_name, "bought", trades[0].token_symbol);
|
|
63
|
-
|
|
64
|
-
// Elite deployer leaderboard
|
|
65
|
-
const { deployers } = await client.deployer.leaderboard({ tier: "elite" });
|
|
66
|
-
|
|
67
|
-
// Recent deploy alerts
|
|
68
|
-
const { alerts } = await client.deployer.alerts({ limit: 5 });
|
|
69
|
-
|
|
70
|
-
// Search Solana tools
|
|
71
|
-
const { tools } = await client.tools.search({ q: "trading", limit: 10 });
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
---
|
|
75
|
-
|
|
76
|
-
## Use cases
|
|
77
|
-
|
|
78
|
-
- **Copy-trading bot** — stream KOL buys via `client.kol.feed()` and mirror trades
|
|
79
|
-
- **DEX trade sniping** — subscribe to the all-DEX stream filtered by token or wallet
|
|
80
|
-
- **Deployer sniper** — monitor `client.deployer.alerts()` for elite-tier launches
|
|
81
|
-
- **Coordination detector** — flag tokens with `client.kol.coordination({ min_kols: 3 })`
|
|
82
|
-
- **Analytics dashboard** — combine leaderboard, PnL, and tool data
|
|
83
|
-
- **Telegram/Discord bot** — pipe alerts via webhooks into chat
|
|
84
|
-
- **Portfolio tracker** — use `client.kol.wallet()` to follow specific KOL positions
|
|
85
|
-
|
|
86
|
-
---
|
|
87
|
-
|
|
88
|
-
## API Reference
|
|
89
|
-
|
|
90
|
-
### KOL Tracker — `client.kol`
|
|
91
|
-
|
|
92
|
-
#### `client.kol.feed(params?)`
|
|
93
|
-
|
|
94
|
-
Live feed of trades made by tracked KOL wallets.
|
|
95
|
-
|
|
96
|
-
```ts
|
|
97
|
-
const { trades, count } = await client.kol.feed({
|
|
98
|
-
limit: 50, // 1–100, default 50
|
|
99
|
-
action: "buy", // "buy" | "sell"
|
|
100
|
-
kol: "7xKX...", // filter by specific wallet
|
|
101
|
-
});
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
Returns: `KolFeedResponse` — `{ trades: KolTrade[], count: number }`
|
|
105
|
-
|
|
106
|
-
---
|
|
107
|
-
|
|
108
|
-
#### `client.kol.leaderboard(params?)`
|
|
109
|
-
|
|
110
|
-
KOL PnL leaderboard ranked by realized profit.
|
|
111
|
-
|
|
112
|
-
```ts
|
|
113
|
-
const { leaderboard, period } = await client.kol.leaderboard({
|
|
114
|
-
period: "7d", // "today" | "7d" | "30d", default "7d"
|
|
115
|
-
});
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
```
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
await client.webhooks.
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
//
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
//
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
- [MadeOnSol
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
1
|
+
# madeonsol
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/madeonsol)
|
|
4
|
+
[](https://www.npmjs.com/package/madeonsol)
|
|
5
|
+
[](https://www.typescriptlang.org/)
|
|
6
|
+
[](package.json)
|
|
7
|
+
[](LICENSE)
|
|
8
|
+
|
|
9
|
+
Official TypeScript/JavaScript SDK for the **[MadeOnSol](https://madeonsol.com) Solana API** — zero dependencies, fully typed, works in Node.js ≥ 18 and edge runtimes.
|
|
10
|
+
n> Real-time Solana trading intelligence: track 1,000+ KOL wallets with <3s latency, score 6,700+ Pump.fun deployers by reputation, detect multi-KOL coordination signals, and stream every DEX trade. Free tier: 200 requests/day at [madeonsol.com/developer](https://madeonsol.com/developer) — no credit card required.
|
|
11
|
+
|
|
12
|
+
> **Build Solana trading bots, analytics dashboards, KOL copy-trading tools, deployer sniper bots, and ecosystem browsers.**
|
|
13
|
+
|
|
14
|
+
| Feature | Description |
|
|
15
|
+
|---|---|
|
|
16
|
+
| **KOL Tracker** | Real-time trade feed, PnL leaderboard with five time windows (today, 7d, 30d, 90d, 180d), coordination detection, and per-wallet profiles for 1,000+ tracked KOL wallets. **180 days of trade history** retained. |
|
|
17
|
+
| **Deployer Hunter** | Pump.fun deployer scoring, tier leaderboard, deploy alerts, and bonding intelligence |
|
|
18
|
+
| **DEX Trade Stream** | Real-time WebSocket stream of ALL Solana DEX trades — filter by token, wallet, program, or trade size (Ultra) |
|
|
19
|
+
| **Webhooks** | Push notifications for KOL trades, coordination signals, and deployer alerts (Pro/Ultra) |
|
|
20
|
+
| **Tool Directory** | Search 950+ Solana tools and dApps indexed on MadeOnSol |
|
|
21
|
+
|
|
22
|
+
**Links:** [Full docs](https://madeonsol.com/solana-api) · [Website](https://madeonsol.com) · [RapidAPI listing](https://rapidapi.com/ClaudeTools/api/madeonsol-solana-kol-tracker-tools-api)
|
|
23
|
+
|
|
24
|
+
## Authentication
|
|
25
|
+
|
|
26
|
+
| Method | Format | Best for |
|
|
27
|
+
|---|---|---|
|
|
28
|
+
| **MadeOnSol API key** (recommended) | `msk_...` | Developers — [get a free key](https://madeonsol.com/developer) |
|
|
29
|
+
| RapidAPI key | Standard RapidAPI key | RapidAPI subscribers |
|
|
30
|
+
|
|
31
|
+
The SDK auto-detects the key type by the `msk_` prefix.
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Install
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
npm install madeonsol
|
|
39
|
+
# or
|
|
40
|
+
yarn add madeonsol
|
|
41
|
+
# or
|
|
42
|
+
pnpm add madeonsol
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Requires **Node.js ≥ 18** (uses native `fetch`). Works out of the box in Cloudflare Workers, Vercel Edge, and Bun.
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Quick start
|
|
50
|
+
|
|
51
|
+
```ts
|
|
52
|
+
import { MadeOnSol } from "madeonsol";
|
|
53
|
+
|
|
54
|
+
// With MadeOnSol API key (recommended — get one free at madeonsol.com/developer)
|
|
55
|
+
const client = new MadeOnSol({ apiKey: "msk_your_api_key_here" });
|
|
56
|
+
|
|
57
|
+
// Or with RapidAPI key
|
|
58
|
+
// const client = new MadeOnSol({ apiKey: "your-rapidapi-key" });
|
|
59
|
+
|
|
60
|
+
// Latest KOL buy trades
|
|
61
|
+
const { trades } = await client.kol.feed({ limit: 10, action: "buy" });
|
|
62
|
+
console.log(trades[0].kol_name, "bought", trades[0].token_symbol);
|
|
63
|
+
|
|
64
|
+
// Elite deployer leaderboard
|
|
65
|
+
const { deployers } = await client.deployer.leaderboard({ tier: "elite" });
|
|
66
|
+
|
|
67
|
+
// Recent deploy alerts
|
|
68
|
+
const { alerts } = await client.deployer.alerts({ limit: 5 });
|
|
69
|
+
|
|
70
|
+
// Search Solana tools
|
|
71
|
+
const { tools } = await client.tools.search({ q: "trading", limit: 10 });
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Use cases
|
|
77
|
+
|
|
78
|
+
- **Copy-trading bot** — stream KOL buys via `client.kol.feed()` and mirror trades
|
|
79
|
+
- **DEX trade sniping** — subscribe to the all-DEX stream filtered by token or wallet
|
|
80
|
+
- **Deployer sniper** — monitor `client.deployer.alerts()` for elite-tier launches
|
|
81
|
+
- **Coordination detector** — flag tokens with `client.kol.coordination({ min_kols: 3 })`
|
|
82
|
+
- **Analytics dashboard** — combine leaderboard, PnL, and tool data
|
|
83
|
+
- **Telegram/Discord bot** — pipe alerts via webhooks into chat
|
|
84
|
+
- **Portfolio tracker** — use `client.kol.wallet()` to follow specific KOL positions
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## API Reference
|
|
89
|
+
|
|
90
|
+
### KOL Tracker — `client.kol`
|
|
91
|
+
|
|
92
|
+
#### `client.kol.feed(params?)`
|
|
93
|
+
|
|
94
|
+
Live feed of trades made by tracked KOL wallets.
|
|
95
|
+
|
|
96
|
+
```ts
|
|
97
|
+
const { trades, count } = await client.kol.feed({
|
|
98
|
+
limit: 50, // 1–100, default 50
|
|
99
|
+
action: "buy", // "buy" | "sell"
|
|
100
|
+
kol: "7xKX...", // filter by specific wallet
|
|
101
|
+
});
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Returns: `KolFeedResponse` — `{ trades: KolTrade[], count: number }`
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
#### `client.kol.leaderboard(params?)`
|
|
109
|
+
|
|
110
|
+
KOL PnL leaderboard ranked by realized profit.
|
|
111
|
+
|
|
112
|
+
```ts
|
|
113
|
+
const { leaderboard, period } = await client.kol.leaderboard({
|
|
114
|
+
period: "7d", // "today" | "7d" | "30d" | "90d" | "180d", default "7d"
|
|
115
|
+
});
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
> **180-day retention** — KOL trade data is retained for 180 days (extended from 31 on 2026-04-07). The 90d and 180d windows fill up over time as the trade table accumulates.
|
|
119
|
+
|
|
120
|
+
Returns: `KolLeaderboardResponse`
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
#### `client.kol.wallet(wallet, params?)`
|
|
125
|
+
|
|
126
|
+
Full profile for a single KOL wallet, including trade history and optional per-token PnL breakdown.
|
|
127
|
+
|
|
128
|
+
```ts
|
|
129
|
+
const profile = await client.kol.wallet("7xKX...", {
|
|
130
|
+
include: "pnl_by_token",
|
|
131
|
+
});
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
Returns: `KolWalletProfile`
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
#### `client.kol.coordination(params?)`
|
|
139
|
+
|
|
140
|
+
Detect tokens where multiple KOLs are buying simultaneously — a strong signal of coordinated pumps.
|
|
141
|
+
|
|
142
|
+
```ts
|
|
143
|
+
const { tokens } = await client.kol.coordination({
|
|
144
|
+
period: "24h", // "1h" | "6h" | "24h" | "7d", default "24h"
|
|
145
|
+
min_kols: 3, // 2–50, default 3
|
|
146
|
+
limit: 20, // 1–50, default 20
|
|
147
|
+
});
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
Returns: `KolCoordinationResponse`
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
#### `client.kol.token(mint)`
|
|
155
|
+
|
|
156
|
+
KOL buy/sell activity for a specific token mint.
|
|
157
|
+
|
|
158
|
+
```ts
|
|
159
|
+
const activity = await client.kol.token("EPjFW...");
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
Returns: `KolTokenActivity`
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
### Deployer Hunter — `client.deployer`
|
|
167
|
+
|
|
168
|
+
#### `client.deployer.stats()`
|
|
169
|
+
|
|
170
|
+
Global statistics across all tracked deployer wallets.
|
|
171
|
+
|
|
172
|
+
```ts
|
|
173
|
+
const stats = await client.deployer.stats();
|
|
174
|
+
console.log(stats.overall_bonding_rate); // e.g. 0.043
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
Returns: `DeployerStats`
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
#### `client.deployer.leaderboard(params?)`
|
|
182
|
+
|
|
183
|
+
Deployers ranked by bonding rate or recent performance.
|
|
184
|
+
|
|
185
|
+
```ts
|
|
186
|
+
const { deployers } = await client.deployer.leaderboard({
|
|
187
|
+
tier: "elite", // "elite" | "good" | "moderate" | "rising" | "cold"
|
|
188
|
+
sort: "bonding_rate", // "bonding_rate" | "recent_bond_rate" | "total_bonded" | "last_deploy_at"
|
|
189
|
+
limit: 20, // 1–50, default 20
|
|
190
|
+
offset: 0,
|
|
191
|
+
});
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
Returns: `DeployerLeaderboardResponse`
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
#### `client.deployer.profile(wallet)`
|
|
199
|
+
|
|
200
|
+
Full profile for a single deployer wallet.
|
|
201
|
+
|
|
202
|
+
```ts
|
|
203
|
+
const deployer = await client.deployer.profile("3xAB...");
|
|
204
|
+
console.log(deployer.tier, deployer.bonding_rate);
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
Returns: `DeployerProfile`
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
#### `client.deployer.tokens(wallet, params?)`
|
|
212
|
+
|
|
213
|
+
All tokens deployed by a specific wallet.
|
|
214
|
+
|
|
215
|
+
```ts
|
|
216
|
+
const { tokens } = await client.deployer.tokens("3xAB...", {
|
|
217
|
+
limit: 20,
|
|
218
|
+
offset: 0,
|
|
219
|
+
});
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
Returns: `DeployerTokensResponse`
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
#### `client.deployer.alerts(params?)`
|
|
227
|
+
|
|
228
|
+
Real-time deploy alerts — fired when a tracked deployer launches a new token.
|
|
229
|
+
|
|
230
|
+
```ts
|
|
231
|
+
const { alerts } = await client.deployer.alerts({
|
|
232
|
+
since: "2025-01-01T00:00:00Z", // ISO 8601
|
|
233
|
+
limit: 20,
|
|
234
|
+
tier: "elite", // "elite" | "good" | "moderate" | "rising" | "cold" — PRO/ULTRA only
|
|
235
|
+
offset: 0,
|
|
236
|
+
});
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
Returns: `DeployerAlertsResponse`
|
|
240
|
+
|
|
241
|
+
---
|
|
242
|
+
|
|
243
|
+
#### `client.deployer.alertStats(params?)`
|
|
244
|
+
|
|
245
|
+
Aggregated alert statistics by tier.
|
|
246
|
+
|
|
247
|
+
```ts
|
|
248
|
+
const stats = await client.deployer.alertStats({ period: "7d" });
|
|
249
|
+
// "7d" | "30d" | "all", default "all"
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
Returns: `DeployerAlertStats`
|
|
253
|
+
|
|
254
|
+
---
|
|
255
|
+
|
|
256
|
+
#### `client.deployer.bestTokens(params?)`
|
|
257
|
+
|
|
258
|
+
Top-performing tokens from tracked deployers by peak market cap.
|
|
259
|
+
|
|
260
|
+
```ts
|
|
261
|
+
const { tokens } = await client.deployer.bestTokens({
|
|
262
|
+
period: "7d", // "7d" | "30d" | "all", default "7d"
|
|
263
|
+
limit: 5, // 1–20, default 5
|
|
264
|
+
});
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
Returns: `BestTokensResponse`
|
|
268
|
+
|
|
269
|
+
---
|
|
270
|
+
|
|
271
|
+
#### `client.deployer.recentBonds(params?)`
|
|
272
|
+
|
|
273
|
+
Most recently bonded tokens from tracked deployers.
|
|
274
|
+
|
|
275
|
+
```ts
|
|
276
|
+
const { bonds } = await client.deployer.recentBonds({ limit: 20 });
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
Returns: `RecentBondsResponse`
|
|
280
|
+
|
|
281
|
+
---
|
|
282
|
+
|
|
283
|
+
### Tool Directory — `client.tools`
|
|
284
|
+
|
|
285
|
+
#### `client.tools.search(params?)`
|
|
286
|
+
|
|
287
|
+
Search 950+ Solana tools indexed on MadeOnSol.
|
|
288
|
+
|
|
289
|
+
```ts
|
|
290
|
+
const { tools, count } = await client.tools.search({
|
|
291
|
+
q: "trading bot", // full-text search
|
|
292
|
+
category: "trading", // category slug filter
|
|
293
|
+
limit: 20, // 1–50, default 20
|
|
294
|
+
});
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
Returns: `ToolsSearchResponse`
|
|
298
|
+
|
|
299
|
+
---
|
|
300
|
+
|
|
301
|
+
### WebSocket Streaming — `client.stream`
|
|
302
|
+
|
|
303
|
+
#### `client.stream.getToken()`
|
|
304
|
+
|
|
305
|
+
Generate a 24-hour WebSocket streaming token. Pro/Ultra subscribers get `ws_url` for KOL/deployer event streaming. Ultra subscribers also get `dex_ws_url` for the all-DEX trade stream.
|
|
306
|
+
|
|
307
|
+
```ts
|
|
308
|
+
const token = await client.stream.getToken();
|
|
309
|
+
console.log(token.ws_url); // wss://madeonsol.com/ws/v1/stream
|
|
310
|
+
console.log(token.dex_ws_url); // wss://madeonsol.com/ws/v1/dex-stream (Ultra only)
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
Returns: `StreamToken` — `{ token, expires_at, ws_url, dex_ws_url?, usage }`
|
|
314
|
+
|
|
315
|
+
**DEX Trade Stream (Ultra):** Connect to `dex_ws_url` and subscribe with filters:
|
|
316
|
+
|
|
317
|
+
```ts
|
|
318
|
+
ws.send(JSON.stringify({
|
|
319
|
+
type: "subscribe",
|
|
320
|
+
filters: { program: "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P", min_sol: 0.5 }
|
|
321
|
+
}));
|
|
322
|
+
// Filters: token_mint, token_mints (max 50), wallet, wallets (max 50), program, min_sol, max_sol, action
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
---
|
|
326
|
+
|
|
327
|
+
### Webhooks — `client.webhooks`
|
|
328
|
+
|
|
329
|
+
Manage push notification webhooks for real-time events (Pro: 3, Ultra: 10).
|
|
330
|
+
|
|
331
|
+
```ts
|
|
332
|
+
// Create a webhook
|
|
333
|
+
const webhook = await client.webhooks.create({
|
|
334
|
+
url: "https://example.com/hook",
|
|
335
|
+
events: ["kol:trade", "deployer:alert"],
|
|
336
|
+
filters: { min_sol: 1 },
|
|
337
|
+
});
|
|
338
|
+
|
|
339
|
+
// List, update, delete
|
|
340
|
+
const { webhooks } = await client.webhooks.list();
|
|
341
|
+
await client.webhooks.update(webhook.id, { status: "paused" });
|
|
342
|
+
await client.webhooks.delete(webhook.id);
|
|
343
|
+
await client.webhooks.test(webhook.id);
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
---
|
|
347
|
+
|
|
348
|
+
## Error handling
|
|
349
|
+
|
|
350
|
+
All methods throw `MadeOnSolError` on non-2xx responses.
|
|
351
|
+
|
|
352
|
+
```ts
|
|
353
|
+
import { MadeOnSol, MadeOnSolError } from "madeonsol";
|
|
354
|
+
|
|
355
|
+
try {
|
|
356
|
+
const profile = await client.kol.wallet("invalid-wallet");
|
|
357
|
+
} catch (err) {
|
|
358
|
+
if (err instanceof MadeOnSolError) {
|
|
359
|
+
console.error(err.message); // human-readable message
|
|
360
|
+
console.error(err.status); // HTTP status code, e.g. 404
|
|
361
|
+
console.error(err.body); // raw response body
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
```
|
|
365
|
+
|
|
366
|
+
---
|
|
367
|
+
|
|
368
|
+
## Exported types
|
|
369
|
+
|
|
370
|
+
All types are exported from the main entry point:
|
|
371
|
+
|
|
372
|
+
```ts
|
|
373
|
+
import type {
|
|
374
|
+
// Errors
|
|
375
|
+
MadeOnSolError,
|
|
376
|
+
|
|
377
|
+
// KOL
|
|
378
|
+
KolTrade,
|
|
379
|
+
KolFeedParams,
|
|
380
|
+
KolFeedResponse,
|
|
381
|
+
KolLeaderboardParams,
|
|
382
|
+
KolLeaderboardResponse,
|
|
383
|
+
KolLeaderboardEntry,
|
|
384
|
+
KolWalletParams,
|
|
385
|
+
KolWalletProfile,
|
|
386
|
+
KolCoordinationParams,
|
|
387
|
+
KolCoordinationResponse,
|
|
388
|
+
CoordinatedToken,
|
|
389
|
+
KolTokenActivity,
|
|
390
|
+
KolPnlByToken,
|
|
391
|
+
|
|
392
|
+
// Deployer
|
|
393
|
+
DeployerStats,
|
|
394
|
+
DeployerLeaderboardParams,
|
|
395
|
+
DeployerLeaderboardResponse,
|
|
396
|
+
DeployerLeaderboardEntry,
|
|
397
|
+
DeployerProfile,
|
|
398
|
+
DeployerToken,
|
|
399
|
+
DeployerTokensParams,
|
|
400
|
+
DeployerTokensResponse,
|
|
401
|
+
DeployerAlertsParams,
|
|
402
|
+
DeployerAlertsResponse,
|
|
403
|
+
DeployerAlert,
|
|
404
|
+
DeployerAlertStatsParams,
|
|
405
|
+
DeployerAlertStats,
|
|
406
|
+
BestTokensParams,
|
|
407
|
+
BestTokensResponse,
|
|
408
|
+
BestToken,
|
|
409
|
+
RecentBondsParams,
|
|
410
|
+
RecentBondsResponse,
|
|
411
|
+
RecentBond,
|
|
412
|
+
|
|
413
|
+
// Tools
|
|
414
|
+
ToolsSearchParams,
|
|
415
|
+
ToolsSearchResponse,
|
|
416
|
+
Tool,
|
|
417
|
+
|
|
418
|
+
// Streaming
|
|
419
|
+
StreamToken,
|
|
420
|
+
|
|
421
|
+
// Webhooks
|
|
422
|
+
Webhook,
|
|
423
|
+
WebhookCreateParams,
|
|
424
|
+
WebhookUpdateParams,
|
|
425
|
+
WebhookListResponse,
|
|
426
|
+
|
|
427
|
+
// Enums / unions
|
|
428
|
+
KolAction,
|
|
429
|
+
LeaderboardPeriod,
|
|
430
|
+
CoordinationPeriod,
|
|
431
|
+
DeployerTier,
|
|
432
|
+
DeployerSortField,
|
|
433
|
+
AlertPeriod,
|
|
434
|
+
BestTokensPeriod,
|
|
435
|
+
} from "madeonsol";
|
|
436
|
+
```
|
|
437
|
+
|
|
438
|
+
---
|
|
439
|
+
|
|
440
|
+
## Related
|
|
441
|
+
|
|
442
|
+
- [MadeOnSol website](https://madeonsol.com) — Browse 950+ Solana tools
|
|
443
|
+
- [API documentation](https://madeonsol.com/solana-api) — Interactive endpoint reference
|
|
444
|
+
- [RapidAPI listing](https://rapidapi.com/ClaudeTools/api/madeonsol-solana-kol-tracker-tools-api) — Subscribe and get your API key
|
|
445
|
+
- [MadeOnSol on GitHub](https://github.com/LamboPoewert/madeonsol) — Main project repository
|
|
446
|
+
|
|
447
|
+
---
|
|
448
|
+
|
|
449
|
+
## License
|
|
450
|
+
|
|
451
|
+
MIT © [MadeOnSol](https://madeonsol.com)
|