solana-agent-kit-plugin-madeonsol 1.8.1 → 1.9.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
@@ -188,6 +188,55 @@ ULTRA only for subscriptions — up to 10 active per user.
188
188
 
189
189
  > **Don't poll — push.** Median lead time before the second KOL is 12 seconds. WebSocket channel: `kol:first_touches` (PRO+).
190
190
 
191
+ ### Price Alerts *(new in 1.9)*
192
+
193
+ CRUD for token dip/recovery price alerts. Fires when a token's market cap crosses your threshold. PRO=5 rules, ULTRA=25.
194
+
195
+ ```ts
196
+ const { alert, webhook_secret } = await agent.methods.priceAlertsCreate(agent, {
197
+ name: "SOL dip buy",
198
+ token_mint: "So11111111111111111111111111111111111111112",
199
+ condition: "below",
200
+ threshold_mc_usd: 5_000_000_000,
201
+ cooldown_min: 120,
202
+ delivery_mode: "both",
203
+ webhook_url: "https://you.com/hooks/price",
204
+ });
205
+ // store webhook_secret — shown ONCE
206
+
207
+ await agent.methods.priceAlertsList(agent);
208
+ await agent.methods.priceAlertsGet(agent, { alert_id: "uuid..." });
209
+ await agent.methods.priceAlertsUpdate(agent, { alert_id: "uuid...", updates: { is_active: false } });
210
+ await agent.methods.priceAlertsDelete(agent, { alert_id: "uuid..." });
211
+ ```
212
+
213
+ Also exposed as `MADEONSOL_PRICE_ALERTS_LIST_ACTION` ("my price alerts") and `MADEONSOL_PRICE_ALERTS_CREATE_ACTION` ("alert me when token dips below").
214
+
215
+ ### Scout Leaderboard & KOL Consensus *(new in 1.9)*
216
+
217
+ | Method / Action | Description |
218
+ |---|---|
219
+ | `agent.methods.scoutLeaderboard(agent, params)` | Top scout-tier KOLs ranked by first-touch follow-on rate, win rate, and ROI (PRO+) |
220
+ | `agent.methods.kolConsensus(agent, params)` | Tokens with the strongest KOL agreement signal (PRO+) |
221
+ | `agent.methods.peakHistory(agent, { mint })` | Historical peak-density windows for a token (PRO+) |
222
+ | `agent.methods.coordinationHistory(agent, params)` | Global coordination event log (PRO+) |
223
+
224
+ ```ts
225
+ const { leaderboard } = await agent.methods.scoutLeaderboard(agent, { period: "30d", limit: 25 });
226
+ const { tokens } = await agent.methods.kolConsensus(agent, { min_kols: 5, period: "24h" });
227
+ ```
228
+
229
+ Also exposed as `MADEONSOL_SCOUT_LEADERBOARD_ACTION` and `MADEONSOL_KOL_CONSENSUS_ACTION`.
230
+
231
+ ### Wallet Derived Stats *(new in 1.9)*
232
+
233
+ `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).
234
+
235
+ ```ts
236
+ const { stats } = await agent.methods.walletStats(agent, { address: "WALLET_ADDRESS" });
237
+ // stats.win_rate, stats.roi, stats.verdict, stats.biggest_miss
238
+ ```
239
+
191
240
  ### Rate-limit headers
192
241
 
193
242
  Every successful request populates a module-level `lastRateLimit` (limit / remaining / reset / requestId):
package/dist/index.d.ts CHANGED
@@ -11,7 +11,7 @@ import { kolAlertsRecentAction } from "./actions/kolAlertsRecent.js";
11
11
  import { kolFirstTouchesAction } from "./actions/kolFirstTouches.js";
12
12
  import { meAction } from "./actions/me.js";
13
13
  import { tokensListAction } from "./actions/tokensList.js";
14
- import { kolFeed, kolCoordination, kolLeaderboard, deployerAlerts, kolPnl, kolTrendingTokens, kolTokenEntryOrder, kolCompare, kolAlertsRecent, createWebhook, listWebhooks, deleteWebhook, testWebhook, getStreamToken, walletTrackerWatchlist, walletTrackerAdd, walletTrackerRemove, walletTrackerTrades, walletTrackerSummary, alphaLeaderboard, alphaWallet, alphaLinked, tokenCapTable, tokenBuyerQuality, copyTradeList, copyTradeCreate, copyTradeGet, copyTradeUpdate, copyTradeDelete, copyTradeSignals, coordinationAlertsList, coordinationAlertsCreate, coordinationAlertsGet, coordinationAlertsUpdate, coordinationAlertsDelete, kolFirstTouches, firstTouchSubscriptionsList, firstTouchSubscriptionsCreate, firstTouchSubscriptionsGet, firstTouchSubscriptionsUpdate, firstTouchSubscriptionsDelete, walletStats, walletPnl, walletPositions, walletTrades, me, tokensList } from "./tools/index.js";
14
+ import { kolFeed, kolCoordination, kolLeaderboard, deployerAlerts, kolPnl, kolTrendingTokens, kolTokenEntryOrder, kolCompare, kolAlertsRecent, createWebhook, listWebhooks, deleteWebhook, testWebhook, getStreamToken, walletTrackerWatchlist, walletTrackerAdd, walletTrackerRemove, walletTrackerTrades, walletTrackerSummary, alphaLeaderboard, alphaWallet, alphaLinked, tokenCapTable, tokenBuyerQuality, copyTradeList, copyTradeCreate, copyTradeGet, copyTradeUpdate, copyTradeDelete, copyTradeSignals, coordinationAlertsList, coordinationAlertsCreate, coordinationAlertsGet, coordinationAlertsUpdate, coordinationAlertsDelete, kolFirstTouches, firstTouchSubscriptionsList, firstTouchSubscriptionsCreate, firstTouchSubscriptionsGet, firstTouchSubscriptionsUpdate, firstTouchSubscriptionsDelete, priceAlertsList, priceAlertsCreate, priceAlertsGet, priceAlertsUpdate, priceAlertsDelete, priceAlertsEvents, scoutLeaderboard, coordinationHistory, kolConsensus, peakHistory, walletStats, walletPnl, walletPositions, walletTrades, me, tokensList } from "./tools/index.js";
15
15
  import { walletStatsAction, walletPnlAction, walletPositionsAction, walletTradesAction } from "./actions/wallet.js";
16
16
  declare const MadeOnSolPlugin: {
17
17
  name: string;
@@ -57,6 +57,16 @@ declare const MadeOnSolPlugin: {
57
57
  firstTouchSubscriptionsGet: typeof firstTouchSubscriptionsGet;
58
58
  firstTouchSubscriptionsUpdate: typeof firstTouchSubscriptionsUpdate;
59
59
  firstTouchSubscriptionsDelete: typeof firstTouchSubscriptionsDelete;
60
+ priceAlertsList: typeof priceAlertsList;
61
+ priceAlertsCreate: typeof priceAlertsCreate;
62
+ priceAlertsGet: typeof priceAlertsGet;
63
+ priceAlertsUpdate: typeof priceAlertsUpdate;
64
+ priceAlertsDelete: typeof priceAlertsDelete;
65
+ priceAlertsEvents: typeof priceAlertsEvents;
66
+ scoutLeaderboard: typeof scoutLeaderboard;
67
+ coordinationHistory: typeof coordinationHistory;
68
+ kolConsensus: typeof kolConsensus;
69
+ peakHistory: typeof peakHistory;
60
70
  me: typeof me;
61
71
  tokensList: typeof tokensList;
62
72
  walletStats: typeof walletStats;
@@ -843,7 +853,7 @@ declare const MadeOnSolPlugin: {
843
853
  initialize(_agent: unknown): void;
844
854
  };
845
855
  export default MadeOnSolPlugin;
846
- export { kolFeed, kolCoordination, kolLeaderboard, deployerAlerts, kolPnl, kolTrendingTokens, kolTokenEntryOrder, kolCompare, kolAlertsRecent, createWebhook, listWebhooks, deleteWebhook, testWebhook, getStreamToken, walletTrackerWatchlist, walletTrackerAdd, walletTrackerRemove, walletTrackerTrades, walletTrackerSummary, alphaLeaderboard, alphaWallet, alphaLinked, tokenCapTable, tokenBuyerQuality, copyTradeList, copyTradeCreate, copyTradeGet, copyTradeUpdate, copyTradeDelete, copyTradeSignals, coordinationAlertsList, coordinationAlertsCreate, coordinationAlertsGet, coordinationAlertsUpdate, coordinationAlertsDelete, kolFirstTouches, firstTouchSubscriptionsList, firstTouchSubscriptionsCreate, firstTouchSubscriptionsGet, firstTouchSubscriptionsUpdate, firstTouchSubscriptionsDelete, walletStats, walletPnl, walletPositions, walletTrades, me, tokensList, };
856
+ export { kolFeed, kolCoordination, kolLeaderboard, deployerAlerts, kolPnl, kolTrendingTokens, kolTokenEntryOrder, kolCompare, kolAlertsRecent, createWebhook, listWebhooks, deleteWebhook, testWebhook, getStreamToken, walletTrackerWatchlist, walletTrackerAdd, walletTrackerRemove, walletTrackerTrades, walletTrackerSummary, alphaLeaderboard, alphaWallet, alphaLinked, tokenCapTable, tokenBuyerQuality, copyTradeList, copyTradeCreate, copyTradeGet, copyTradeUpdate, copyTradeDelete, copyTradeSignals, coordinationAlertsList, coordinationAlertsCreate, coordinationAlertsGet, coordinationAlertsUpdate, coordinationAlertsDelete, kolFirstTouches, firstTouchSubscriptionsList, firstTouchSubscriptionsCreate, firstTouchSubscriptionsGet, firstTouchSubscriptionsUpdate, firstTouchSubscriptionsDelete, priceAlertsList, priceAlertsCreate, priceAlertsGet, priceAlertsUpdate, priceAlertsDelete, priceAlertsEvents, scoutLeaderboard, coordinationHistory, kolConsensus, peakHistory, walletStats, walletPnl, walletPositions, walletTrades, me, tokensList, };
847
857
  export { kolFeedAction, kolCoordinationAction, kolLeaderboardAction, deployerAlertsAction, kolPnlAction, kolTrendingTokensAction, kolTokenEntryOrderAction, kolCompareAction, kolAlertsRecentAction, kolFirstTouchesAction };
848
858
  export { walletTrackerWatchlistAction, walletTrackerAddAction, walletTrackerRemoveAction, walletTrackerTradesAction, walletTrackerSummaryAction };
849
859
  export { walletStatsAction, walletPnlAction, walletPositionsAction, walletTradesAction };
package/dist/index.js CHANGED
@@ -11,7 +11,7 @@ import { kolAlertsRecentAction } from "./actions/kolAlertsRecent.js";
11
11
  import { kolFirstTouchesAction } from "./actions/kolFirstTouches.js";
12
12
  import { meAction } from "./actions/me.js";
13
13
  import { tokensListAction } from "./actions/tokensList.js";
14
- import { kolFeed, kolCoordination, kolLeaderboard, deployerAlerts, kolPnl, kolTrendingTokens, kolTokenEntryOrder, kolCompare, kolAlertsRecent, createWebhook, listWebhooks, deleteWebhook, testWebhook, getStreamToken, walletTrackerWatchlist, walletTrackerAdd, walletTrackerRemove, walletTrackerTrades, walletTrackerSummary, alphaLeaderboard, alphaWallet, alphaLinked, tokenCapTable, tokenBuyerQuality, copyTradeList, copyTradeCreate, copyTradeGet, copyTradeUpdate, copyTradeDelete, copyTradeSignals, coordinationAlertsList, coordinationAlertsCreate, coordinationAlertsGet, coordinationAlertsUpdate, coordinationAlertsDelete, kolFirstTouches, firstTouchSubscriptionsList, firstTouchSubscriptionsCreate, firstTouchSubscriptionsGet, firstTouchSubscriptionsUpdate, firstTouchSubscriptionsDelete, walletStats, walletPnl, walletPositions, walletTrades, me, tokensList, } from "./tools/index.js";
14
+ import { kolFeed, kolCoordination, kolLeaderboard, deployerAlerts, kolPnl, kolTrendingTokens, kolTokenEntryOrder, kolCompare, kolAlertsRecent, createWebhook, listWebhooks, deleteWebhook, testWebhook, getStreamToken, walletTrackerWatchlist, walletTrackerAdd, walletTrackerRemove, walletTrackerTrades, walletTrackerSummary, alphaLeaderboard, alphaWallet, alphaLinked, tokenCapTable, tokenBuyerQuality, copyTradeList, copyTradeCreate, copyTradeGet, copyTradeUpdate, copyTradeDelete, copyTradeSignals, coordinationAlertsList, coordinationAlertsCreate, coordinationAlertsGet, coordinationAlertsUpdate, coordinationAlertsDelete, kolFirstTouches, firstTouchSubscriptionsList, firstTouchSubscriptionsCreate, firstTouchSubscriptionsGet, firstTouchSubscriptionsUpdate, firstTouchSubscriptionsDelete, priceAlertsList, priceAlertsCreate, priceAlertsGet, priceAlertsUpdate, priceAlertsDelete, priceAlertsEvents, scoutLeaderboard, coordinationHistory, kolConsensus, peakHistory, walletStats, walletPnl, walletPositions, walletTrades, me, tokensList, } from "./tools/index.js";
15
15
  import { walletStatsAction, walletPnlAction, walletPositionsAction, walletTradesAction } from "./actions/wallet.js";
16
16
  const MadeOnSolPlugin = {
17
17
  name: "madeonsol",
@@ -57,6 +57,16 @@ const MadeOnSolPlugin = {
57
57
  firstTouchSubscriptionsGet,
58
58
  firstTouchSubscriptionsUpdate,
59
59
  firstTouchSubscriptionsDelete,
60
+ priceAlertsList,
61
+ priceAlertsCreate,
62
+ priceAlertsGet,
63
+ priceAlertsUpdate,
64
+ priceAlertsDelete,
65
+ priceAlertsEvents,
66
+ scoutLeaderboard,
67
+ coordinationHistory,
68
+ kolConsensus,
69
+ peakHistory,
60
70
  me,
61
71
  tokensList,
62
72
  walletStats,
@@ -92,7 +102,7 @@ const MadeOnSolPlugin = {
92
102
  },
93
103
  };
94
104
  export default MadeOnSolPlugin;
95
- export { kolFeed, kolCoordination, kolLeaderboard, deployerAlerts, kolPnl, kolTrendingTokens, kolTokenEntryOrder, kolCompare, kolAlertsRecent, createWebhook, listWebhooks, deleteWebhook, testWebhook, getStreamToken, walletTrackerWatchlist, walletTrackerAdd, walletTrackerRemove, walletTrackerTrades, walletTrackerSummary, alphaLeaderboard, alphaWallet, alphaLinked, tokenCapTable, tokenBuyerQuality, copyTradeList, copyTradeCreate, copyTradeGet, copyTradeUpdate, copyTradeDelete, copyTradeSignals, coordinationAlertsList, coordinationAlertsCreate, coordinationAlertsGet, coordinationAlertsUpdate, coordinationAlertsDelete, kolFirstTouches, firstTouchSubscriptionsList, firstTouchSubscriptionsCreate, firstTouchSubscriptionsGet, firstTouchSubscriptionsUpdate, firstTouchSubscriptionsDelete, walletStats, walletPnl, walletPositions, walletTrades, me, tokensList, };
105
+ export { kolFeed, kolCoordination, kolLeaderboard, deployerAlerts, kolPnl, kolTrendingTokens, kolTokenEntryOrder, kolCompare, kolAlertsRecent, createWebhook, listWebhooks, deleteWebhook, testWebhook, getStreamToken, walletTrackerWatchlist, walletTrackerAdd, walletTrackerRemove, walletTrackerTrades, walletTrackerSummary, alphaLeaderboard, alphaWallet, alphaLinked, tokenCapTable, tokenBuyerQuality, copyTradeList, copyTradeCreate, copyTradeGet, copyTradeUpdate, copyTradeDelete, copyTradeSignals, coordinationAlertsList, coordinationAlertsCreate, coordinationAlertsGet, coordinationAlertsUpdate, coordinationAlertsDelete, kolFirstTouches, firstTouchSubscriptionsList, firstTouchSubscriptionsCreate, firstTouchSubscriptionsGet, firstTouchSubscriptionsUpdate, firstTouchSubscriptionsDelete, priceAlertsList, priceAlertsCreate, priceAlertsGet, priceAlertsUpdate, priceAlertsDelete, priceAlertsEvents, scoutLeaderboard, coordinationHistory, kolConsensus, peakHistory, walletStats, walletPnl, walletPositions, walletTrades, me, tokensList, };
96
106
  export { kolFeedAction, kolCoordinationAction, kolLeaderboardAction, deployerAlertsAction, kolPnlAction, kolTrendingTokensAction, kolTokenEntryOrderAction, kolCompareAction, kolAlertsRecentAction, kolFirstTouchesAction };
97
107
  export { walletTrackerWatchlistAction, walletTrackerAddAction, walletTrackerRemoveAction, walletTrackerTradesAction, walletTrackerSummaryAction };
98
108
  export { walletStatsAction, walletPnlAction, walletPositionsAction, walletTradesAction };
@@ -288,4 +288,45 @@ export declare function copyTradeSignals(agent: Agent, params?: {
288
288
  limit?: number;
289
289
  since?: string;
290
290
  }): Promise<any>;
291
+ export declare function priceAlertsList(agent: Agent): Promise<any>;
292
+ export declare function priceAlertsCreate(agent: Agent, params: {
293
+ token_mint: string;
294
+ drop_pct: number;
295
+ recovery_pct?: number;
296
+ name?: string;
297
+ delivery_mode?: "webhook" | "websocket" | "both";
298
+ webhook_url?: string;
299
+ }): Promise<any>;
300
+ export declare function priceAlertsGet(agent: Agent, params: {
301
+ id: number;
302
+ }): Promise<any>;
303
+ export declare function priceAlertsUpdate(agent: Agent, params: {
304
+ id: number;
305
+ updates: Record<string, unknown>;
306
+ }): Promise<any>;
307
+ export declare function priceAlertsDelete(agent: Agent, params: {
308
+ id: number;
309
+ }): Promise<any>;
310
+ export declare function priceAlertsEvents(agent: Agent, params?: {
311
+ alert_id?: number;
312
+ event_type?: "dip" | "recovery";
313
+ since?: string;
314
+ limit?: number;
315
+ }): Promise<any>;
316
+ export declare function scoutLeaderboard(agent: Agent, params?: {
317
+ limit?: number;
318
+ scout_tier?: "S" | "A" | "B" | "C";
319
+ sort?: string;
320
+ }): Promise<any>;
321
+ export declare function coordinationHistory(agent: Agent, params?: {
322
+ limit?: number;
323
+ since?: string;
324
+ min_score?: number;
325
+ }): Promise<any>;
326
+ export declare function kolConsensus(agent: Agent, params: {
327
+ mint: string;
328
+ }): Promise<any>;
329
+ export declare function peakHistory(agent: Agent, params: {
330
+ mint: string;
331
+ }): Promise<any>;
291
332
  export {};
@@ -362,3 +362,53 @@ export async function copyTradeSignals(agent, params = {}) {
362
362
  const query = qs.toString() ? `?${qs.toString()}` : "";
363
363
  return restQuery(agent, "GET", `/copy-trade/signals${query}`);
364
364
  }
365
+ // ── Price Alerts (PRO/ULTRA, v1.9) ──
366
+ export async function priceAlertsList(agent) {
367
+ return restQuery(agent, "GET", "/price-alerts");
368
+ }
369
+ export async function priceAlertsCreate(agent, params) {
370
+ return restQuery(agent, "POST", "/price-alerts", params);
371
+ }
372
+ export async function priceAlertsGet(agent, params) {
373
+ return restQuery(agent, "GET", `/price-alerts/${params.id}`);
374
+ }
375
+ export async function priceAlertsUpdate(agent, params) {
376
+ return restQuery(agent, "PATCH", `/price-alerts/${params.id}`, params.updates);
377
+ }
378
+ export async function priceAlertsDelete(agent, params) {
379
+ return restQuery(agent, "DELETE", `/price-alerts/${params.id}`);
380
+ }
381
+ export async function priceAlertsEvents(agent, params = {}) {
382
+ const qs = new URLSearchParams();
383
+ for (const [k, v] of Object.entries(params)) {
384
+ if (v !== undefined)
385
+ qs.set(k, String(v));
386
+ }
387
+ const query = qs.toString() ? `?${qs.toString()}` : "";
388
+ return restQuery(agent, "GET", `/price-alerts/events${query}`);
389
+ }
390
+ // ── v1.9 new endpoints ──
391
+ export async function scoutLeaderboard(agent, params = {}) {
392
+ const qs = new URLSearchParams();
393
+ for (const [k, v] of Object.entries(params)) {
394
+ if (v !== undefined)
395
+ qs.set(k, String(v));
396
+ }
397
+ const query = qs.toString() ? `?${qs.toString()}` : "";
398
+ return restQuery(agent, "GET", `/kol/scouts/leaderboard${query}`);
399
+ }
400
+ export async function coordinationHistory(agent, params = {}) {
401
+ const qs = new URLSearchParams();
402
+ for (const [k, v] of Object.entries(params)) {
403
+ if (v !== undefined)
404
+ qs.set(k, String(v));
405
+ }
406
+ const query = qs.toString() ? `?${qs.toString()}` : "";
407
+ return restQuery(agent, "GET", `/kol/coordination/history${query}`);
408
+ }
409
+ export async function kolConsensus(agent, params) {
410
+ return restQuery(agent, "GET", `/tokens/${encodeURIComponent(params.mint)}/kol-consensus`);
411
+ }
412
+ export async function peakHistory(agent, params) {
413
+ return restQuery(agent, "GET", `/tokens/${encodeURIComponent(params.mint)}/peak-history`);
414
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "solana-agent-kit-plugin-madeonsol",
3
- "version": "1.8.1",
3
+ "version": "1.9.0",
4
4
  "description": "Solana Agent Kit plugin for MadeOnSol — KOL intelligence and deployer analytics via x402 micropayments",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",