madeonsol 1.1.0 → 1.2.0

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