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 +1 -0
- package/dist/actions/kolAlertsRecent.d.ts +2 -2
- package/dist/actions/kolFirstTouches.d.ts +82 -0
- package/dist/actions/kolFirstTouches.js +47 -0
- package/dist/index.d.ts +92 -5
- package/dist/index.js +11 -3
- package/dist/tools/index.d.ts +60 -0
- package/dist/tools/index.js +42 -4
- package/package.json +1 -1
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?: "
|
|
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?: "
|
|
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 {
|
|
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?: "
|
|
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?: "
|
|
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 {
|
|
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 };
|
package/dist/tools/index.d.ts
CHANGED
|
@@ -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;
|
package/dist/tools/index.js
CHANGED
|
@@ -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
|
|
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
|
|
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", `/
|
|
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", `/
|
|
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