solana-agent-kit-plugin-madeonsol 1.13.0 โ†’ 1.15.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,297 +1,318 @@
1
- # solana-agent-kit-plugin-madeonsol
2
-
3
- [![npm version](https://img.shields.io/npm/v/solana-agent-kit-plugin-madeonsol?style=flat-square)](https://www.npmjs.com/package/solana-agent-kit-plugin-madeonsol)
4
- [![npm downloads](https://img.shields.io/npm/dm/solana-agent-kit-plugin-madeonsol?style=flat-square)](https://www.npmjs.com/package/solana-agent-kit-plugin-madeonsol)
5
- [![SAK](https://img.shields.io/badge/Solana%20Agent%20Kit-plugin-blueviolet?style=flat-square)](https://github.com/sendaifun/solana-agent-kit)
6
- [![License: MIT](https://img.shields.io/badge/License-MIT-blue?style=flat-square)](LICENSE)
7
-
8
- > ๐Ÿ“š **[API docs](https://madeonsol.com/api-docs)** ยท ๐Ÿ’ฐ **[Free API key](https://madeonsol.com/pricing)** ยท ๐Ÿค– **[Solana Agent Kit](https://github.com/sendaifun/solana-agent-kit)**
9
-
10
- [Solana Agent Kit](https://github.com/sendaifun/solana-agent-kit) plugin for [MadeOnSol](https://madeonsol.com) โ€” Solana KOL intelligence, deployer analytics, and wallet tracking.
11
-
12
- > Real-time Solana trading intelligence: track 1,069 KOL wallets with <3s latency, score 23,000+ Pump.fun deployers, surface deshred deploy signals ~500ms before on-chain confirmation, detect multi-KOL coordination, and stream every DEX trade. Free tier: 200 requests/day at [madeonsol.com/pricing](https://madeonsol.com/pricing) โ€” no credit card required.
13
-
14
- > **New in 1.13.0** โ€” **Token net flow.** New tool `tokenFlow()` + action `MADEONSOL_TOKEN_FLOW_ACTION` โ€” net buy/sell flow over a rolling window (`1h` default, or `24h`): `unique_wallets`, `unique_buyers`, `unique_sellers`, `buy_count`, `sell_count`, `total_trades`, `buy_sol`, `sell_sol`, `net_sol`, `trades_per_wallet`. PRO/ULTRA only. Deployer alerts now also surface `deployer_sol_balance` โ€” the deployer wallet's SOL balance at alert time (`null` for historical rows).
15
- >
16
- > **New in 1.12.0** โ€” **Token OHLCV candles.** New tool `tokenCandles()` + action `MADEONSOL_TOKEN_CANDLES_ACTION` โ€” historical price candles (1m/5m/15m/1h/4h/1d) aggregated from the on-chain trade firehose. Each candle has `t/open/high/low/close/volume_usd/trades/market_cap_usd`. PRO returns OHLCV for the last 30 days; ULTRA adds buy/sell volume + count splits, net flow, MEV volume, open/close liquidity, high/low MC, and full history. PRO/ULTRA only.
17
- >
18
- > **New in 1.11.0** โ€” **Token risk score.** New tool `tokenRisk()` + action `MADEONSOL_TOKEN_RISK_ACTION` โ€” a transparent 0โ€“100 rug-risk/safety score (higher = riskier) with a `band` (safe/caution/danger), an explainable `factors[]` array, and the raw `inputs` (mint/freeze authority, liquidity, liq-to-MC ratio, transfer fee, launch cohort, deployer bond rate, KOL signal, blacklist). PRO/ULTRA only.
19
-
20
- > **New in 1.10.0** โ€” `tokensList()` gains three new filter params: `min_liq_mc_ratio`, `max_liq_mc_ratio`, and `deployer_tier`. Response items now include `liquidity_to_mc_ratio` and `deployer_tier`. KOL leaderboard entries now include `median_hold_minutes_30d` and `percentile_early_entry_30d`. Token endpoints now return `liquidity_to_mc_ratio`, `launch_cohort_sol`, and `launch_cohort_size`.
21
-
22
- > **New in 1.9.3** โ€” Deployer alerts now surface `runner_rate` + `labeled_tokens` (fraction of a deployer's labeled tokens that ran vs dumped, gate on `labeled_tokens` โ‰ฅ3) and `avg_time_to_bond_minutes`.
23
-
24
- > **New in 1.9.2** โ€” **Dump-cluster detection.** Buyer-quality breakdown now includes `dump_cluster_count` (3+ dump-cluster wallets in the first-20 โ†’ 94% historical dump rate vs 61% base) and `recycled_early_buyer_count`, on all tiers. The API also pushes every pump.fun graduation in real time (`token:graduations` WS channel).
25
-
26
- > **New in 1.9** โ€” **Price alerts, scout leaderboard, coordination history.** `agent.methods.priceAlertsCreate()` (PRO=5, ULTRA=25). `agent.methods.scoutLeaderboard()`, `kolConsensus()`, `peakHistory()`, `coordinationHistory()`. `walletStats` now returns `derived`: win_rate, roi, verdict, biggest_miss.
27
- >
28
- > **New in 1.8** โ€” **Universal Wallet API.** `agent.methods.walletStats()`, `walletPnl()`, `walletPositions()`, `walletTrades()` โ€” FIFO cost-basis PnL for any wallet. PRO+. Cache hits free.
29
- >
30
- > **New in 1.7.0** *(2026-05-12)* โ€” **Account introspection + filtered token directory.** Two new actions: `meAction` (`GET /me`) returns your tier, daily/burst quota state, remaining requests, and per-feature usage so the agent can self-throttle; `tokensListAction` (`GET /tokens`, PRO+) exposes the full filtered/sortable token directory with MC band, liquidity floor, recent-activity window, primary DEX, authority flags, computed 1h volume floor, MEV-share ceiling, and MC change deltas โ€” defaults to `min_liq=2000` to skip dust. Token responses now carry velocity / MEV-share fields. `/token/{mint}` returns structured 400 errors (`code`, `reason`, `example`, `docs`) instead of bare 400s. Deprecated `avg_entry_mc_usd` removed from leaderboards.
31
-
32
- ## Quick start (10 seconds)
33
-
34
- ```bash
35
- npm install solana-agent-kit-plugin-madeonsol
36
- ```
37
-
38
- ```ts
39
- import { SolanaAgentKit } from "solana-agent-kit";
40
- import MadeOnSolPlugin from "solana-agent-kit-plugin-madeonsol";
41
- const agent = new SolanaAgentKit(privateKey, rpcUrl, { MADEONSOL_API_KEY: "msk_..." }); // free tier at https://madeonsol.com/pricing
42
- agent.use(MadeOnSolPlugin);
43
- const trades = await agent.methods.kolFeed(agent, { limit: 5, action: "buy" });
44
- ```
45
-
46
- ## Authentication
47
-
48
- Two options (in priority order):
49
-
50
- | Method | Config key | Best for |
51
- |---|---|---|
52
- | **MadeOnSol API key** (recommended) | `MADEONSOL_API_KEY` | Developers โ€” [get a free key](https://madeonsol.com/pricing) |
53
- | x402 micropayments | `SVM_PRIVATE_KEY` | AI agents with Solana wallets |
54
-
55
- > **v1.0 breaking change:** RapidAPI auth (`RAPIDAPI_KEY`) has been removed. The MadeOnSol RapidAPI marketplace was retired on 2026-04-19. Get a free `msk_` key at [madeonsol.com/pricing](https://madeonsol.com/pricing).
56
-
57
- ## Install
58
-
59
- ```bash
60
- npm install solana-agent-kit-plugin-madeonsol
61
- ```
62
-
63
- > x402 peer deps (`@x402/fetch @x402/svm @x402/core @solana/kit @scure/base`) are only needed when using `SVM_PRIVATE_KEY`.
64
-
65
- ## Usage
66
-
67
- ```typescript
68
- import { SolanaAgentKit } from "solana-agent-kit";
69
- import MadeOnSolPlugin from "solana-agent-kit-plugin-madeonsol";
70
-
71
- const agent = new SolanaAgentKit(privateKey, rpcUrl, {
72
- MADEONSOL_API_KEY: "msk_your_api_key_here",
73
- });
74
-
75
- agent.use(MadeOnSolPlugin);
76
-
77
- // Use via methods
78
- const trades = await agent.methods.kolFeed(agent, { limit: 10, action: "buy" });
79
-
80
- // Wallet tracker
81
- const watchlist = await agent.methods.walletTrackerWatchlist(agent);
82
- await agent.methods.walletTrackerAdd(agent, { wallet_address: "WALLET", label: "whale" });
83
- const events = await agent.methods.walletTrackerTrades(agent, { limit: 50 });
84
-
85
- // Or let the LLM trigger actions via natural language
86
- // "What are KOLs buying right now?" โ†’ MADEONSOL_KOL_FEED_ACTION
87
- ```
88
-
89
- ## Actions
90
-
91
- | Action | Triggers on |
92
- |---|---|
93
- | `MADEONSOL_KOL_FEED_ACTION` | "kol trades", "what are kols buying" |
94
- | `MADEONSOL_KOL_COORDINATION_ACTION` | "kol convergence", "tokens kols accumulating" |
95
- | `MADEONSOL_KOL_LEADERBOARD_ACTION` | "top kols", "kol rankings" โ€” periods: today, 7d, 30d, 90d, 180d |
96
- | `MADEONSOL_DEPLOYER_ALERTS_ACTION` | "deployer alerts", "pump fun launches" |
97
- | `MADEONSOL_KOL_PNL_ACTION` | "kol pnl", "kol profit", "wallet pnl" |
98
- | `MADEONSOL_KOL_TRENDING_TOKENS_ACTION` | "kol trending tokens", "kol volume" |
99
- | `MADEONSOL_KOL_FIRST_TOUCHES_ACTION` | "kol first touch", "first kol buyer", "scout signal" โ€” backtested first-mover signal (new in 1.3) |
100
- | `MADEONSOL_WALLET_TRACKER_WATCHLIST_ACTION` | "wallet watchlist", "tracked wallets" |
101
- | `MADEONSOL_WALLET_TRACKER_ADD_ACTION` | "track wallet", "watch wallet", "add to watchlist" |
102
- | `MADEONSOL_WALLET_TRACKER_REMOVE_ACTION` | "untrack wallet", "remove from watchlist" |
103
- | `MADEONSOL_WALLET_TRACKER_TRADES_ACTION` | "wallet tracker trades", "watchlist activity" |
104
- | `MADEONSOL_WALLET_TRACKER_SUMMARY_ACTION` | "wallet tracker summary", "tracked wallet stats" |
105
- | `MADEONSOL_ME_ACTION` | "my api account", "api quota", "remaining requests" โ€” tier + quota introspection (new in 1.7) |
106
- | `MADEONSOL_TOKENS_LIST_ACTION` | "filter tokens", "tokens by market cap", "scan tokens" โ€” filtered/sortable token directory, PRO+ (new in 1.7) |
107
- | `MADEONSOL_WALLET_STATS_ACTION` | **New 1.8** ยท "wallet stats", "wallet info", "check wallet" โ€” aggregate 90d stats + cross-product flags (KOL/alpha/deployer) for any Solana wallet (PRO+) |
108
- | `MADEONSOL_WALLET_PNL_ACTION` | **New 1.8** ยท "wallet pnl", "wallet profit", "wallet performance" โ€” FIFO cost-basis PnL with profit factor, drawdown, daily curve, closed + open positions (PRO+) |
109
- | `MADEONSOL_WALLET_POSITIONS_ACTION` | **New 1.8** ยท "wallet positions", "wallet bags", "open positions" โ€” open lots with live unrealized SOL (PRO+) |
110
- | `MADEONSOL_WALLET_TRADES_ACTION` | **New 1.8** ยท "wallet trades", "wallet history" โ€” cursor-paginated raw trades with filters (PRO+) |
111
- | `MADEONSOL_TOKEN_FLOW_ACTION` | **New 1.13** ยท "token flow", "net flow", "buy/sell pressure" โ€” net buy/sell flow over a 1h/24h window (PRO+) |
112
-
113
- ## Additional methods (v1.0+)
114
-
115
- These are exposed via `agent.methods.*` (no LLM action wrappers โ€” call directly):
116
-
117
- ### Alpha Wallet Intelligence
118
-
119
- Scored from 1M+ early-buyer records (wallets seen in the first 20 buyers of Pump.fun tokens).
120
-
121
- ```ts
122
- await agent.methods.alphaLeaderboard(agent, { limit: 100 }); // Free/Pro=100, ULTRA=500 + bot signals
123
- await agent.methods.alphaWallet(agent, { wallet: "WALLET" }); // ULTRA only โ€” full breakdown + bot signals
124
- await agent.methods.alphaLinked(agent, { wallet: "WALLET" }); // ULTRA only โ€” co-bought 3+ tokens within 2s
125
- ```
126
-
127
- ### Token Quality
128
-
129
- ```ts
130
- await agent.methods.tokenCapTable(agent, { mint: "MINT" }); // PRO=10, ULTRA=20 first non-deployer buyers
131
- await agent.methods.tokenBuyerQuality(agent, { mint: "MINT" }); // 0โ€“100 buyer-quality score (5-min cached)
132
- await agent.methods.tokenRisk(agent, { mint: "MINT" }); // PRO+ 0โ€“100 rug-risk/safety score + band + factors
133
- await agent.methods.tokenCandles(agent, { mint: "MINT", tf: "1h" }); // PRO+ OHLCV candles (1mโ€“1d); ULTRA=+net flow, liquidity, full history
134
- await agent.methods.tokenFlow(agent, { mint: "MINT", window: "24h" }); // PRO+ net buy/sell flow (1h/24h): unique wallets, buy/sell/net SOL, trades-per-wallet
135
- ```
136
-
137
- > Deployer alerts (`MADEONSOL_DEPLOYER_ALERTS_ACTION` / `agent.methods.deployerAlerts()`) now include `deployer_sol_balance` โ€” the deployer wallet's SOL balance at alert time (`null` for historical rows).
138
-
139
- ### Copy-Trade Rules (PRO/ULTRA)
140
-
141
- Server-side rules that fire signals when a watched source wallet trades. Delivered via webhook (HMAC-signed) and/or WebSocket.
142
-
143
- ```ts
144
- await agent.methods.copyTradeList(agent);
145
- await agent.methods.copyTradeCreate(agent, {
146
- name: "Track Whales",
147
- source_wallets: ["WALLET_A", "WALLET_B"], // 1-50 wallets
148
- sizing_mode: "fixed",
149
- sizing_amount: 0.5, // required
150
- only_action: "buy",
151
- delivery_mode: "webhook",
152
- webhook_url: "https://you.com/hook",
153
- });
154
- await agent.methods.copyTradeSignals(agent, { limit: 50 }); // up to 7 days
155
- ```
156
-
157
- ### KOL Coordination Alerts (PRO/ULTRA โ€” v1.1 push signals)
158
-
159
- Real-time push alerts when a KOL cluster co-buys the same token. Fires within ~1s of the triggering trade (pg_notify push, not polling). Delivered via WebSocket (`kol:coordination` channel, user-scoped) and/or HMAC-signed webhook. PRO=5 rules, ULTRA=20.
160
-
161
- ```ts
162
- const res = await agent.methods.coordinationAlertsCreate(agent, {
163
- name: "fresh pump cluster",
164
- min_kols: 4,
165
- window_minutes: 15, // peak-density window (1-60)
166
- min_score: 70, // 0-100 composite score cutoff
167
- include_majors: false, // filter WIF/BONK/POPCAT
168
- cooldown_min: 60,
169
- score_jump_break: 10,
170
- delivery_mode: "both",
171
- webhook_url: "https://you.com/hooks/coord",
172
- });
173
- // store res.webhook_secret โ€” shown ONCE
174
-
175
- await agent.methods.coordinationAlertsList(agent);
176
- await agent.methods.coordinationAlertsGet(agent, { rule_id: "uuid..." });
177
- await agent.methods.coordinationAlertsUpdate(agent, { rule_id: "uuid...", updates: { is_active: false } });
178
- await agent.methods.coordinationAlertsDelete(agent, { rule_id: "uuid..." });
179
- ```
180
-
181
- The v1.1 `kolCoordination()` response also includes `peak_kols`, `peak_buys`, `exited_count`, and `coordination_score` (0-100). Pass `{ min_score, window_minutes, include_majors }` to filter.
182
-
183
- ### KOL First-Touch Signal *(new in 1.3)*
184
-
185
- Every "first KOL buy on a token mint" event โ€” when a tracked KOL is the first of the cohort to touch a token. Filterable by **scout tier** (S/A/B/C from `mv_kol_scout_score`), KOL winrate, token age, mint suffix.
186
-
187
- **Backtest:** S-tier scouts attract โ‰ฅ3 follow-on KOLs within 4h ~50% of the time vs ~14% baseline (38d / 491k buys / 72,549 events). Public leaderboard at [madeonsol.com/kol/scouts](https://madeonsol.com/kol/scouts).
188
-
189
- ```ts
190
- // REST query โ€” also exposed as MADEONSOL_KOL_FIRST_TOUCHES_ACTION for the agent
191
- const { events } = await agent.methods.kolFirstTouches(agent, {
192
- preset: "scout",
193
- min_scout_tier: "S",
194
- limit: 20,
195
- });
196
-
197
- // Webhook subscription (Ultra only) โ€” push delivery, HMAC-signed
198
- const res = await agent.methods.firstTouchSubscriptionsCreate(agent, {
199
- name: "S-tier scouts on pump tokens",
200
- filters: { min_scout_tier: "S", mint_suffix: "pump" },
201
- delivery_mode: "webhook",
202
- webhook_url: "https://you.com/hooks/scout",
203
- });
204
- // store res.webhook_secret โ€” shown ONCE
205
-
206
- await agent.methods.firstTouchSubscriptionsList(agent);
207
- await agent.methods.firstTouchSubscriptionsGet(agent, { subscription_id: "uuid..." });
208
- await agent.methods.firstTouchSubscriptionsUpdate(agent, { subscription_id: "uuid...", updates: { is_active: false } });
209
- await agent.methods.firstTouchSubscriptionsDelete(agent, { subscription_id: "uuid..." });
210
- ```
211
-
212
- ULTRA only for subscriptions โ€” up to 10 active per user.
213
-
214
- > **Don't poll โ€” push.** Median lead time before the second KOL is 12 seconds. WebSocket channel: `kol:first_touches` (PRO+).
215
-
216
- ### Price Alerts *(new in 1.9)*
217
-
218
- CRUD for token dip/recovery price alerts. Fires when a token's market cap crosses your threshold. PRO=5 rules, ULTRA=25.
219
-
220
- ```ts
221
- const { alert, webhook_secret } = await agent.methods.priceAlertsCreate(agent, {
222
- name: "SOL dip buy",
223
- token_mint: "So11111111111111111111111111111111111111112",
224
- condition: "below",
225
- threshold_mc_usd: 5_000_000_000,
226
- cooldown_min: 120,
227
- delivery_mode: "both",
228
- webhook_url: "https://you.com/hooks/price",
229
- });
230
- // store webhook_secret โ€” shown ONCE
231
-
232
- await agent.methods.priceAlertsList(agent);
233
- await agent.methods.priceAlertsGet(agent, { alert_id: "uuid..." });
234
- await agent.methods.priceAlertsUpdate(agent, { alert_id: "uuid...", updates: { is_active: false } });
235
- await agent.methods.priceAlertsDelete(agent, { alert_id: "uuid..." });
236
- ```
237
-
238
- Also exposed as `MADEONSOL_PRICE_ALERTS_LIST_ACTION` ("my price alerts") and `MADEONSOL_PRICE_ALERTS_CREATE_ACTION` ("alert me when token dips below").
239
-
240
- ### Scout Leaderboard & KOL Consensus *(new in 1.9)*
241
-
242
- | Method / Action | Description |
243
- |---|---|
244
- | `agent.methods.scoutLeaderboard(agent, params)` | Top scout-tier KOLs ranked by first-touch follow-on rate, win rate, and ROI (PRO+) |
245
- | `agent.methods.kolConsensus(agent, params)` | Tokens with the strongest KOL agreement signal (PRO+) |
246
- | `agent.methods.peakHistory(agent, { mint })` | Historical peak-density windows for a token (PRO+) |
247
- | `agent.methods.coordinationHistory(agent, params)` | Global coordination event log (PRO+) |
248
-
249
- ```ts
250
- const { leaderboard } = await agent.methods.scoutLeaderboard(agent, { period: "30d", limit: 25 });
251
- const { tokens } = await agent.methods.kolConsensus(agent, { min_kols: 5, period: "24h" });
252
- ```
253
-
254
- Also exposed as `MADEONSOL_SCOUT_LEADERBOARD_ACTION` and `MADEONSOL_KOL_CONSENSUS_ACTION`.
255
-
256
- ### Wallet Derived Stats *(new in 1.9)*
257
-
258
- `walletStats` now returns a `stats` object with derived fields: `win_rate` (0-1), `roi`, `verdict` ("strong" | "profitable" | "neutral" | "losing"), and `biggest_miss` (token with the highest post-exit gain the wallet missed).
259
-
260
- ```ts
261
- const { stats } = await agent.methods.walletStats(agent, { address: "WALLET_ADDRESS" });
262
- // stats.win_rate, stats.roi, stats.verdict, stats.biggest_miss
263
- ```
264
-
265
- ### Rate-limit headers
266
-
267
- Every successful request populates a module-level `lastRateLimit` (limit / remaining / reset / requestId):
268
-
269
- ```ts
270
- import { lastRateLimit } from "solana-agent-kit-plugin-madeonsol";
271
- await agent.methods.kolFeed(agent, { limit: 10 });
272
- console.log(lastRateLimit); // { limit: "10000", remaining: "9999", reset: "...", requestId: "..." }
273
- ```
274
-
275
- ## Tiers
276
-
277
- | Tier | Price | Wallets tracked | Requests/day |
278
- |------|-------|-----------------|--------------|
279
- | BASIC (free) | $0 | 10 | 200 |
280
- | PRO | $49/mo ($490/yr) | 50 | 10,000 |
281
- | ULTRA | $149/mo ($1,490/yr) | 100 + WS events | 100,000 |
282
-
283
- Free tier returns the full REST response shape on every endpoint โ€” real wallets, TX signatures, full precision. Paid tiers unlock webhooks, WebSockets, rule engines, and ULTRA-only data depth. Get a key at [madeonsol.com/pricing](https://madeonsol.com/pricing).
284
-
285
- ## Also Available
286
-
287
- | Platform | Package |
288
- |---|---|
289
- | TypeScript SDK | [`madeonsol`](https://www.npmjs.com/package/madeonsol) on npm |
290
- | Rust SDK | [`madeonsol`](https://crates.io/crates/madeonsol) on crates.io |
291
- | Python (LangChain, CrewAI) | [`madeonsol-x402`](https://pypi.org/project/madeonsol-x402/) on PyPI |
292
- | MCP Server (Claude, Cursor) | [`mcp-server-madeonsol`](https://www.npmjs.com/package/mcp-server-madeonsol) ยท [Smithery](https://smithery.ai/servers/madeonsol/solana-kol-intelligence) ยท [Glama](https://glama.ai/mcp/servers/LamboPoewert/mcp-server-madeonsol) |
293
- | ElizaOS | [`@madeonsol/plugin-madeonsol`](https://www.npmjs.com/package/@madeonsol/plugin-madeonsol) |
294
-
295
- ## License
296
-
297
- MIT
1
+ # solana-agent-kit-plugin-madeonsol
2
+
3
+ [![npm version](https://img.shields.io/npm/v/solana-agent-kit-plugin-madeonsol?style=flat-square)](https://www.npmjs.com/package/solana-agent-kit-plugin-madeonsol)
4
+ [![npm downloads](https://img.shields.io/npm/dm/solana-agent-kit-plugin-madeonsol?style=flat-square)](https://www.npmjs.com/package/solana-agent-kit-plugin-madeonsol)
5
+ [![SAK](https://img.shields.io/badge/Solana%20Agent%20Kit-plugin-blueviolet?style=flat-square)](https://github.com/sendaifun/solana-agent-kit)
6
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue?style=flat-square)](LICENSE)
7
+
8
+ > ๐Ÿ“š **[API docs](https://madeonsol.com/api-docs)** ยท ๐Ÿ’ฐ **[Free API key](https://madeonsol.com/pricing)** ยท ๐Ÿค– **[Solana Agent Kit](https://github.com/sendaifun/solana-agent-kit)**
9
+
10
+ [Solana Agent Kit](https://github.com/sendaifun/solana-agent-kit) plugin for [MadeOnSol](https://madeonsol.com) โ€” Solana KOL intelligence, deployer analytics, and wallet tracking.
11
+
12
+ > Real-time Solana trading intelligence: track 1,069 KOL wallets with <3s latency, score 23,000+ Pump.fun deployers, surface deshred deploy signals ~500ms before on-chain confirmation, detect multi-KOL coordination, and stream every DEX trade. Free tier: 200 requests/day, every endpoint โ€” no signup payment. Get a key at [madeonsol.com/pricing](https://madeonsol.com/pricing).
13
+
14
+ > **New in 1.15.0** โ€” **Batch risk scoring + WebSocket session control.** New tool `tokenRiskBatch()` + action `MADEONSOL_TOKEN_RISK_BATCH_ACTION` โ€” bulk 0โ€“100 rug-risk/safety scoring for 1โ€“50 mints in one call (`{ tokens, count }`, same per-mint shape as `tokenRisk()` plus an `as_of` ISO string; untracked mints come back as `{ mint, error: "not_tracked" }` without failing the batch; counts as one request). New tools `streamSessions()` / `streamSessionKill({ id })` + actions `MADEONSOL_STREAM_SESSIONS_ACTION` / `MADEONSOL_STREAM_SESSION_KILL_ACTION` โ€” list your live ws-streaming/dex-stream sessions (`id`, `service`, `tier`, `channels[]`, `connected_at`, `remote_ip`, `messages_sent`) and evict one by id to free a connection slot. PRO/ULTRA only.
15
+ >
16
+ > **New in 1.14.0** โ€” **Almost-bonded discovery + trending sorts.** New tool `almostBonded()` + action `MADEONSOL_ALMOST_BONDED_ACTION` โ€” pre-bond pump.fun tokens near graduation, ranked by velocity (ฮ”progress/min): "95% and accelerating" beats "92% stalled". Each token carries `progress_pct`, `velocity_pct_per_min`, `eta_minutes`, `stalled`, `real_sol_reserves`, `market_cap_usd`, `liquidity_usd`, `authorities_revoked`, `deployer_tier`, and `age_minutes`. Params: `min_progress`, `max_progress`, `min_velocity_pct_per_min`, `max_age_minutes`, `deployer_tier`, `authority_revoked`, `min_liq`, `sort` (velocity_desc / progress_desc / eta_asc), `limit`. PRO/ULTRA only. Plus `tokensList({ sort })` gains four momentum sorts โ€” `mc_change_5m_desc`, `mc_change_1h_desc`, `volume_1h_desc`, and `trending` (composite recent-volume ร— positive-momentum rank).
17
+ >
18
+ > **New in 1.13.0** โ€” **Token net flow.** New tool `tokenFlow()` + action `MADEONSOL_TOKEN_FLOW_ACTION` โ€” net buy/sell flow over a rolling window (`1h` default, or `24h`): `unique_wallets`, `unique_buyers`, `unique_sellers`, `buy_count`, `sell_count`, `total_trades`, `buy_sol`, `sell_sol`, `net_sol`, `trades_per_wallet`. PRO/ULTRA only. Deployer alerts now also surface `deployer_sol_balance` โ€” the deployer wallet's SOL balance at alert time (`null` for historical rows).
19
+ >
20
+ > **New in 1.12.0** โ€” **Token OHLCV candles.** New tool `tokenCandles()` + action `MADEONSOL_TOKEN_CANDLES_ACTION` โ€” historical price candles (1m/5m/15m/1h/4h/1d) aggregated from the on-chain trade firehose. Each candle has `t/open/high/low/close/volume_usd/trades/market_cap_usd`. PRO returns OHLCV for the last 30 days; ULTRA adds buy/sell volume + count splits, net flow, MEV volume, open/close liquidity, high/low MC, and full history. PRO/ULTRA only.
21
+ >
22
+ > **New in 1.11.0** โ€” **Token risk score.** New tool `tokenRisk()` + action `MADEONSOL_TOKEN_RISK_ACTION` โ€” a transparent 0โ€“100 rug-risk/safety score (higher = riskier) with a `band` (safe/caution/danger), an explainable `factors[]` array, and the raw `inputs` (mint/freeze authority, liquidity, liq-to-MC ratio, transfer fee, launch cohort, deployer bond rate, KOL signal, blacklist). PRO/ULTRA only.
23
+
24
+ > **New in 1.10.0** โ€” `tokensList()` gains three new filter params: `min_liq_mc_ratio`, `max_liq_mc_ratio`, and `deployer_tier`. Response items now include `liquidity_to_mc_ratio` and `deployer_tier`. KOL leaderboard entries now include `median_hold_minutes_30d` and `percentile_early_entry_30d`. Token endpoints now return `liquidity_to_mc_ratio`, `launch_cohort_sol`, and `launch_cohort_size`.
25
+
26
+ > **New in 1.9.3** โ€” Deployer alerts now surface `runner_rate` + `labeled_tokens` (fraction of a deployer's labeled tokens that ran vs dumped, gate on `labeled_tokens` โ‰ฅ3) and `avg_time_to_bond_minutes`.
27
+
28
+ > **New in 1.9.2** โ€” **Dump-cluster detection.** Buyer-quality breakdown now includes `dump_cluster_count` (3+ dump-cluster wallets in the first-20 โ†’ 94% historical dump rate vs 61% base) and `recycled_early_buyer_count`, on all tiers. The API also pushes every pump.fun graduation in real time (`token:graduations` WS channel).
29
+
30
+ > **New in 1.9** โ€” **Price alerts, scout leaderboard, coordination history.** `agent.methods.priceAlertsCreate()` (PRO=5, ULTRA=25). `agent.methods.scoutLeaderboard()`, `kolConsensus()`, `peakHistory()`, `coordinationHistory()`. `walletStats` now returns `derived`: win_rate, roi, verdict, biggest_miss.
31
+ >
32
+ > **New in 1.8** โ€” **Universal Wallet API.** `agent.methods.walletStats()`, `walletPnl()`, `walletPositions()`, `walletTrades()` โ€” FIFO cost-basis PnL for any wallet. PRO+. Cache hits free.
33
+ >
34
+ > **New in 1.7.0** *(2026-05-12)* โ€” **Account introspection + filtered token directory.** Two new actions: `meAction` (`GET /me`) returns your tier, daily/burst quota state, remaining requests, and per-feature usage so the agent can self-throttle; `tokensListAction` (`GET /tokens`, PRO+) exposes the full filtered/sortable token directory with MC band, liquidity floor, recent-activity window, primary DEX, authority flags, computed 1h volume floor, MEV-share ceiling, and MC change deltas โ€” defaults to `min_liq=2000` to skip dust. Token responses now carry velocity / MEV-share fields. `/token/{mint}` returns structured 400 errors (`code`, `reason`, `example`, `docs`) instead of bare 400s. Deprecated `avg_entry_mc_usd` removed from leaderboards.
35
+
36
+ ## Quick start (10 seconds)
37
+
38
+ ```bash
39
+ npm install solana-agent-kit-plugin-madeonsol
40
+ ```
41
+
42
+ ```ts
43
+ import { SolanaAgentKit } from "solana-agent-kit";
44
+ import MadeOnSolPlugin from "solana-agent-kit-plugin-madeonsol";
45
+ const agent = new SolanaAgentKit(privateKey, rpcUrl, { MADEONSOL_API_KEY: "msk_..." }); // free tier at https://madeonsol.com/pricing
46
+ agent.use(MadeOnSolPlugin);
47
+ const trades = await agent.methods.kolFeed(agent, { limit: 5, action: "buy" });
48
+ ```
49
+
50
+ ## Authentication
51
+
52
+ Two options (in priority order):
53
+
54
+ | Method | Config key | Best for |
55
+ |---|---|---|
56
+ | **MadeOnSol API key** (recommended) | `MADEONSOL_API_KEY` | Developers โ€” [get a free key](https://madeonsol.com/pricing) |
57
+ | x402 micropayments | `SVM_PRIVATE_KEY` | AI agents with Solana wallets |
58
+
59
+ > **v1.0 breaking change:** RapidAPI auth (`RAPIDAPI_KEY`) has been removed. The MadeOnSol RapidAPI marketplace was retired on 2026-04-19. Get a free `msk_` key at [madeonsol.com/pricing](https://madeonsol.com/pricing).
60
+
61
+ ## Install
62
+
63
+ ```bash
64
+ npm install solana-agent-kit-plugin-madeonsol
65
+ ```
66
+
67
+ > x402 peer deps (`@x402/fetch @x402/svm @x402/core @solana/kit @scure/base`) are only needed when using `SVM_PRIVATE_KEY`.
68
+
69
+ ## Usage
70
+
71
+ ```typescript
72
+ import { SolanaAgentKit } from "solana-agent-kit";
73
+ import MadeOnSolPlugin from "solana-agent-kit-plugin-madeonsol";
74
+
75
+ const agent = new SolanaAgentKit(privateKey, rpcUrl, {
76
+ MADEONSOL_API_KEY: "msk_your_api_key_here",
77
+ });
78
+
79
+ agent.use(MadeOnSolPlugin);
80
+
81
+ // Use via methods
82
+ const trades = await agent.methods.kolFeed(agent, { limit: 10, action: "buy" });
83
+
84
+ // Wallet tracker
85
+ const watchlist = await agent.methods.walletTrackerWatchlist(agent);
86
+ await agent.methods.walletTrackerAdd(agent, { wallet_address: "WALLET", label: "whale" });
87
+ const events = await agent.methods.walletTrackerTrades(agent, { limit: 50 });
88
+
89
+ // Or let the LLM trigger actions via natural language
90
+ // "What are KOLs buying right now?" โ†’ MADEONSOL_KOL_FEED_ACTION
91
+ ```
92
+
93
+ ## Actions
94
+
95
+ | Action | Triggers on |
96
+ |---|---|
97
+ | `MADEONSOL_KOL_FEED_ACTION` | "kol trades", "what are kols buying" |
98
+ | `MADEONSOL_KOL_COORDINATION_ACTION` | "kol convergence", "tokens kols accumulating" |
99
+ | `MADEONSOL_KOL_LEADERBOARD_ACTION` | "top kols", "kol rankings" โ€” periods: today, 7d, 30d, 90d, 180d |
100
+ | `MADEONSOL_DEPLOYER_ALERTS_ACTION` | "deployer alerts", "pump fun launches" |
101
+ | `MADEONSOL_KOL_PNL_ACTION` | "kol pnl", "kol profit", "wallet pnl" |
102
+ | `MADEONSOL_KOL_TRENDING_TOKENS_ACTION` | "kol trending tokens", "kol volume" |
103
+ | `MADEONSOL_KOL_FIRST_TOUCHES_ACTION` | "kol first touch", "first kol buyer", "scout signal" โ€” backtested first-mover signal (new in 1.3) |
104
+ | `MADEONSOL_WALLET_TRACKER_WATCHLIST_ACTION` | "wallet watchlist", "tracked wallets" |
105
+ | `MADEONSOL_WALLET_TRACKER_ADD_ACTION` | "track wallet", "watch wallet", "add to watchlist" |
106
+ | `MADEONSOL_WALLET_TRACKER_REMOVE_ACTION` | "untrack wallet", "remove from watchlist" |
107
+ | `MADEONSOL_WALLET_TRACKER_TRADES_ACTION` | "wallet tracker trades", "watchlist activity" |
108
+ | `MADEONSOL_WALLET_TRACKER_SUMMARY_ACTION` | "wallet tracker summary", "tracked wallet stats" |
109
+ | `MADEONSOL_ME_ACTION` | "my api account", "api quota", "remaining requests" โ€” tier + quota introspection (new in 1.7) |
110
+ | `MADEONSOL_TOKENS_LIST_ACTION` | "filter tokens", "tokens by market cap", "scan tokens" โ€” filtered/sortable token directory + momentum/trending sorts, PRO+ (new in 1.7) |
111
+ | `MADEONSOL_ALMOST_BONDED_ACTION` | **New 1.14** ยท "almost bonded", "about to graduate", "near graduation" โ€” pre-bond pump.fun tokens ranked by velocity (ฮ”progress/min): progress, ETA, stalled, deployer tier (PRO+) |
112
+ | `MADEONSOL_WALLET_STATS_ACTION` | **New 1.8** ยท "wallet stats", "wallet info", "check wallet" โ€” aggregate 90d stats + cross-product flags (KOL/alpha/deployer) for any Solana wallet (PRO+) |
113
+ | `MADEONSOL_WALLET_PNL_ACTION` | **New 1.8** ยท "wallet pnl", "wallet profit", "wallet performance" โ€” FIFO cost-basis PnL with profit factor, drawdown, daily curve, closed + open positions (PRO+) |
114
+ | `MADEONSOL_WALLET_POSITIONS_ACTION` | **New 1.8** ยท "wallet positions", "wallet bags", "open positions" โ€” open lots with live unrealized SOL (PRO+) |
115
+ | `MADEONSOL_WALLET_TRADES_ACTION` | **New 1.8** ยท "wallet trades", "wallet history" โ€” cursor-paginated raw trades with filters (PRO+) |
116
+ | `MADEONSOL_TOKEN_FLOW_ACTION` | **New 1.13** ยท "token flow", "net flow", "buy/sell pressure" โ€” net buy/sell flow over a 1h/24h window (PRO+) |
117
+ | `MADEONSOL_TOKEN_RISK_BATCH_ACTION` | **New 1.15** ยท "batch token risk", "bulk rug risk", "score many tokens" โ€” rug-risk scoring for 1โ€“50 mints in one call; untracked mints don't fail the batch (PRO+) |
118
+ | `MADEONSOL_STREAM_SESSIONS_ACTION` | **New 1.15** ยท "list stream sessions", "live websocket sessions", "active ws sessions" โ€” your live ws-streaming/dex-stream sessions (PRO+) |
119
+ | `MADEONSOL_STREAM_SESSION_KILL_ACTION` | **New 1.15** ยท "kill stream session", "evict session", "free a connection slot" โ€” evict a live streaming session by id (PRO+) |
120
+
121
+ ## Additional methods (v1.0+)
122
+
123
+ These are exposed via `agent.methods.*` (no LLM action wrappers โ€” call directly):
124
+
125
+ ### Alpha Wallet Intelligence
126
+
127
+ Scored from 1M+ early-buyer records (wallets seen in the first 20 buyers of Pump.fun tokens).
128
+
129
+ ```ts
130
+ await agent.methods.alphaLeaderboard(agent, { limit: 100 }); // Free/Pro=100, ULTRA=500 + bot signals
131
+ await agent.methods.alphaWallet(agent, { wallet: "WALLET" }); // ULTRA only โ€” full breakdown + bot signals
132
+ await agent.methods.alphaLinked(agent, { wallet: "WALLET" }); // ULTRA only โ€” co-bought 3+ tokens within 2s
133
+ ```
134
+
135
+ ### Token Quality
136
+
137
+ ```ts
138
+ await agent.methods.tokenCapTable(agent, { mint: "MINT" }); // PRO=10, ULTRA=20 first non-deployer buyers
139
+ await agent.methods.tokenBuyerQuality(agent, { mint: "MINT" }); // 0โ€“100 buyer-quality score (5-min cached)
140
+ await agent.methods.tokenRisk(agent, { mint: "MINT" }); // PRO+ 0โ€“100 rug-risk/safety score + band + factors
141
+ await agent.methods.tokenRiskBatch(agent, { mints: ["MINT_A", "MINT_B"] }); // PRO+ bulk rug-risk for 1โ€“50 mints โ†’ { tokens, count }; one request
142
+ await agent.methods.tokenCandles(agent, { mint: "MINT", tf: "1h" }); // PRO+ OHLCV candles (1mโ€“1d); ULTRA=+net flow, liquidity, full history
143
+ await agent.methods.tokenFlow(agent, { mint: "MINT", window: "24h" }); // PRO+ net buy/sell flow (1h/24h): unique wallets, buy/sell/net SOL, trades-per-wallet
144
+ await agent.methods.almostBonded(agent, { min_progress: 90, sort: "eta_asc" }); // PRO+ pre-bond pump.fun tokens by velocity: progress, ETA, stalled, deployer tier
145
+ ```
146
+
147
+ > Deployer alerts (`MADEONSOL_DEPLOYER_ALERTS_ACTION` / `agent.methods.deployerAlerts()`) now include `deployer_sol_balance` โ€” the deployer wallet's SOL balance at alert time (`null` for historical rows).
148
+
149
+ ### Copy-Trade Rules (PRO/ULTRA)
150
+
151
+ Server-side rules that fire signals when a watched source wallet trades. Delivered via webhook (HMAC-signed) and/or WebSocket.
152
+
153
+ ```ts
154
+ await agent.methods.copyTradeList(agent);
155
+ await agent.methods.copyTradeCreate(agent, {
156
+ name: "Track Whales",
157
+ source_wallets: ["WALLET_A", "WALLET_B"], // 1-50 wallets
158
+ sizing_mode: "fixed",
159
+ sizing_amount: 0.5, // required
160
+ only_action: "buy",
161
+ delivery_mode: "webhook",
162
+ webhook_url: "https://you.com/hook",
163
+ });
164
+ await agent.methods.copyTradeSignals(agent, { limit: 50 }); // up to 7 days
165
+ ```
166
+
167
+ ### Streaming Sessions *(new in 1.15)*
168
+
169
+ List and kill your live WebSocket streaming sessions (ws-streaming + dex-stream). Handy when a ghost socket is holding a connection slot. PRO/ULTRA only.
170
+
171
+ ```ts
172
+ const { sessions, count } = await agent.methods.streamSessions(agent); // id, service, tier, channels[], connected_at, remote_ip, messages_sent
173
+ await agent.methods.streamSessionKill(agent, { id: "123" }); // โ†’ { evicted: true, id }
174
+ ```
175
+
176
+ Also exposed as `MADEONSOL_STREAM_SESSIONS_ACTION` and `MADEONSOL_STREAM_SESSION_KILL_ACTION`.
177
+
178
+ ### KOL Coordination Alerts (PRO/ULTRA โ€” v1.1 push signals)
179
+
180
+ Real-time push alerts when a KOL cluster co-buys the same token. Fires within ~1s of the triggering trade (pg_notify push, not polling). Delivered via WebSocket (`kol:coordination` channel, user-scoped) and/or HMAC-signed webhook. PRO=5 rules, ULTRA=20.
181
+
182
+ ```ts
183
+ const res = await agent.methods.coordinationAlertsCreate(agent, {
184
+ name: "fresh pump cluster",
185
+ min_kols: 4,
186
+ window_minutes: 15, // peak-density window (1-60)
187
+ min_score: 70, // 0-100 composite score cutoff
188
+ include_majors: false, // filter WIF/BONK/POPCAT
189
+ cooldown_min: 60,
190
+ score_jump_break: 10,
191
+ delivery_mode: "both",
192
+ webhook_url: "https://you.com/hooks/coord",
193
+ });
194
+ // store res.webhook_secret โ€” shown ONCE
195
+
196
+ await agent.methods.coordinationAlertsList(agent);
197
+ await agent.methods.coordinationAlertsGet(agent, { rule_id: "uuid..." });
198
+ await agent.methods.coordinationAlertsUpdate(agent, { rule_id: "uuid...", updates: { is_active: false } });
199
+ await agent.methods.coordinationAlertsDelete(agent, { rule_id: "uuid..." });
200
+ ```
201
+
202
+ The v1.1 `kolCoordination()` response also includes `peak_kols`, `peak_buys`, `exited_count`, and `coordination_score` (0-100). Pass `{ min_score, window_minutes, include_majors }` to filter.
203
+
204
+ ### KOL First-Touch Signal *(new in 1.3)*
205
+
206
+ Every "first KOL buy on a token mint" event โ€” when a tracked KOL is the first of the cohort to touch a token. Filterable by **scout tier** (S/A/B/C from `mv_kol_scout_score`), KOL winrate, token age, mint suffix.
207
+
208
+ **Backtest:** S-tier scouts attract โ‰ฅ3 follow-on KOLs within 4h ~50% of the time vs ~14% baseline (38d / 491k buys / 72,549 events). Public leaderboard at [madeonsol.com/kol/scouts](https://madeonsol.com/kol/scouts).
209
+
210
+ ```ts
211
+ // REST query โ€” also exposed as MADEONSOL_KOL_FIRST_TOUCHES_ACTION for the agent
212
+ const { events } = await agent.methods.kolFirstTouches(agent, {
213
+ preset: "scout",
214
+ min_scout_tier: "S",
215
+ limit: 20,
216
+ });
217
+
218
+ // Webhook subscription (Ultra only) โ€” push delivery, HMAC-signed
219
+ const res = await agent.methods.firstTouchSubscriptionsCreate(agent, {
220
+ name: "S-tier scouts on pump tokens",
221
+ filters: { min_scout_tier: "S", mint_suffix: "pump" },
222
+ delivery_mode: "webhook",
223
+ webhook_url: "https://you.com/hooks/scout",
224
+ });
225
+ // store res.webhook_secret โ€” shown ONCE
226
+
227
+ await agent.methods.firstTouchSubscriptionsList(agent);
228
+ await agent.methods.firstTouchSubscriptionsGet(agent, { subscription_id: "uuid..." });
229
+ await agent.methods.firstTouchSubscriptionsUpdate(agent, { subscription_id: "uuid...", updates: { is_active: false } });
230
+ await agent.methods.firstTouchSubscriptionsDelete(agent, { subscription_id: "uuid..." });
231
+ ```
232
+
233
+ ULTRA only for subscriptions โ€” up to 10 active per user.
234
+
235
+ > **Don't poll โ€” push.** Median lead time before the second KOL is 12 seconds. WebSocket channel: `kol:first_touches` (PRO+).
236
+
237
+ ### Price Alerts *(new in 1.9)*
238
+
239
+ CRUD for token dip/recovery price alerts. Fires when a token's market cap crosses your threshold. PRO=5 rules, ULTRA=25.
240
+
241
+ ```ts
242
+ const { alert, webhook_secret } = await agent.methods.priceAlertsCreate(agent, {
243
+ name: "SOL dip buy",
244
+ token_mint: "So11111111111111111111111111111111111111112",
245
+ condition: "below",
246
+ threshold_mc_usd: 5_000_000_000,
247
+ cooldown_min: 120,
248
+ delivery_mode: "both",
249
+ webhook_url: "https://you.com/hooks/price",
250
+ });
251
+ // store webhook_secret โ€” shown ONCE
252
+
253
+ await agent.methods.priceAlertsList(agent);
254
+ await agent.methods.priceAlertsGet(agent, { alert_id: "uuid..." });
255
+ await agent.methods.priceAlertsUpdate(agent, { alert_id: "uuid...", updates: { is_active: false } });
256
+ await agent.methods.priceAlertsDelete(agent, { alert_id: "uuid..." });
257
+ ```
258
+
259
+ Also exposed as `MADEONSOL_PRICE_ALERTS_LIST_ACTION` ("my price alerts") and `MADEONSOL_PRICE_ALERTS_CREATE_ACTION` ("alert me when token dips below").
260
+
261
+ ### Scout Leaderboard & KOL Consensus *(new in 1.9)*
262
+
263
+ | Method / Action | Description |
264
+ |---|---|
265
+ | `agent.methods.scoutLeaderboard(agent, params)` | Top scout-tier KOLs ranked by first-touch follow-on rate, win rate, and ROI (PRO+) |
266
+ | `agent.methods.kolConsensus(agent, params)` | Tokens with the strongest KOL agreement signal (PRO+) |
267
+ | `agent.methods.peakHistory(agent, { mint })` | Historical peak-density windows for a token (PRO+) |
268
+ | `agent.methods.coordinationHistory(agent, params)` | Global coordination event log (PRO+) |
269
+
270
+ ```ts
271
+ const { leaderboard } = await agent.methods.scoutLeaderboard(agent, { period: "30d", limit: 25 });
272
+ const { tokens } = await agent.methods.kolConsensus(agent, { min_kols: 5, period: "24h" });
273
+ ```
274
+
275
+ Also exposed as `MADEONSOL_SCOUT_LEADERBOARD_ACTION` and `MADEONSOL_KOL_CONSENSUS_ACTION`.
276
+
277
+ ### Wallet Derived Stats *(new in 1.9)*
278
+
279
+ `walletStats` now returns a `stats` object with derived fields: `win_rate` (0-1), `roi`, `verdict` ("strong" | "profitable" | "neutral" | "losing"), and `biggest_miss` (token with the highest post-exit gain the wallet missed).
280
+
281
+ ```ts
282
+ const { stats } = await agent.methods.walletStats(agent, { address: "WALLET_ADDRESS" });
283
+ // stats.win_rate, stats.roi, stats.verdict, stats.biggest_miss
284
+ ```
285
+
286
+ ### Rate-limit headers
287
+
288
+ Every successful request populates a module-level `lastRateLimit` (limit / remaining / reset / requestId):
289
+
290
+ ```ts
291
+ import { lastRateLimit } from "solana-agent-kit-plugin-madeonsol";
292
+ await agent.methods.kolFeed(agent, { limit: 10 });
293
+ console.log(lastRateLimit); // { limit: "10000", remaining: "9999", reset: "...", requestId: "..." }
294
+ ```
295
+
296
+ ## Tiers
297
+
298
+ | Tier | Price | Wallets tracked | Requests/day |
299
+ |------|-------|-----------------|--------------|
300
+ | BASIC (free) | $0 | 10 | 200 |
301
+ | PRO | โ‚ฌ43/mo (โ‚ฌ430/yr) โ‰ˆ $49 | 50 | 10,000 |
302
+ | ULTRA | โ‚ฌ131/mo (โ‚ฌ1310/yr) โ‰ˆ $149 | 100 + WS events | 100,000 |
303
+
304
+ Free tier returns the full REST response shape on every endpoint โ€” real wallets, TX signatures, full precision. Paid tiers unlock webhooks, WebSockets, rule engines, and ULTRA-only data depth. Get a key at [madeonsol.com/pricing](https://madeonsol.com/pricing).
305
+
306
+ ## Also Available
307
+
308
+ | Platform | Package |
309
+ |---|---|
310
+ | TypeScript SDK | [`madeonsol`](https://www.npmjs.com/package/madeonsol) on npm |
311
+ | Rust SDK | [`madeonsol`](https://crates.io/crates/madeonsol) on crates.io |
312
+ | Python (LangChain, CrewAI) | [`madeonsol-x402`](https://pypi.org/project/madeonsol-x402/) on PyPI |
313
+ | MCP Server (Claude, Cursor) | [`mcp-server-madeonsol`](https://www.npmjs.com/package/mcp-server-madeonsol) ยท [Smithery](https://smithery.ai/servers/madeonsol/solana-kol-intelligence) ยท [Glama](https://glama.ai/mcp/servers/LamboPoewert/mcp-server-madeonsol) |
314
+ | ElizaOS | [`@madeonsol/plugin-madeonsol`](https://www.npmjs.com/package/@madeonsol/plugin-madeonsol) |
315
+
316
+ ## License
317
+
318
+ MIT