solana-agent-kit-plugin-madeonsol 1.1.1 → 1.3.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
@@ -164,6 +164,7 @@ Free tier returns the full REST response shape on every endpoint — real wallet
164
164
  | Platform | Package |
165
165
  |---|---|
166
166
  | TypeScript SDK | [`madeonsol`](https://www.npmjs.com/package/madeonsol) on npm |
167
+ | Rust SDK | [`madeonsol`](https://crates.io/crates/madeonsol) on crates.io |
167
168
  | Python (LangChain, CrewAI) | [`madeonsol-x402`](https://pypi.org/project/madeonsol-x402/) on PyPI |
168
169
  | MCP Server (Claude, Cursor) | [`mcp-server-madeonsol`](https://www.npmjs.com/package/mcp-server-madeonsol) |
169
170
  | ElizaOS | [`@madeonsol/plugin-madeonsol`](https://www.npmjs.com/package/@madeonsol/plugin-madeonsol) |
@@ -22,12 +22,12 @@ export declare const kolAlertsRecentAction: {
22
22
  limit: number;
23
23
  window: "24h" | "1h" | "6h" | "5m" | "15m";
24
24
  types?: ("consensus_cluster" | "fresh_token_kol_buy" | "heating_up")[] | undefined;
25
- min_severity?: "low" | "medium" | "high" | undefined;
25
+ min_severity?: "high" | "medium" | "low" | undefined;
26
26
  }, {
27
27
  limit?: number | undefined;
28
28
  types?: ("consensus_cluster" | "fresh_token_kol_buy" | "heating_up")[] | undefined;
29
29
  window?: "24h" | "1h" | "6h" | "5m" | "15m" | undefined;
30
- min_severity?: "low" | "medium" | "high" | undefined;
30
+ min_severity?: "high" | "medium" | "low" | undefined;
31
31
  }>;
32
32
  handler: (agent: unknown, input: {
33
33
  window?: string;
@@ -0,0 +1,82 @@
1
+ import { z } from "zod";
2
+ export declare const kolFirstTouchesAction: {
3
+ name: string;
4
+ similes: string[];
5
+ description: string;
6
+ examples: {
7
+ input: {
8
+ preset: string;
9
+ limit: number;
10
+ };
11
+ output: {
12
+ status: string;
13
+ };
14
+ explanation: string;
15
+ }[][];
16
+ schema: z.ZodObject<{
17
+ limit: z.ZodDefault<z.ZodNumber>;
18
+ since: z.ZodOptional<z.ZodString>;
19
+ before: z.ZodOptional<z.ZodString>;
20
+ kol: z.ZodOptional<z.ZodString>;
21
+ min_kol_winrate_7d: z.ZodOptional<z.ZodNumber>;
22
+ min_scout_tier: z.ZodOptional<z.ZodEnum<["S", "A", "B", "C"]>>;
23
+ min_n_touches: z.ZodOptional<z.ZodNumber>;
24
+ strategy: z.ZodOptional<z.ZodEnum<["scalper", "day_trader", "swing_trader", "hodler", "mixed"]>>;
25
+ token_age_max_min: z.ZodOptional<z.ZodNumber>;
26
+ min_first_buy_sol: z.ZodOptional<z.ZodNumber>;
27
+ mint_suffix: z.ZodOptional<z.ZodString>;
28
+ preset: z.ZodOptional<z.ZodEnum<["scout", "fresh_launch"]>>;
29
+ include: z.ZodOptional<z.ZodString>;
30
+ }, "strip", z.ZodTypeAny, {
31
+ limit: number;
32
+ before?: string | undefined;
33
+ since?: string | undefined;
34
+ kol?: string | undefined;
35
+ min_kol_winrate_7d?: number | undefined;
36
+ min_scout_tier?: "S" | "A" | "B" | "C" | undefined;
37
+ min_n_touches?: number | undefined;
38
+ strategy?: "scalper" | "day_trader" | "swing_trader" | "hodler" | "mixed" | undefined;
39
+ token_age_max_min?: number | undefined;
40
+ min_first_buy_sol?: number | undefined;
41
+ mint_suffix?: string | undefined;
42
+ preset?: "scout" | "fresh_launch" | undefined;
43
+ include?: string | undefined;
44
+ }, {
45
+ limit?: number | undefined;
46
+ before?: string | undefined;
47
+ since?: string | undefined;
48
+ kol?: string | undefined;
49
+ min_kol_winrate_7d?: number | undefined;
50
+ min_scout_tier?: "S" | "A" | "B" | "C" | undefined;
51
+ min_n_touches?: number | undefined;
52
+ strategy?: "scalper" | "day_trader" | "swing_trader" | "hodler" | "mixed" | undefined;
53
+ token_age_max_min?: number | undefined;
54
+ min_first_buy_sol?: number | undefined;
55
+ mint_suffix?: string | undefined;
56
+ preset?: "scout" | "fresh_launch" | undefined;
57
+ include?: string | undefined;
58
+ }>;
59
+ handler: (agent: unknown, input: {
60
+ limit?: number;
61
+ since?: string;
62
+ before?: string;
63
+ kol?: string;
64
+ min_kol_winrate_7d?: number;
65
+ min_scout_tier?: "S" | "A" | "B" | "C";
66
+ min_n_touches?: number;
67
+ strategy?: "scalper" | "day_trader" | "swing_trader" | "hodler" | "mixed";
68
+ token_age_max_min?: number;
69
+ min_first_buy_sol?: number;
70
+ mint_suffix?: string;
71
+ preset?: "scout" | "fresh_launch";
72
+ include?: string;
73
+ }) => Promise<{
74
+ status: string;
75
+ result: any;
76
+ message?: undefined;
77
+ } | {
78
+ status: string;
79
+ message: string;
80
+ result?: undefined;
81
+ }>;
82
+ };
@@ -0,0 +1,47 @@
1
+ import { z } from "zod";
2
+ import { kolFirstTouches } from "../tools/index.js";
3
+ export const kolFirstTouchesAction = {
4
+ name: "MADEONSOL_KOL_FIRST_TOUCHES_ACTION",
5
+ similes: [
6
+ "kol first touch",
7
+ "first kol buyer",
8
+ "scout signal",
9
+ "smart money first buyer",
10
+ "kol scout alert",
11
+ "first buy by kol",
12
+ ],
13
+ description: "Get the most recent first-KOL-touch events on Solana tokens — the moment a tracked KOL was the first to buy a given mint. Filterable by scout tier (S/A/B/C from mv_kol_scout_score), KOL winrate, token age, mint suffix. Backtest: top scouts attract >=3 follow-on KOLs within 4h ~50% of the time vs ~14% baseline.",
14
+ examples: [
15
+ [
16
+ {
17
+ input: { preset: "scout", limit: 10 },
18
+ output: { status: "success" },
19
+ explanation: "Fetch 10 recent first-touch events from B-tier-or-better scouts on tokens younger than 60 minutes",
20
+ },
21
+ ],
22
+ ],
23
+ schema: z.object({
24
+ limit: z.number().min(1).max(100).default(20).describe("Number of events (1-100)"),
25
+ since: z.string().optional().describe("ISO timestamp — events strictly newer than this"),
26
+ before: z.string().optional().describe("ISO timestamp — events strictly older than this (pagination cursor)"),
27
+ kol: z.string().optional().describe("Single KOL wallet address (base58)"),
28
+ min_kol_winrate_7d: z.number().min(0).max(100).optional(),
29
+ min_scout_tier: z.enum(["S", "A", "B", "C"]).optional().describe("Scout tier S/A/B/C (S = highest)"),
30
+ min_n_touches: z.number().min(1).optional(),
31
+ strategy: z.enum(["scalper", "day_trader", "swing_trader", "hodler", "mixed"]).optional(),
32
+ token_age_max_min: z.number().min(1).optional().describe("Only events on tokens younger than N minutes"),
33
+ min_first_buy_sol: z.number().min(0).optional(),
34
+ mint_suffix: z.string().optional().describe("Suffix-filter the token mint (e.g. 'pump')"),
35
+ preset: z.enum(["scout", "fresh_launch"]).optional(),
36
+ include: z.string().optional().describe("Comma-separated includes — currently 'followers_4h'"),
37
+ }),
38
+ handler: async (agent, input) => {
39
+ try {
40
+ const data = await kolFirstTouches(agent, input);
41
+ return { status: "success", result: data };
42
+ }
43
+ catch (err) {
44
+ return { status: "error", message: err.message };
45
+ }
46
+ },
47
+ };
package/dist/index.d.ts CHANGED
@@ -8,7 +8,8 @@ import { walletTrackerWatchlistAction, walletTrackerAddAction, walletTrackerRemo
8
8
  import { kolTokenEntryOrderAction } from "./actions/kolTokenEntryOrder.js";
9
9
  import { kolCompareAction } from "./actions/kolCompare.js";
10
10
  import { kolAlertsRecentAction } from "./actions/kolAlertsRecent.js";
11
- 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 } from "./tools/index.js";
11
+ import { kolFirstTouchesAction } from "./actions/kolFirstTouches.js";
12
+ 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 } from "./tools/index.js";
12
13
  declare const MadeOnSolPlugin: {
13
14
  name: string;
14
15
  methods: {
@@ -47,6 +48,12 @@ declare const MadeOnSolPlugin: {
47
48
  coordinationAlertsGet: typeof coordinationAlertsGet;
48
49
  coordinationAlertsUpdate: typeof coordinationAlertsUpdate;
49
50
  coordinationAlertsDelete: typeof coordinationAlertsDelete;
51
+ kolFirstTouches: typeof kolFirstTouches;
52
+ firstTouchSubscriptionsList: typeof firstTouchSubscriptionsList;
53
+ firstTouchSubscriptionsCreate: typeof firstTouchSubscriptionsCreate;
54
+ firstTouchSubscriptionsGet: typeof firstTouchSubscriptionsGet;
55
+ firstTouchSubscriptionsUpdate: typeof firstTouchSubscriptionsUpdate;
56
+ firstTouchSubscriptionsDelete: typeof firstTouchSubscriptionsDelete;
50
57
  };
51
58
  actions: ({
52
59
  name: string;
@@ -543,12 +550,12 @@ declare const MadeOnSolPlugin: {
543
550
  limit: number;
544
551
  window: "24h" | "1h" | "6h" | "5m" | "15m";
545
552
  types?: ("consensus_cluster" | "fresh_token_kol_buy" | "heating_up")[] | undefined;
546
- min_severity?: "low" | "medium" | "high" | undefined;
553
+ min_severity?: "high" | "medium" | "low" | undefined;
547
554
  }, {
548
555
  limit?: number | undefined;
549
556
  types?: ("consensus_cluster" | "fresh_token_kol_buy" | "heating_up")[] | undefined;
550
557
  window?: "24h" | "1h" | "6h" | "5m" | "15m" | undefined;
551
- min_severity?: "low" | "medium" | "high" | undefined;
558
+ min_severity?: "high" | "medium" | "low" | undefined;
552
559
  }>;
553
560
  handler: (agent: unknown, input: {
554
561
  window?: string;
@@ -564,10 +571,90 @@ declare const MadeOnSolPlugin: {
564
571
  message: string;
565
572
  result?: undefined;
566
573
  }>;
574
+ } | {
575
+ name: string;
576
+ similes: string[];
577
+ description: string;
578
+ examples: {
579
+ input: {
580
+ preset: string;
581
+ limit: number;
582
+ };
583
+ output: {
584
+ status: string;
585
+ };
586
+ explanation: string;
587
+ }[][];
588
+ schema: import("zod").ZodObject<{
589
+ limit: import("zod").ZodDefault<import("zod").ZodNumber>;
590
+ since: import("zod").ZodOptional<import("zod").ZodString>;
591
+ before: import("zod").ZodOptional<import("zod").ZodString>;
592
+ kol: import("zod").ZodOptional<import("zod").ZodString>;
593
+ min_kol_winrate_7d: import("zod").ZodOptional<import("zod").ZodNumber>;
594
+ min_scout_tier: import("zod").ZodOptional<import("zod").ZodEnum<["S", "A", "B", "C"]>>;
595
+ min_n_touches: import("zod").ZodOptional<import("zod").ZodNumber>;
596
+ strategy: import("zod").ZodOptional<import("zod").ZodEnum<["scalper", "day_trader", "swing_trader", "hodler", "mixed"]>>;
597
+ token_age_max_min: import("zod").ZodOptional<import("zod").ZodNumber>;
598
+ min_first_buy_sol: import("zod").ZodOptional<import("zod").ZodNumber>;
599
+ mint_suffix: import("zod").ZodOptional<import("zod").ZodString>;
600
+ preset: import("zod").ZodOptional<import("zod").ZodEnum<["scout", "fresh_launch"]>>;
601
+ include: import("zod").ZodOptional<import("zod").ZodString>;
602
+ }, "strip", import("zod").ZodTypeAny, {
603
+ limit: number;
604
+ before?: string | undefined;
605
+ since?: string | undefined;
606
+ kol?: string | undefined;
607
+ min_kol_winrate_7d?: number | undefined;
608
+ min_scout_tier?: "S" | "A" | "B" | "C" | undefined;
609
+ min_n_touches?: number | undefined;
610
+ strategy?: "scalper" | "day_trader" | "swing_trader" | "hodler" | "mixed" | undefined;
611
+ token_age_max_min?: number | undefined;
612
+ min_first_buy_sol?: number | undefined;
613
+ mint_suffix?: string | undefined;
614
+ preset?: "scout" | "fresh_launch" | undefined;
615
+ include?: string | undefined;
616
+ }, {
617
+ limit?: number | undefined;
618
+ before?: string | undefined;
619
+ since?: string | undefined;
620
+ kol?: string | undefined;
621
+ min_kol_winrate_7d?: number | undefined;
622
+ min_scout_tier?: "S" | "A" | "B" | "C" | undefined;
623
+ min_n_touches?: number | undefined;
624
+ strategy?: "scalper" | "day_trader" | "swing_trader" | "hodler" | "mixed" | undefined;
625
+ token_age_max_min?: number | undefined;
626
+ min_first_buy_sol?: number | undefined;
627
+ mint_suffix?: string | undefined;
628
+ preset?: "scout" | "fresh_launch" | undefined;
629
+ include?: string | undefined;
630
+ }>;
631
+ handler: (agent: unknown, input: {
632
+ limit?: number;
633
+ since?: string;
634
+ before?: string;
635
+ kol?: string;
636
+ min_kol_winrate_7d?: number;
637
+ min_scout_tier?: "S" | "A" | "B" | "C";
638
+ min_n_touches?: number;
639
+ strategy?: "scalper" | "day_trader" | "swing_trader" | "hodler" | "mixed";
640
+ token_age_max_min?: number;
641
+ min_first_buy_sol?: number;
642
+ mint_suffix?: string;
643
+ preset?: "scout" | "fresh_launch";
644
+ include?: string;
645
+ }) => Promise<{
646
+ status: string;
647
+ result: any;
648
+ message?: undefined;
649
+ } | {
650
+ status: string;
651
+ message: string;
652
+ result?: undefined;
653
+ }>;
567
654
  })[];
568
655
  initialize(_agent: unknown): void;
569
656
  };
570
657
  export default MadeOnSolPlugin;
571
- 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, };
572
- export { kolFeedAction, kolCoordinationAction, kolLeaderboardAction, deployerAlertsAction, kolPnlAction, kolTrendingTokensAction, kolTokenEntryOrderAction, kolCompareAction, kolAlertsRecentAction };
658
+ 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, };
659
+ export { kolFeedAction, kolCoordinationAction, kolLeaderboardAction, deployerAlertsAction, kolPnlAction, kolTrendingTokensAction, kolTokenEntryOrderAction, kolCompareAction, kolAlertsRecentAction, kolFirstTouchesAction };
573
660
  export { walletTrackerWatchlistAction, walletTrackerAddAction, walletTrackerRemoveAction, walletTrackerTradesAction, walletTrackerSummaryAction };
package/dist/index.js CHANGED
@@ -8,7 +8,8 @@ import { walletTrackerWatchlistAction, walletTrackerAddAction, walletTrackerRemo
8
8
  import { kolTokenEntryOrderAction } from "./actions/kolTokenEntryOrder.js";
9
9
  import { kolCompareAction } from "./actions/kolCompare.js";
10
10
  import { kolAlertsRecentAction } from "./actions/kolAlertsRecent.js";
11
- 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, } from "./tools/index.js";
11
+ import { kolFirstTouchesAction } from "./actions/kolFirstTouches.js";
12
+ 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, } from "./tools/index.js";
12
13
  const MadeOnSolPlugin = {
13
14
  name: "madeonsol",
14
15
  methods: {
@@ -47,6 +48,12 @@ const MadeOnSolPlugin = {
47
48
  coordinationAlertsGet,
48
49
  coordinationAlertsUpdate,
49
50
  coordinationAlertsDelete,
51
+ kolFirstTouches,
52
+ firstTouchSubscriptionsList,
53
+ firstTouchSubscriptionsCreate,
54
+ firstTouchSubscriptionsGet,
55
+ firstTouchSubscriptionsUpdate,
56
+ firstTouchSubscriptionsDelete,
50
57
  },
51
58
  actions: [
52
59
  kolFeedAction,
@@ -58,6 +65,7 @@ const MadeOnSolPlugin = {
58
65
  kolTokenEntryOrderAction,
59
66
  kolCompareAction,
60
67
  kolAlertsRecentAction,
68
+ kolFirstTouchesAction,
61
69
  walletTrackerWatchlistAction,
62
70
  walletTrackerAddAction,
63
71
  walletTrackerRemoveAction,
@@ -69,6 +77,6 @@ const MadeOnSolPlugin = {
69
77
  },
70
78
  };
71
79
  export default MadeOnSolPlugin;
72
- 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, };
73
- export { kolFeedAction, kolCoordinationAction, kolLeaderboardAction, deployerAlertsAction, kolPnlAction, kolTrendingTokensAction, kolTokenEntryOrderAction, kolCompareAction, kolAlertsRecentAction };
80
+ 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, };
81
+ export { kolFeedAction, kolCoordinationAction, kolLeaderboardAction, deployerAlertsAction, kolPnlAction, kolTrendingTokensAction, kolTokenEntryOrderAction, kolCompareAction, kolAlertsRecentAction, kolFirstTouchesAction };
74
82
  export { walletTrackerWatchlistAction, walletTrackerAddAction, walletTrackerRemoveAction, walletTrackerTradesAction, walletTrackerSummaryAction };
@@ -20,8 +20,14 @@ export declare function initAuth(agent: Agent): Promise<void>;
20
20
  export declare function initPaidFetch(agent: Agent): Promise<typeof fetch>;
21
21
  export declare function kolFeed(agent: Agent, params?: {
22
22
  limit?: number;
23
+ before?: string;
23
24
  action?: string;
24
25
  kol?: string;
26
+ min_sol?: number;
27
+ token_age_max_min?: number;
28
+ exclude_sells?: boolean;
29
+ min_kol_winrate?: number;
30
+ strategy?: string;
25
31
  }): Promise<any>;
26
32
  export declare function kolCoordination(agent: Agent, params?: {
27
33
  period?: string;
@@ -48,8 +54,12 @@ export declare function kolLeaderboard(agent: Agent, params?: {
48
54
  export declare function deployerAlerts(agent: Agent, params?: {
49
55
  limit?: number;
50
56
  since?: string;
57
+ before?: string;
51
58
  offset?: number;
52
59
  tier?: "elite" | "good" | "moderate" | "rising" | "cold";
60
+ alert_type?: string;
61
+ priority?: "high" | "medium" | "low";
62
+ min_kol_buys?: number;
53
63
  }): Promise<any>;
54
64
  export declare function kolPairs(agent: Agent, params?: {
55
65
  period?: string;
@@ -139,6 +149,18 @@ export declare function tokenCapTable(agent: Agent, params: {
139
149
  export declare function tokenBuyerQuality(agent: Agent, params: {
140
150
  mint: string;
141
151
  }): Promise<any>;
152
+ /** Bulk buyer-quality scoring for up to 50 mints. Shares the 5-min LRU cache with the single-mint endpoint. */
153
+ export declare function tokenBuyerQualityBatch(agent: Agent, params: {
154
+ mints: string[];
155
+ }): Promise<any>;
156
+ /** Comprehensive per-mint snapshot: price, MC, 24h volume, deployer reputation, KOL activity, age, blacklist status. */
157
+ export declare function tokenGet(agent: Agent, params: {
158
+ mint: string;
159
+ }): Promise<any>;
160
+ /** Bulk token snapshot for up to 50 mints — same per-mint shape as tokenGet(). 10-20× cheaper than N sequential calls. */
161
+ export declare function tokenBatch(agent: Agent, params: {
162
+ mints: string[];
163
+ }): Promise<any>;
142
164
  export declare function copyTradeList(agent: Agent): Promise<any>;
143
165
  export declare function copyTradeCreate(agent: Agent, params: {
144
166
  name: string;
@@ -180,6 +202,44 @@ export declare function coordinationAlertsUpdate(agent: Agent, params: {
180
202
  export declare function coordinationAlertsDelete(agent: Agent, params: {
181
203
  rule_id: string;
182
204
  }): Promise<any>;
205
+ export declare function kolFirstTouches(agent: Agent, params?: {
206
+ since?: string;
207
+ before?: string;
208
+ limit?: number;
209
+ kol?: string;
210
+ min_kol_winrate_7d?: number;
211
+ min_scout_tier?: "S" | "A" | "B" | "C";
212
+ min_n_touches?: number;
213
+ strategy?: "scalper" | "day_trader" | "swing_trader" | "hodler" | "mixed";
214
+ token_age_max_min?: number;
215
+ min_first_buy_sol?: number;
216
+ mint_suffix?: string;
217
+ preset?: "scout" | "fresh_launch";
218
+ include?: string;
219
+ }): Promise<any>;
220
+ export declare function firstTouchSubscriptionsList(agent: Agent): Promise<any>;
221
+ export declare function firstTouchSubscriptionsCreate(agent: Agent, params: {
222
+ name?: string;
223
+ filters?: {
224
+ kol?: string;
225
+ mint_suffix?: string;
226
+ min_first_buy_sol?: number;
227
+ min_scout_tier?: "S" | "A" | "B" | "C";
228
+ min_n_touches?: number;
229
+ };
230
+ delivery_mode?: "websocket" | "webhook" | "both";
231
+ webhook_url?: string;
232
+ }): Promise<any>;
233
+ export declare function firstTouchSubscriptionsGet(agent: Agent, params: {
234
+ subscription_id: string;
235
+ }): Promise<any>;
236
+ export declare function firstTouchSubscriptionsUpdate(agent: Agent, params: {
237
+ subscription_id: string;
238
+ updates: Record<string, unknown>;
239
+ }): Promise<any>;
240
+ export declare function firstTouchSubscriptionsDelete(agent: Agent, params: {
241
+ subscription_id: string;
242
+ }): Promise<any>;
183
243
  export declare function copyTradeSignals(agent: Agent, params?: {
184
244
  rule_id?: string;
185
245
  limit?: number;
@@ -221,17 +221,30 @@ export async function alphaLeaderboard(agent, params = {}) {
221
221
  return restQuery(agent, "GET", `/alpha/leaderboard${query}`);
222
222
  }
223
223
  export async function alphaWallet(agent, params) {
224
- return restQuery(agent, "GET", `/alpha/wallet/${encodeURIComponent(params.wallet)}`);
224
+ return restQuery(agent, "GET", `/alpha/${encodeURIComponent(params.wallet)}`);
225
225
  }
226
226
  export async function alphaLinked(agent, params) {
227
- return restQuery(agent, "GET", `/alpha/wallet/${encodeURIComponent(params.wallet)}/linked`);
227
+ return restQuery(agent, "GET", `/alpha/${encodeURIComponent(params.wallet)}/linked`);
228
228
  }
229
229
  // ── Token Quality ──
230
230
  export async function tokenCapTable(agent, params) {
231
- return restQuery(agent, "GET", `/token/${encodeURIComponent(params.mint)}/cap-table`);
231
+ return restQuery(agent, "GET", `/tokens/${encodeURIComponent(params.mint)}/cap-table`);
232
232
  }
233
233
  export async function tokenBuyerQuality(agent, params) {
234
- return restQuery(agent, "GET", `/token/${encodeURIComponent(params.mint)}/buyer-quality`);
234
+ return restQuery(agent, "GET", `/tokens/${encodeURIComponent(params.mint)}/buyer-quality`);
235
+ }
236
+ /** Bulk buyer-quality scoring for up to 50 mints. Shares the 5-min LRU cache with the single-mint endpoint. */
237
+ export async function tokenBuyerQualityBatch(agent, params) {
238
+ return restQuery(agent, "POST", "/tokens/batch/buyer-quality", { mints: params.mints });
239
+ }
240
+ // ── Token Intelligence (/token/{mint}) ──
241
+ /** Comprehensive per-mint snapshot: price, MC, 24h volume, deployer reputation, KOL activity, age, blacklist status. */
242
+ export async function tokenGet(agent, params) {
243
+ return restQuery(agent, "GET", `/token/${encodeURIComponent(params.mint)}`);
244
+ }
245
+ /** Bulk token snapshot for up to 50 mints — same per-mint shape as tokenGet(). 10-20× cheaper than N sequential calls. */
246
+ export async function tokenBatch(agent, params) {
247
+ return restQuery(agent, "POST", "/token/batch", { mints: params.mints });
235
248
  }
236
249
  // ── Copy-Trade Rules (PRO/ULTRA) ──
237
250
  export async function copyTradeList(agent) {
@@ -265,6 +278,31 @@ export async function coordinationAlertsUpdate(agent, params) {
265
278
  export async function coordinationAlertsDelete(agent, params) {
266
279
  return restQuery(agent, "DELETE", `/kol/coordination/alerts/${encodeURIComponent(params.rule_id)}`);
267
280
  }
281
+ // ── First-Touch Signal ──
282
+ export async function kolFirstTouches(agent, params = {}) {
283
+ const qs = new URLSearchParams();
284
+ for (const [k, v] of Object.entries(params)) {
285
+ if (v !== undefined)
286
+ qs.set(k, String(v));
287
+ }
288
+ const query = qs.toString() ? `?${qs.toString()}` : "";
289
+ return restQuery(agent, "GET", `/kol/first-touches${query}`);
290
+ }
291
+ export async function firstTouchSubscriptionsList(agent) {
292
+ return restQuery(agent, "GET", "/kol/first-touches/subscriptions");
293
+ }
294
+ export async function firstTouchSubscriptionsCreate(agent, params) {
295
+ return restQuery(agent, "POST", "/kol/first-touches/subscriptions", params);
296
+ }
297
+ export async function firstTouchSubscriptionsGet(agent, params) {
298
+ return restQuery(agent, "GET", `/kol/first-touches/subscriptions/${encodeURIComponent(params.subscription_id)}`);
299
+ }
300
+ export async function firstTouchSubscriptionsUpdate(agent, params) {
301
+ return restQuery(agent, "PATCH", `/kol/first-touches/subscriptions/${encodeURIComponent(params.subscription_id)}`, params.updates);
302
+ }
303
+ export async function firstTouchSubscriptionsDelete(agent, params) {
304
+ return restQuery(agent, "DELETE", `/kol/first-touches/subscriptions/${encodeURIComponent(params.subscription_id)}`);
305
+ }
268
306
  export async function copyTradeSignals(agent, params = {}) {
269
307
  const qs = new URLSearchParams();
270
308
  for (const [k, v] of Object.entries(params)) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "solana-agent-kit-plugin-madeonsol",
3
- "version": "1.1.1",
3
+ "version": "1.3.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",