solana-agent-kit-plugin-madeonsol 0.4.0 → 0.6.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 +29 -16
- package/dist/actions/kolFeed.d.ts +1 -1
- package/dist/actions/kolPnl.d.ts +38 -0
- package/dist/actions/kolPnl.js +23 -0
- package/dist/actions/kolTrendingTokens.d.ts +42 -0
- package/dist/actions/kolTrendingTokens.js +24 -0
- package/dist/actions/walletTracker.d.ts +176 -0
- package/dist/actions/walletTracker.js +106 -0
- package/dist/index.d.ts +261 -4
- package/dist/index.js +21 -3
- package/dist/tools/index.d.ts +28 -0
- package/dist/tools/index.js +46 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
# solana-agent-kit-plugin-madeonsol
|
|
2
2
|
|
|
3
|
-
[Solana Agent Kit](https://github.com/sendaifun/solana-agent-kit) plugin for [MadeOnSol](https://madeonsol.com) — Solana KOL intelligence and
|
|
3
|
+
[Solana Agent Kit](https://github.com/sendaifun/solana-agent-kit) plugin for [MadeOnSol](https://madeonsol.com) — Solana KOL intelligence, deployer analytics, and wallet tracking.
|
|
4
4
|
|
|
5
|
-
> Real-time Solana trading intelligence: track 1,000+ KOL wallets with <3s latency, score 6,700+ Pump.fun deployers by reputation, detect multi-KOL coordination signals, and stream every DEX trade. Free tier: 200 requests/day at [madeonsol.com/developer](https://madeonsol.com/developer) — no credit card required.
|
|
5
|
+
> Real-time Solana trading intelligence: track 1,000+ KOL wallets with <3s latency, score 6,700+ Pump.fun deployers by reputation, detect multi-KOL coordination signals, monitor any Solana wallet for swaps and transfers, and stream every DEX trade. Free tier: 200 requests/day at [madeonsol.com/developer](https://madeonsol.com/developer) — no credit card required.
|
|
6
6
|
|
|
7
7
|
## Authentication
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Two options (in priority order):
|
|
10
10
|
|
|
11
11
|
| Method | Config key | Best for |
|
|
12
12
|
|---|---|---|
|
|
13
13
|
| **MadeOnSol API key** (recommended) | `MADEONSOL_API_KEY` | Developers — [get a free key](https://madeonsol.com/developer) |
|
|
14
|
-
| RapidAPI key | `RAPIDAPI_KEY` | RapidAPI subscribers |
|
|
15
14
|
| x402 micropayments | `SVM_PRIVATE_KEY` | AI agents with Solana wallets |
|
|
16
15
|
|
|
17
16
|
## Install
|
|
@@ -29,14 +28,7 @@ import { SolanaAgentKit } from "solana-agent-kit";
|
|
|
29
28
|
import MadeOnSolPlugin from "solana-agent-kit-plugin-madeonsol";
|
|
30
29
|
|
|
31
30
|
const agent = new SolanaAgentKit(privateKey, rpcUrl, {
|
|
32
|
-
// Option 1: API key (simplest)
|
|
33
31
|
MADEONSOL_API_KEY: "msk_your_api_key_here",
|
|
34
|
-
|
|
35
|
-
// Option 2: RapidAPI key
|
|
36
|
-
// RAPIDAPI_KEY: "your_rapidapi_key",
|
|
37
|
-
|
|
38
|
-
// Option 3: x402 micropayments
|
|
39
|
-
// SVM_PRIVATE_KEY: "your_solana_private_key_base58",
|
|
40
32
|
});
|
|
41
33
|
|
|
42
34
|
agent.use(MadeOnSolPlugin);
|
|
@@ -44,6 +36,11 @@ agent.use(MadeOnSolPlugin);
|
|
|
44
36
|
// Use via methods
|
|
45
37
|
const trades = await agent.methods.kolFeed(agent, { limit: 10, action: "buy" });
|
|
46
38
|
|
|
39
|
+
// Wallet tracker
|
|
40
|
+
const watchlist = await agent.methods.walletTrackerWatchlist(agent);
|
|
41
|
+
await agent.methods.walletTrackerAdd(agent, { wallet_address: "WALLET", label: "whale" });
|
|
42
|
+
const events = await agent.methods.walletTrackerTrades(agent, { limit: 50 });
|
|
43
|
+
|
|
47
44
|
// Or let the LLM trigger actions via natural language
|
|
48
45
|
// "What are KOLs buying right now?" → MADEONSOL_KOL_FEED_ACTION
|
|
49
46
|
```
|
|
@@ -54,16 +51,32 @@ const trades = await agent.methods.kolFeed(agent, { limit: 10, action: "buy" });
|
|
|
54
51
|
|---|---|
|
|
55
52
|
| `MADEONSOL_KOL_FEED_ACTION` | "kol trades", "what are kols buying" |
|
|
56
53
|
| `MADEONSOL_KOL_COORDINATION_ACTION` | "kol convergence", "tokens kols accumulating" |
|
|
57
|
-
| `MADEONSOL_KOL_LEADERBOARD_ACTION` | "top kols", "kol rankings"
|
|
58
|
-
| `MADEONSOL_DEPLOYER_ALERTS_ACTION` | "deployer alerts", "pump fun launches"
|
|
59
|
-
| `
|
|
54
|
+
| `MADEONSOL_KOL_LEADERBOARD_ACTION` | "top kols", "kol rankings" — periods: today, 7d, 30d, 90d, 180d |
|
|
55
|
+
| `MADEONSOL_DEPLOYER_ALERTS_ACTION` | "deployer alerts", "pump fun launches" |
|
|
56
|
+
| `MADEONSOL_KOL_PNL_ACTION` | "kol pnl", "kol profit", "wallet pnl" |
|
|
57
|
+
| `MADEONSOL_KOL_TRENDING_TOKENS_ACTION` | "kol trending tokens", "kol volume" |
|
|
58
|
+
| `MADEONSOL_WALLET_TRACKER_WATCHLIST_ACTION` | "wallet watchlist", "tracked wallets" |
|
|
59
|
+
| `MADEONSOL_WALLET_TRACKER_ADD_ACTION` | "track wallet", "watch wallet", "add to watchlist" |
|
|
60
|
+
| `MADEONSOL_WALLET_TRACKER_REMOVE_ACTION` | "untrack wallet", "remove from watchlist" |
|
|
61
|
+
| `MADEONSOL_WALLET_TRACKER_TRADES_ACTION` | "wallet tracker trades", "watchlist activity" |
|
|
62
|
+
| `MADEONSOL_WALLET_TRACKER_SUMMARY_ACTION` | "wallet tracker summary", "tracked wallet stats" |
|
|
63
|
+
|
|
64
|
+
## Tiers
|
|
65
|
+
|
|
66
|
+
| Tier | Price | Wallets tracked | Requests/day |
|
|
67
|
+
|------|-------|-----------------|--------------|
|
|
68
|
+
| BASIC | Free | 10 | 200 |
|
|
69
|
+
| PRO | $49/mo | 50 | 10,000 |
|
|
70
|
+
| ULTRA | $199/mo | 100 + WS events | 100,000 |
|
|
71
|
+
|
|
72
|
+
Get a key at [madeonsol.com/developer](https://madeonsol.com/developer).
|
|
60
73
|
|
|
61
74
|
## Also Available
|
|
62
75
|
|
|
63
76
|
| Platform | Package |
|
|
64
77
|
|---|---|
|
|
65
|
-
| TypeScript SDK | [`madeonsol
|
|
66
|
-
| Python (LangChain, CrewAI) | [`madeonsol-x402`](https://
|
|
78
|
+
| TypeScript SDK | [`madeonsol`](https://www.npmjs.com/package/madeonsol) on npm |
|
|
79
|
+
| Python (LangChain, CrewAI) | [`madeonsol-x402`](https://pypi.org/project/madeonsol-x402/) on PyPI |
|
|
67
80
|
| MCP Server (Claude, Cursor) | [`mcp-server-madeonsol`](https://www.npmjs.com/package/mcp-server-madeonsol) |
|
|
68
81
|
| ElizaOS | [`@madeonsol/plugin-madeonsol`](https://www.npmjs.com/package/@madeonsol/plugin-madeonsol) |
|
|
69
82
|
|
|
@@ -22,8 +22,8 @@ export declare const kolFeedAction: {
|
|
|
22
22
|
action?: "buy" | "sell" | undefined;
|
|
23
23
|
kol?: string | undefined;
|
|
24
24
|
}, {
|
|
25
|
-
limit?: number | undefined;
|
|
26
25
|
action?: "buy" | "sell" | undefined;
|
|
26
|
+
limit?: number | undefined;
|
|
27
27
|
kol?: string | undefined;
|
|
28
28
|
}>;
|
|
29
29
|
handler: (agent: unknown, input: {
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const kolPnlAction: {
|
|
3
|
+
name: string;
|
|
4
|
+
similes: string[];
|
|
5
|
+
description: string;
|
|
6
|
+
examples: {
|
|
7
|
+
input: {
|
|
8
|
+
wallet: string;
|
|
9
|
+
period: string;
|
|
10
|
+
};
|
|
11
|
+
output: {
|
|
12
|
+
status: string;
|
|
13
|
+
};
|
|
14
|
+
explanation: string;
|
|
15
|
+
}[][];
|
|
16
|
+
schema: z.ZodObject<{
|
|
17
|
+
wallet: z.ZodString;
|
|
18
|
+
period: z.ZodDefault<z.ZodEnum<["7d", "30d", "90d", "180d"]>>;
|
|
19
|
+
}, "strip", z.ZodTypeAny, {
|
|
20
|
+
wallet: string;
|
|
21
|
+
period: "7d" | "30d" | "90d" | "180d";
|
|
22
|
+
}, {
|
|
23
|
+
wallet: string;
|
|
24
|
+
period?: "7d" | "30d" | "90d" | "180d" | undefined;
|
|
25
|
+
}>;
|
|
26
|
+
handler: (agent: unknown, input: {
|
|
27
|
+
wallet: string;
|
|
28
|
+
period?: string;
|
|
29
|
+
}) => Promise<{
|
|
30
|
+
status: string;
|
|
31
|
+
result: any;
|
|
32
|
+
message?: undefined;
|
|
33
|
+
} | {
|
|
34
|
+
status: string;
|
|
35
|
+
message: string;
|
|
36
|
+
result?: undefined;
|
|
37
|
+
}>;
|
|
38
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { kolPnl } from "../tools/index.js";
|
|
3
|
+
export const kolPnlAction = {
|
|
4
|
+
name: "MADEONSOL_KOL_PNL_ACTION",
|
|
5
|
+
similes: ["kol pnl", "kol profit", "kol performance", "wallet pnl", "kol win rate", "kol drawdown"],
|
|
6
|
+
description: "Get deep per-wallet PnL breakdown — realized PnL, win rate, profit factor, max drawdown, daily equity curve, and per-token positions via MadeOnSol API.",
|
|
7
|
+
examples: [
|
|
8
|
+
[{ input: { wallet: "ABC...xyz", period: "30d" }, output: { status: "success" }, explanation: "Get 30-day PnL breakdown for a KOL wallet" }],
|
|
9
|
+
],
|
|
10
|
+
schema: z.object({
|
|
11
|
+
wallet: z.string().describe("KOL wallet address (base58)"),
|
|
12
|
+
period: z.enum(["7d", "30d", "90d", "180d"]).default("30d").describe("Time period"),
|
|
13
|
+
}),
|
|
14
|
+
handler: async (agent, input) => {
|
|
15
|
+
try {
|
|
16
|
+
const data = await kolPnl(agent, input);
|
|
17
|
+
return { status: "success", result: data };
|
|
18
|
+
}
|
|
19
|
+
catch (err) {
|
|
20
|
+
return { status: "error", message: err.message };
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const kolTrendingTokensAction: {
|
|
3
|
+
name: string;
|
|
4
|
+
similes: string[];
|
|
5
|
+
description: string;
|
|
6
|
+
examples: {
|
|
7
|
+
input: {
|
|
8
|
+
period: string;
|
|
9
|
+
min_kols: number;
|
|
10
|
+
};
|
|
11
|
+
output: {
|
|
12
|
+
status: string;
|
|
13
|
+
};
|
|
14
|
+
explanation: string;
|
|
15
|
+
}[][];
|
|
16
|
+
schema: z.ZodObject<{
|
|
17
|
+
period: z.ZodDefault<z.ZodEnum<["5m", "15m", "30m", "1h", "2h", "4h", "12h"]>>;
|
|
18
|
+
min_kols: z.ZodDefault<z.ZodNumber>;
|
|
19
|
+
limit: z.ZodDefault<z.ZodNumber>;
|
|
20
|
+
}, "strip", z.ZodTypeAny, {
|
|
21
|
+
limit: number;
|
|
22
|
+
period: "1h" | "5m" | "15m" | "30m" | "2h" | "4h" | "12h";
|
|
23
|
+
min_kols: number;
|
|
24
|
+
}, {
|
|
25
|
+
limit?: number | undefined;
|
|
26
|
+
period?: "1h" | "5m" | "15m" | "30m" | "2h" | "4h" | "12h" | undefined;
|
|
27
|
+
min_kols?: number | undefined;
|
|
28
|
+
}>;
|
|
29
|
+
handler: (agent: unknown, input: {
|
|
30
|
+
period?: string;
|
|
31
|
+
min_kols?: number;
|
|
32
|
+
limit?: number;
|
|
33
|
+
}) => Promise<{
|
|
34
|
+
status: string;
|
|
35
|
+
result: any;
|
|
36
|
+
message?: undefined;
|
|
37
|
+
} | {
|
|
38
|
+
status: string;
|
|
39
|
+
message: string;
|
|
40
|
+
result?: undefined;
|
|
41
|
+
}>;
|
|
42
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { kolTrendingTokens } from "../tools/index.js";
|
|
3
|
+
export const kolTrendingTokensAction = {
|
|
4
|
+
name: "MADEONSOL_KOL_TRENDING_TOKENS_ACTION",
|
|
5
|
+
similes: ["trending tokens", "kol volume", "what are kols buying now", "hot buys", "kol capital flow"],
|
|
6
|
+
description: "Get tokens ranked by KOL buy volume — pure capital-flow signal. Sub-hour periods (5m/15m/30m) require PRO/ULTRA. Costs $0.005 USDC per request.",
|
|
7
|
+
examples: [
|
|
8
|
+
[{ input: { period: "1h", min_kols: 2 }, output: { status: "success" }, explanation: "Get tokens with highest KOL buy volume in the last hour, with at least 2 KOLs buying" }],
|
|
9
|
+
],
|
|
10
|
+
schema: z.object({
|
|
11
|
+
period: z.enum(["5m", "15m", "30m", "1h", "2h", "4h", "12h"]).default("1h").describe("Time window"),
|
|
12
|
+
min_kols: z.number().min(1).max(20).default(1).describe("Minimum KOL buyers"),
|
|
13
|
+
limit: z.number().min(1).max(50).default(20).describe("Number of tokens"),
|
|
14
|
+
}),
|
|
15
|
+
handler: async (agent, input) => {
|
|
16
|
+
try {
|
|
17
|
+
const data = await kolTrendingTokens(agent, input);
|
|
18
|
+
return { status: "success", result: data };
|
|
19
|
+
}
|
|
20
|
+
catch (err) {
|
|
21
|
+
return { status: "error", message: err.message };
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
};
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const walletTrackerWatchlistAction: {
|
|
3
|
+
name: string;
|
|
4
|
+
similes: string[];
|
|
5
|
+
description: string;
|
|
6
|
+
examples: {
|
|
7
|
+
input: {};
|
|
8
|
+
output: {
|
|
9
|
+
status: string;
|
|
10
|
+
};
|
|
11
|
+
explanation: string;
|
|
12
|
+
}[][];
|
|
13
|
+
schema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
|
14
|
+
handler: (agent: unknown) => Promise<{
|
|
15
|
+
status: string;
|
|
16
|
+
result: any;
|
|
17
|
+
message?: undefined;
|
|
18
|
+
} | {
|
|
19
|
+
status: string;
|
|
20
|
+
message: string;
|
|
21
|
+
result?: undefined;
|
|
22
|
+
}>;
|
|
23
|
+
};
|
|
24
|
+
export declare const walletTrackerAddAction: {
|
|
25
|
+
name: string;
|
|
26
|
+
similes: string[];
|
|
27
|
+
description: string;
|
|
28
|
+
examples: {
|
|
29
|
+
input: {
|
|
30
|
+
wallet_address: string;
|
|
31
|
+
label: string;
|
|
32
|
+
};
|
|
33
|
+
output: {
|
|
34
|
+
status: string;
|
|
35
|
+
};
|
|
36
|
+
explanation: string;
|
|
37
|
+
}[][];
|
|
38
|
+
schema: z.ZodObject<{
|
|
39
|
+
wallet_address: z.ZodString;
|
|
40
|
+
label: z.ZodOptional<z.ZodString>;
|
|
41
|
+
}, "strip", z.ZodTypeAny, {
|
|
42
|
+
wallet_address: string;
|
|
43
|
+
label?: string | undefined;
|
|
44
|
+
}, {
|
|
45
|
+
wallet_address: string;
|
|
46
|
+
label?: string | undefined;
|
|
47
|
+
}>;
|
|
48
|
+
handler: (agent: unknown, input: {
|
|
49
|
+
wallet_address: string;
|
|
50
|
+
label?: string;
|
|
51
|
+
}) => Promise<{
|
|
52
|
+
status: string;
|
|
53
|
+
result: any;
|
|
54
|
+
message?: undefined;
|
|
55
|
+
} | {
|
|
56
|
+
status: string;
|
|
57
|
+
message: string;
|
|
58
|
+
result?: undefined;
|
|
59
|
+
}>;
|
|
60
|
+
};
|
|
61
|
+
export declare const walletTrackerRemoveAction: {
|
|
62
|
+
name: string;
|
|
63
|
+
similes: string[];
|
|
64
|
+
description: string;
|
|
65
|
+
examples: {
|
|
66
|
+
input: {
|
|
67
|
+
wallet_address: string;
|
|
68
|
+
};
|
|
69
|
+
output: {
|
|
70
|
+
status: string;
|
|
71
|
+
};
|
|
72
|
+
explanation: string;
|
|
73
|
+
}[][];
|
|
74
|
+
schema: z.ZodObject<{
|
|
75
|
+
wallet_address: z.ZodString;
|
|
76
|
+
}, "strip", z.ZodTypeAny, {
|
|
77
|
+
wallet_address: string;
|
|
78
|
+
}, {
|
|
79
|
+
wallet_address: string;
|
|
80
|
+
}>;
|
|
81
|
+
handler: (agent: unknown, input: {
|
|
82
|
+
wallet_address: string;
|
|
83
|
+
}) => Promise<{
|
|
84
|
+
status: string;
|
|
85
|
+
result: any;
|
|
86
|
+
message?: undefined;
|
|
87
|
+
} | {
|
|
88
|
+
status: string;
|
|
89
|
+
message: string;
|
|
90
|
+
result?: undefined;
|
|
91
|
+
}>;
|
|
92
|
+
};
|
|
93
|
+
export declare const walletTrackerTradesAction: {
|
|
94
|
+
name: string;
|
|
95
|
+
similes: string[];
|
|
96
|
+
description: string;
|
|
97
|
+
examples: {
|
|
98
|
+
input: {
|
|
99
|
+
limit: number;
|
|
100
|
+
};
|
|
101
|
+
output: {
|
|
102
|
+
status: string;
|
|
103
|
+
};
|
|
104
|
+
explanation: string;
|
|
105
|
+
}[][];
|
|
106
|
+
schema: z.ZodObject<{
|
|
107
|
+
wallet: z.ZodOptional<z.ZodString>;
|
|
108
|
+
action: z.ZodOptional<z.ZodEnum<["buy", "sell", "transfer_in", "transfer_out"]>>;
|
|
109
|
+
event_type: z.ZodOptional<z.ZodEnum<["swap", "transfer"]>>;
|
|
110
|
+
limit: z.ZodDefault<z.ZodNumber>;
|
|
111
|
+
before: z.ZodOptional<z.ZodNumber>;
|
|
112
|
+
}, "strip", z.ZodTypeAny, {
|
|
113
|
+
limit: number;
|
|
114
|
+
wallet?: string | undefined;
|
|
115
|
+
action?: "buy" | "sell" | "transfer_in" | "transfer_out" | undefined;
|
|
116
|
+
event_type?: "swap" | "transfer" | undefined;
|
|
117
|
+
before?: number | undefined;
|
|
118
|
+
}, {
|
|
119
|
+
wallet?: string | undefined;
|
|
120
|
+
action?: "buy" | "sell" | "transfer_in" | "transfer_out" | undefined;
|
|
121
|
+
event_type?: "swap" | "transfer" | undefined;
|
|
122
|
+
limit?: number | undefined;
|
|
123
|
+
before?: number | undefined;
|
|
124
|
+
}>;
|
|
125
|
+
handler: (agent: unknown, input: {
|
|
126
|
+
wallet?: string;
|
|
127
|
+
action?: string;
|
|
128
|
+
event_type?: string;
|
|
129
|
+
limit?: number;
|
|
130
|
+
before?: number;
|
|
131
|
+
}) => Promise<{
|
|
132
|
+
status: string;
|
|
133
|
+
result: any;
|
|
134
|
+
message?: undefined;
|
|
135
|
+
} | {
|
|
136
|
+
status: string;
|
|
137
|
+
message: string;
|
|
138
|
+
result?: undefined;
|
|
139
|
+
}>;
|
|
140
|
+
};
|
|
141
|
+
export declare const walletTrackerSummaryAction: {
|
|
142
|
+
name: string;
|
|
143
|
+
similes: string[];
|
|
144
|
+
description: string;
|
|
145
|
+
examples: {
|
|
146
|
+
input: {
|
|
147
|
+
period: string;
|
|
148
|
+
};
|
|
149
|
+
output: {
|
|
150
|
+
status: string;
|
|
151
|
+
};
|
|
152
|
+
explanation: string;
|
|
153
|
+
}[][];
|
|
154
|
+
schema: z.ZodObject<{
|
|
155
|
+
period: z.ZodDefault<z.ZodEnum<["24h", "7d", "30d"]>>;
|
|
156
|
+
wallet: z.ZodOptional<z.ZodString>;
|
|
157
|
+
}, "strip", z.ZodTypeAny, {
|
|
158
|
+
period: "24h" | "7d" | "30d";
|
|
159
|
+
wallet?: string | undefined;
|
|
160
|
+
}, {
|
|
161
|
+
wallet?: string | undefined;
|
|
162
|
+
period?: "24h" | "7d" | "30d" | undefined;
|
|
163
|
+
}>;
|
|
164
|
+
handler: (agent: unknown, input: {
|
|
165
|
+
period?: string;
|
|
166
|
+
wallet?: string;
|
|
167
|
+
}) => Promise<{
|
|
168
|
+
status: string;
|
|
169
|
+
result: any;
|
|
170
|
+
message?: undefined;
|
|
171
|
+
} | {
|
|
172
|
+
status: string;
|
|
173
|
+
message: string;
|
|
174
|
+
result?: undefined;
|
|
175
|
+
}>;
|
|
176
|
+
};
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { walletTrackerWatchlist, walletTrackerAdd, walletTrackerRemove, walletTrackerTrades, walletTrackerSummary } from "../tools/index.js";
|
|
3
|
+
export const walletTrackerWatchlistAction = {
|
|
4
|
+
name: "MADEONSOL_WALLET_TRACKER_WATCHLIST_ACTION",
|
|
5
|
+
similes: ["wallet watchlist", "tracked wallets", "my watchlist", "wallet tracker list"],
|
|
6
|
+
description: "List wallets in your MadeOnSol watchlist with labels and remaining capacity.",
|
|
7
|
+
examples: [
|
|
8
|
+
[{ input: {}, output: { status: "success" }, explanation: "Get your tracked wallet list" }],
|
|
9
|
+
],
|
|
10
|
+
schema: z.object({}),
|
|
11
|
+
handler: async (agent) => {
|
|
12
|
+
try {
|
|
13
|
+
const data = await walletTrackerWatchlist(agent);
|
|
14
|
+
return { status: "success", result: data };
|
|
15
|
+
}
|
|
16
|
+
catch (err) {
|
|
17
|
+
return { status: "error", message: err.message };
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
export const walletTrackerAddAction = {
|
|
22
|
+
name: "MADEONSOL_WALLET_TRACKER_ADD_ACTION",
|
|
23
|
+
similes: ["track wallet", "add wallet to watchlist", "watch wallet", "monitor wallet"],
|
|
24
|
+
description: "Add a Solana wallet to your MadeOnSol watchlist for swap/transfer tracking.",
|
|
25
|
+
examples: [
|
|
26
|
+
[{ input: { wallet_address: "ABC...xyz", label: "whale #1" }, output: { status: "success" }, explanation: "Add a wallet to watchlist" }],
|
|
27
|
+
],
|
|
28
|
+
schema: z.object({
|
|
29
|
+
wallet_address: z.string().describe("Solana wallet address (base58) to track"),
|
|
30
|
+
label: z.string().optional().describe("Optional human-readable label"),
|
|
31
|
+
}),
|
|
32
|
+
handler: async (agent, input) => {
|
|
33
|
+
try {
|
|
34
|
+
const data = await walletTrackerAdd(agent, input);
|
|
35
|
+
return { status: "success", result: data };
|
|
36
|
+
}
|
|
37
|
+
catch (err) {
|
|
38
|
+
return { status: "error", message: err.message };
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
export const walletTrackerRemoveAction = {
|
|
43
|
+
name: "MADEONSOL_WALLET_TRACKER_REMOVE_ACTION",
|
|
44
|
+
similes: ["untrack wallet", "remove wallet from watchlist", "stop watching wallet"],
|
|
45
|
+
description: "Remove a Solana wallet from your MadeOnSol watchlist.",
|
|
46
|
+
examples: [
|
|
47
|
+
[{ input: { wallet_address: "ABC...xyz" }, output: { status: "success" }, explanation: "Remove a wallet from watchlist" }],
|
|
48
|
+
],
|
|
49
|
+
schema: z.object({
|
|
50
|
+
wallet_address: z.string().describe("Solana wallet address (base58) to remove"),
|
|
51
|
+
}),
|
|
52
|
+
handler: async (agent, input) => {
|
|
53
|
+
try {
|
|
54
|
+
const data = await walletTrackerRemove(agent, input);
|
|
55
|
+
return { status: "success", result: data };
|
|
56
|
+
}
|
|
57
|
+
catch (err) {
|
|
58
|
+
return { status: "error", message: err.message };
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
export const walletTrackerTradesAction = {
|
|
63
|
+
name: "MADEONSOL_WALLET_TRACKER_TRADES_ACTION",
|
|
64
|
+
similes: ["wallet tracker trades", "tracked wallet trades", "watchlist activity", "wallet swaps", "wallet transfers"],
|
|
65
|
+
description: "Get recent swap and transfer events from wallets in your MadeOnSol watchlist.",
|
|
66
|
+
examples: [
|
|
67
|
+
[{ input: { limit: 20 }, output: { status: "success" }, explanation: "Get recent trades from tracked wallets" }],
|
|
68
|
+
],
|
|
69
|
+
schema: z.object({
|
|
70
|
+
wallet: z.string().optional().describe("Filter to a specific wallet address"),
|
|
71
|
+
action: z.enum(["buy", "sell", "transfer_in", "transfer_out"]).optional().describe("Filter by action type"),
|
|
72
|
+
event_type: z.enum(["swap", "transfer"]).optional().describe("Filter by event type"),
|
|
73
|
+
limit: z.number().min(1).max(200).default(50).describe("Max results (1-200)"),
|
|
74
|
+
before: z.number().optional().describe("Pagination cursor: block_time of last event"),
|
|
75
|
+
}),
|
|
76
|
+
handler: async (agent, input) => {
|
|
77
|
+
try {
|
|
78
|
+
const data = await walletTrackerTrades(agent, input);
|
|
79
|
+
return { status: "success", result: data };
|
|
80
|
+
}
|
|
81
|
+
catch (err) {
|
|
82
|
+
return { status: "error", message: err.message };
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
};
|
|
86
|
+
export const walletTrackerSummaryAction = {
|
|
87
|
+
name: "MADEONSOL_WALLET_TRACKER_SUMMARY_ACTION",
|
|
88
|
+
similes: ["wallet tracker summary", "tracked wallet stats", "watchlist summary", "wallet activity stats"],
|
|
89
|
+
description: "Get per-wallet stats (swap counts, SOL bought/sold, last activity) for your MadeOnSol watchlist.",
|
|
90
|
+
examples: [
|
|
91
|
+
[{ input: { period: "7d" }, output: { status: "success" }, explanation: "Get 7d stats for all tracked wallets" }],
|
|
92
|
+
],
|
|
93
|
+
schema: z.object({
|
|
94
|
+
period: z.enum(["24h", "7d", "30d"]).default("7d").describe("Time window for stats"),
|
|
95
|
+
wallet: z.string().optional().describe("Filter to a specific wallet address"),
|
|
96
|
+
}),
|
|
97
|
+
handler: async (agent, input) => {
|
|
98
|
+
try {
|
|
99
|
+
const data = await walletTrackerSummary(agent, input);
|
|
100
|
+
return { status: "success", result: data };
|
|
101
|
+
}
|
|
102
|
+
catch (err) {
|
|
103
|
+
return { status: "error", message: err.message };
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
};
|
package/dist/index.d.ts
CHANGED
|
@@ -2,7 +2,10 @@ import { kolFeedAction } from "./actions/kolFeed.js";
|
|
|
2
2
|
import { kolCoordinationAction } from "./actions/kolCoordination.js";
|
|
3
3
|
import { kolLeaderboardAction } from "./actions/kolLeaderboard.js";
|
|
4
4
|
import { deployerAlertsAction } from "./actions/deployerAlerts.js";
|
|
5
|
-
import {
|
|
5
|
+
import { kolPnlAction } from "./actions/kolPnl.js";
|
|
6
|
+
import { kolTrendingTokensAction } from "./actions/kolTrendingTokens.js";
|
|
7
|
+
import { walletTrackerWatchlistAction, walletTrackerAddAction, walletTrackerRemoveAction, walletTrackerTradesAction, walletTrackerSummaryAction } from "./actions/walletTracker.js";
|
|
8
|
+
import { kolFeed, kolCoordination, kolLeaderboard, deployerAlerts, kolPnl, kolTrendingTokens, createWebhook, listWebhooks, deleteWebhook, testWebhook, getStreamToken, walletTrackerWatchlist, walletTrackerAdd, walletTrackerRemove, walletTrackerTrades, walletTrackerSummary } from "./tools/index.js";
|
|
6
9
|
declare const MadeOnSolPlugin: {
|
|
7
10
|
name: string;
|
|
8
11
|
methods: {
|
|
@@ -10,11 +13,18 @@ declare const MadeOnSolPlugin: {
|
|
|
10
13
|
kolCoordination: typeof kolCoordination;
|
|
11
14
|
kolLeaderboard: typeof kolLeaderboard;
|
|
12
15
|
deployerAlerts: typeof deployerAlerts;
|
|
16
|
+
kolPnl: typeof kolPnl;
|
|
17
|
+
kolTrendingTokens: typeof kolTrendingTokens;
|
|
13
18
|
createWebhook: typeof createWebhook;
|
|
14
19
|
listWebhooks: typeof listWebhooks;
|
|
15
20
|
deleteWebhook: typeof deleteWebhook;
|
|
16
21
|
testWebhook: typeof testWebhook;
|
|
17
22
|
getStreamToken: typeof getStreamToken;
|
|
23
|
+
walletTrackerWatchlist: typeof walletTrackerWatchlist;
|
|
24
|
+
walletTrackerAdd: typeof walletTrackerAdd;
|
|
25
|
+
walletTrackerRemove: typeof walletTrackerRemove;
|
|
26
|
+
walletTrackerTrades: typeof walletTrackerTrades;
|
|
27
|
+
walletTrackerSummary: typeof walletTrackerSummary;
|
|
18
28
|
};
|
|
19
29
|
actions: ({
|
|
20
30
|
name: string;
|
|
@@ -39,8 +49,8 @@ declare const MadeOnSolPlugin: {
|
|
|
39
49
|
action?: "buy" | "sell" | undefined;
|
|
40
50
|
kol?: string | undefined;
|
|
41
51
|
}, {
|
|
42
|
-
limit?: number | undefined;
|
|
43
52
|
action?: "buy" | "sell" | undefined;
|
|
53
|
+
limit?: number | undefined;
|
|
44
54
|
kol?: string | undefined;
|
|
45
55
|
}>;
|
|
46
56
|
handler: (agent: unknown, input: {
|
|
@@ -175,9 +185,256 @@ declare const MadeOnSolPlugin: {
|
|
|
175
185
|
message: string;
|
|
176
186
|
result?: undefined;
|
|
177
187
|
}>;
|
|
188
|
+
} | {
|
|
189
|
+
name: string;
|
|
190
|
+
similes: string[];
|
|
191
|
+
description: string;
|
|
192
|
+
examples: {
|
|
193
|
+
input: {
|
|
194
|
+
wallet: string;
|
|
195
|
+
period: string;
|
|
196
|
+
};
|
|
197
|
+
output: {
|
|
198
|
+
status: string;
|
|
199
|
+
};
|
|
200
|
+
explanation: string;
|
|
201
|
+
}[][];
|
|
202
|
+
schema: import("zod").ZodObject<{
|
|
203
|
+
wallet: import("zod").ZodString;
|
|
204
|
+
period: import("zod").ZodDefault<import("zod").ZodEnum<["7d", "30d", "90d", "180d"]>>;
|
|
205
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
206
|
+
wallet: string;
|
|
207
|
+
period: "7d" | "30d" | "90d" | "180d";
|
|
208
|
+
}, {
|
|
209
|
+
wallet: string;
|
|
210
|
+
period?: "7d" | "30d" | "90d" | "180d" | undefined;
|
|
211
|
+
}>;
|
|
212
|
+
handler: (agent: unknown, input: {
|
|
213
|
+
wallet: string;
|
|
214
|
+
period?: string;
|
|
215
|
+
}) => Promise<{
|
|
216
|
+
status: string;
|
|
217
|
+
result: any;
|
|
218
|
+
message?: undefined;
|
|
219
|
+
} | {
|
|
220
|
+
status: string;
|
|
221
|
+
message: string;
|
|
222
|
+
result?: undefined;
|
|
223
|
+
}>;
|
|
224
|
+
} | {
|
|
225
|
+
name: string;
|
|
226
|
+
similes: string[];
|
|
227
|
+
description: string;
|
|
228
|
+
examples: {
|
|
229
|
+
input: {
|
|
230
|
+
period: string;
|
|
231
|
+
min_kols: number;
|
|
232
|
+
};
|
|
233
|
+
output: {
|
|
234
|
+
status: string;
|
|
235
|
+
};
|
|
236
|
+
explanation: string;
|
|
237
|
+
}[][];
|
|
238
|
+
schema: import("zod").ZodObject<{
|
|
239
|
+
period: import("zod").ZodDefault<import("zod").ZodEnum<["5m", "15m", "30m", "1h", "2h", "4h", "12h"]>>;
|
|
240
|
+
min_kols: import("zod").ZodDefault<import("zod").ZodNumber>;
|
|
241
|
+
limit: import("zod").ZodDefault<import("zod").ZodNumber>;
|
|
242
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
243
|
+
limit: number;
|
|
244
|
+
period: "1h" | "5m" | "15m" | "30m" | "2h" | "4h" | "12h";
|
|
245
|
+
min_kols: number;
|
|
246
|
+
}, {
|
|
247
|
+
limit?: number | undefined;
|
|
248
|
+
period?: "1h" | "5m" | "15m" | "30m" | "2h" | "4h" | "12h" | undefined;
|
|
249
|
+
min_kols?: number | undefined;
|
|
250
|
+
}>;
|
|
251
|
+
handler: (agent: unknown, input: {
|
|
252
|
+
period?: string;
|
|
253
|
+
min_kols?: number;
|
|
254
|
+
limit?: number;
|
|
255
|
+
}) => Promise<{
|
|
256
|
+
status: string;
|
|
257
|
+
result: any;
|
|
258
|
+
message?: undefined;
|
|
259
|
+
} | {
|
|
260
|
+
status: string;
|
|
261
|
+
message: string;
|
|
262
|
+
result?: undefined;
|
|
263
|
+
}>;
|
|
264
|
+
} | {
|
|
265
|
+
name: string;
|
|
266
|
+
similes: string[];
|
|
267
|
+
description: string;
|
|
268
|
+
examples: {
|
|
269
|
+
input: {};
|
|
270
|
+
output: {
|
|
271
|
+
status: string;
|
|
272
|
+
};
|
|
273
|
+
explanation: string;
|
|
274
|
+
}[][];
|
|
275
|
+
schema: import("zod").ZodObject<{}, "strip", import("zod").ZodTypeAny, {}, {}>;
|
|
276
|
+
handler: (agent: unknown) => Promise<{
|
|
277
|
+
status: string;
|
|
278
|
+
result: any;
|
|
279
|
+
message?: undefined;
|
|
280
|
+
} | {
|
|
281
|
+
status: string;
|
|
282
|
+
message: string;
|
|
283
|
+
result?: undefined;
|
|
284
|
+
}>;
|
|
285
|
+
} | {
|
|
286
|
+
name: string;
|
|
287
|
+
similes: string[];
|
|
288
|
+
description: string;
|
|
289
|
+
examples: {
|
|
290
|
+
input: {
|
|
291
|
+
wallet_address: string;
|
|
292
|
+
label: string;
|
|
293
|
+
};
|
|
294
|
+
output: {
|
|
295
|
+
status: string;
|
|
296
|
+
};
|
|
297
|
+
explanation: string;
|
|
298
|
+
}[][];
|
|
299
|
+
schema: import("zod").ZodObject<{
|
|
300
|
+
wallet_address: import("zod").ZodString;
|
|
301
|
+
label: import("zod").ZodOptional<import("zod").ZodString>;
|
|
302
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
303
|
+
wallet_address: string;
|
|
304
|
+
label?: string | undefined;
|
|
305
|
+
}, {
|
|
306
|
+
wallet_address: string;
|
|
307
|
+
label?: string | undefined;
|
|
308
|
+
}>;
|
|
309
|
+
handler: (agent: unknown, input: {
|
|
310
|
+
wallet_address: string;
|
|
311
|
+
label?: string;
|
|
312
|
+
}) => Promise<{
|
|
313
|
+
status: string;
|
|
314
|
+
result: any;
|
|
315
|
+
message?: undefined;
|
|
316
|
+
} | {
|
|
317
|
+
status: string;
|
|
318
|
+
message: string;
|
|
319
|
+
result?: undefined;
|
|
320
|
+
}>;
|
|
321
|
+
} | {
|
|
322
|
+
name: string;
|
|
323
|
+
similes: string[];
|
|
324
|
+
description: string;
|
|
325
|
+
examples: {
|
|
326
|
+
input: {
|
|
327
|
+
wallet_address: string;
|
|
328
|
+
};
|
|
329
|
+
output: {
|
|
330
|
+
status: string;
|
|
331
|
+
};
|
|
332
|
+
explanation: string;
|
|
333
|
+
}[][];
|
|
334
|
+
schema: import("zod").ZodObject<{
|
|
335
|
+
wallet_address: import("zod").ZodString;
|
|
336
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
337
|
+
wallet_address: string;
|
|
338
|
+
}, {
|
|
339
|
+
wallet_address: string;
|
|
340
|
+
}>;
|
|
341
|
+
handler: (agent: unknown, input: {
|
|
342
|
+
wallet_address: string;
|
|
343
|
+
}) => Promise<{
|
|
344
|
+
status: string;
|
|
345
|
+
result: any;
|
|
346
|
+
message?: undefined;
|
|
347
|
+
} | {
|
|
348
|
+
status: string;
|
|
349
|
+
message: string;
|
|
350
|
+
result?: undefined;
|
|
351
|
+
}>;
|
|
352
|
+
} | {
|
|
353
|
+
name: string;
|
|
354
|
+
similes: string[];
|
|
355
|
+
description: string;
|
|
356
|
+
examples: {
|
|
357
|
+
input: {
|
|
358
|
+
limit: number;
|
|
359
|
+
};
|
|
360
|
+
output: {
|
|
361
|
+
status: string;
|
|
362
|
+
};
|
|
363
|
+
explanation: string;
|
|
364
|
+
}[][];
|
|
365
|
+
schema: import("zod").ZodObject<{
|
|
366
|
+
wallet: import("zod").ZodOptional<import("zod").ZodString>;
|
|
367
|
+
action: import("zod").ZodOptional<import("zod").ZodEnum<["buy", "sell", "transfer_in", "transfer_out"]>>;
|
|
368
|
+
event_type: import("zod").ZodOptional<import("zod").ZodEnum<["swap", "transfer"]>>;
|
|
369
|
+
limit: import("zod").ZodDefault<import("zod").ZodNumber>;
|
|
370
|
+
before: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
371
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
372
|
+
limit: number;
|
|
373
|
+
wallet?: string | undefined;
|
|
374
|
+
action?: "buy" | "sell" | "transfer_in" | "transfer_out" | undefined;
|
|
375
|
+
event_type?: "swap" | "transfer" | undefined;
|
|
376
|
+
before?: number | undefined;
|
|
377
|
+
}, {
|
|
378
|
+
wallet?: string | undefined;
|
|
379
|
+
action?: "buy" | "sell" | "transfer_in" | "transfer_out" | undefined;
|
|
380
|
+
event_type?: "swap" | "transfer" | undefined;
|
|
381
|
+
limit?: number | undefined;
|
|
382
|
+
before?: number | undefined;
|
|
383
|
+
}>;
|
|
384
|
+
handler: (agent: unknown, input: {
|
|
385
|
+
wallet?: string;
|
|
386
|
+
action?: string;
|
|
387
|
+
event_type?: string;
|
|
388
|
+
limit?: number;
|
|
389
|
+
before?: number;
|
|
390
|
+
}) => Promise<{
|
|
391
|
+
status: string;
|
|
392
|
+
result: any;
|
|
393
|
+
message?: undefined;
|
|
394
|
+
} | {
|
|
395
|
+
status: string;
|
|
396
|
+
message: string;
|
|
397
|
+
result?: undefined;
|
|
398
|
+
}>;
|
|
399
|
+
} | {
|
|
400
|
+
name: string;
|
|
401
|
+
similes: string[];
|
|
402
|
+
description: string;
|
|
403
|
+
examples: {
|
|
404
|
+
input: {
|
|
405
|
+
period: string;
|
|
406
|
+
};
|
|
407
|
+
output: {
|
|
408
|
+
status: string;
|
|
409
|
+
};
|
|
410
|
+
explanation: string;
|
|
411
|
+
}[][];
|
|
412
|
+
schema: import("zod").ZodObject<{
|
|
413
|
+
period: import("zod").ZodDefault<import("zod").ZodEnum<["24h", "7d", "30d"]>>;
|
|
414
|
+
wallet: import("zod").ZodOptional<import("zod").ZodString>;
|
|
415
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
416
|
+
period: "24h" | "7d" | "30d";
|
|
417
|
+
wallet?: string | undefined;
|
|
418
|
+
}, {
|
|
419
|
+
wallet?: string | undefined;
|
|
420
|
+
period?: "24h" | "7d" | "30d" | undefined;
|
|
421
|
+
}>;
|
|
422
|
+
handler: (agent: unknown, input: {
|
|
423
|
+
period?: string;
|
|
424
|
+
wallet?: string;
|
|
425
|
+
}) => Promise<{
|
|
426
|
+
status: string;
|
|
427
|
+
result: any;
|
|
428
|
+
message?: undefined;
|
|
429
|
+
} | {
|
|
430
|
+
status: string;
|
|
431
|
+
message: string;
|
|
432
|
+
result?: undefined;
|
|
433
|
+
}>;
|
|
178
434
|
})[];
|
|
179
435
|
initialize(_agent: unknown): void;
|
|
180
436
|
};
|
|
181
437
|
export default MadeOnSolPlugin;
|
|
182
|
-
export { kolFeed, kolCoordination, kolLeaderboard, deployerAlerts, createWebhook, listWebhooks, deleteWebhook, testWebhook, getStreamToken };
|
|
183
|
-
export { kolFeedAction, kolCoordinationAction, kolLeaderboardAction, deployerAlertsAction };
|
|
438
|
+
export { kolFeed, kolCoordination, kolLeaderboard, deployerAlerts, kolPnl, kolTrendingTokens, createWebhook, listWebhooks, deleteWebhook, testWebhook, getStreamToken, walletTrackerWatchlist, walletTrackerAdd, walletTrackerRemove, walletTrackerTrades, walletTrackerSummary };
|
|
439
|
+
export { kolFeedAction, kolCoordinationAction, kolLeaderboardAction, deployerAlertsAction, kolPnlAction, kolTrendingTokensAction };
|
|
440
|
+
export { walletTrackerWatchlistAction, walletTrackerAddAction, walletTrackerRemoveAction, walletTrackerTradesAction, walletTrackerSummaryAction };
|
package/dist/index.js
CHANGED
|
@@ -2,7 +2,10 @@ import { kolFeedAction } from "./actions/kolFeed.js";
|
|
|
2
2
|
import { kolCoordinationAction } from "./actions/kolCoordination.js";
|
|
3
3
|
import { kolLeaderboardAction } from "./actions/kolLeaderboard.js";
|
|
4
4
|
import { deployerAlertsAction } from "./actions/deployerAlerts.js";
|
|
5
|
-
import {
|
|
5
|
+
import { kolPnlAction } from "./actions/kolPnl.js";
|
|
6
|
+
import { kolTrendingTokensAction } from "./actions/kolTrendingTokens.js";
|
|
7
|
+
import { walletTrackerWatchlistAction, walletTrackerAddAction, walletTrackerRemoveAction, walletTrackerTradesAction, walletTrackerSummaryAction } from "./actions/walletTracker.js";
|
|
8
|
+
import { kolFeed, kolCoordination, kolLeaderboard, deployerAlerts, kolPnl, kolTrendingTokens, createWebhook, listWebhooks, deleteWebhook, testWebhook, getStreamToken, walletTrackerWatchlist, walletTrackerAdd, walletTrackerRemove, walletTrackerTrades, walletTrackerSummary } from "./tools/index.js";
|
|
6
9
|
const MadeOnSolPlugin = {
|
|
7
10
|
name: "madeonsol",
|
|
8
11
|
methods: {
|
|
@@ -10,22 +13,37 @@ const MadeOnSolPlugin = {
|
|
|
10
13
|
kolCoordination,
|
|
11
14
|
kolLeaderboard,
|
|
12
15
|
deployerAlerts,
|
|
16
|
+
kolPnl,
|
|
17
|
+
kolTrendingTokens,
|
|
13
18
|
createWebhook,
|
|
14
19
|
listWebhooks,
|
|
15
20
|
deleteWebhook,
|
|
16
21
|
testWebhook,
|
|
17
22
|
getStreamToken,
|
|
23
|
+
walletTrackerWatchlist,
|
|
24
|
+
walletTrackerAdd,
|
|
25
|
+
walletTrackerRemove,
|
|
26
|
+
walletTrackerTrades,
|
|
27
|
+
walletTrackerSummary,
|
|
18
28
|
},
|
|
19
29
|
actions: [
|
|
20
30
|
kolFeedAction,
|
|
21
31
|
kolCoordinationAction,
|
|
22
32
|
kolLeaderboardAction,
|
|
23
33
|
deployerAlertsAction,
|
|
34
|
+
kolPnlAction,
|
|
35
|
+
kolTrendingTokensAction,
|
|
36
|
+
walletTrackerWatchlistAction,
|
|
37
|
+
walletTrackerAddAction,
|
|
38
|
+
walletTrackerRemoveAction,
|
|
39
|
+
walletTrackerTradesAction,
|
|
40
|
+
walletTrackerSummaryAction,
|
|
24
41
|
],
|
|
25
42
|
initialize(_agent) {
|
|
26
43
|
// No-op — payment setup is lazy in tool functions
|
|
27
44
|
},
|
|
28
45
|
};
|
|
29
46
|
export default MadeOnSolPlugin;
|
|
30
|
-
export { kolFeed, kolCoordination, kolLeaderboard, deployerAlerts, createWebhook, listWebhooks, deleteWebhook, testWebhook, getStreamToken };
|
|
31
|
-
export { kolFeedAction, kolCoordinationAction, kolLeaderboardAction, deployerAlertsAction };
|
|
47
|
+
export { kolFeed, kolCoordination, kolLeaderboard, deployerAlerts, kolPnl, kolTrendingTokens, createWebhook, listWebhooks, deleteWebhook, testWebhook, getStreamToken, walletTrackerWatchlist, walletTrackerAdd, walletTrackerRemove, walletTrackerTrades, walletTrackerSummary };
|
|
48
|
+
export { kolFeedAction, kolCoordinationAction, kolLeaderboardAction, deployerAlertsAction, kolPnlAction, kolTrendingTokensAction };
|
|
49
|
+
export { walletTrackerWatchlistAction, walletTrackerAddAction, walletTrackerRemoveAction, walletTrackerTradesAction, walletTrackerSummaryAction };
|
package/dist/tools/index.d.ts
CHANGED
|
@@ -42,6 +42,15 @@ export declare function kolHotTokens(agent: Agent, params?: {
|
|
|
42
42
|
min_kols?: number;
|
|
43
43
|
limit?: number;
|
|
44
44
|
}): Promise<any>;
|
|
45
|
+
export declare function kolTrendingTokens(agent: Agent, params?: {
|
|
46
|
+
period?: string;
|
|
47
|
+
min_kols?: number;
|
|
48
|
+
limit?: number;
|
|
49
|
+
}): Promise<any>;
|
|
50
|
+
export declare function kolPnl(agent: Agent, params: {
|
|
51
|
+
wallet: string;
|
|
52
|
+
period?: string;
|
|
53
|
+
}): Promise<any>;
|
|
45
54
|
export declare function kolTiming(agent: Agent, params: {
|
|
46
55
|
wallet: string;
|
|
47
56
|
period?: string;
|
|
@@ -62,4 +71,23 @@ export declare function testWebhook(agent: Agent, params: {
|
|
|
62
71
|
webhook_id: number;
|
|
63
72
|
}): Promise<any>;
|
|
64
73
|
export declare function getStreamToken(agent: Agent): Promise<any>;
|
|
74
|
+
export declare function walletTrackerWatchlist(agent: Agent): Promise<any>;
|
|
75
|
+
export declare function walletTrackerAdd(agent: Agent, params: {
|
|
76
|
+
wallet_address: string;
|
|
77
|
+
label?: string;
|
|
78
|
+
}): Promise<any>;
|
|
79
|
+
export declare function walletTrackerRemove(agent: Agent, params: {
|
|
80
|
+
wallet_address: string;
|
|
81
|
+
}): Promise<any>;
|
|
82
|
+
export declare function walletTrackerTrades(agent: Agent, params?: {
|
|
83
|
+
wallet?: string;
|
|
84
|
+
action?: string;
|
|
85
|
+
event_type?: string;
|
|
86
|
+
limit?: number;
|
|
87
|
+
before?: number;
|
|
88
|
+
}): Promise<any>;
|
|
89
|
+
export declare function walletTrackerSummary(agent: Agent, params?: {
|
|
90
|
+
period?: string;
|
|
91
|
+
wallet?: string;
|
|
92
|
+
}): Promise<any>;
|
|
65
93
|
export {};
|
package/dist/tools/index.js
CHANGED
|
@@ -102,6 +102,14 @@ export async function kolHotTokens(agent, params = {}) {
|
|
|
102
102
|
await initAuth(agent);
|
|
103
103
|
return query("/api/x402/kol/tokens/hot", params);
|
|
104
104
|
}
|
|
105
|
+
export async function kolTrendingTokens(agent, params = {}) {
|
|
106
|
+
await initAuth(agent);
|
|
107
|
+
return query("/api/x402/kol/tokens/trending", params);
|
|
108
|
+
}
|
|
109
|
+
export async function kolPnl(agent, params) {
|
|
110
|
+
const qs = params.period ? `?period=${params.period}` : "";
|
|
111
|
+
return restQuery(agent, "GET", `/kol/${params.wallet}/pnl${qs}`);
|
|
112
|
+
}
|
|
105
113
|
export async function kolTiming(agent, params) {
|
|
106
114
|
const qs = params.period ? `?period=${params.period}` : "";
|
|
107
115
|
return restQuery(agent, "GET", `/kol/${params.wallet}/timing${qs}`);
|
|
@@ -144,3 +152,41 @@ export async function testWebhook(agent, params) {
|
|
|
144
152
|
export async function getStreamToken(agent) {
|
|
145
153
|
return restQuery(agent, "POST", "/stream/token");
|
|
146
154
|
}
|
|
155
|
+
// ── Wallet Tracker ──
|
|
156
|
+
export async function walletTrackerWatchlist(agent) {
|
|
157
|
+
return restQuery(agent, "GET", "/wallet-tracker/watchlist");
|
|
158
|
+
}
|
|
159
|
+
export async function walletTrackerAdd(agent, params) {
|
|
160
|
+
return restQuery(agent, "POST", "/wallet-tracker/watchlist", params);
|
|
161
|
+
}
|
|
162
|
+
export async function walletTrackerRemove(agent, params) {
|
|
163
|
+
return restQuery(agent, "DELETE", `/wallet-tracker/watchlist/${encodeURIComponent(params.wallet_address)}`);
|
|
164
|
+
}
|
|
165
|
+
export async function walletTrackerTrades(agent, params = {}) {
|
|
166
|
+
await initAuth(agent);
|
|
167
|
+
const url = new URL(`${BASE_URL}/api/v1/wallet-tracker/trades`);
|
|
168
|
+
for (const [k, v] of Object.entries(params)) {
|
|
169
|
+
if (v !== undefined)
|
|
170
|
+
url.searchParams.set(k, String(v));
|
|
171
|
+
}
|
|
172
|
+
const res = await fetch(url.toString(), { headers: { "Content-Type": "application/json", ..._authHeaders } });
|
|
173
|
+
if (!res.ok) {
|
|
174
|
+
const text = await res.text().catch(() => "");
|
|
175
|
+
throw new Error(`MadeOnSol API error ${res.status}: ${text}`);
|
|
176
|
+
}
|
|
177
|
+
return res.json();
|
|
178
|
+
}
|
|
179
|
+
export async function walletTrackerSummary(agent, params = {}) {
|
|
180
|
+
await initAuth(agent);
|
|
181
|
+
const url = new URL(`${BASE_URL}/api/v1/wallet-tracker/summary`);
|
|
182
|
+
for (const [k, v] of Object.entries(params)) {
|
|
183
|
+
if (v !== undefined)
|
|
184
|
+
url.searchParams.set(k, v);
|
|
185
|
+
}
|
|
186
|
+
const res = await fetch(url.toString(), { headers: { "Content-Type": "application/json", ..._authHeaders } });
|
|
187
|
+
if (!res.ok) {
|
|
188
|
+
const text = await res.text().catch(() => "");
|
|
189
|
+
throw new Error(`MadeOnSol API error ${res.status}: ${text}`);
|
|
190
|
+
}
|
|
191
|
+
return res.json();
|
|
192
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "solana-agent-kit-plugin-madeonsol",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "Solana Agent Kit plugin for MadeOnSol \u00e2\u20ac\u201d KOL intelligence and deployer analytics via x402 micropayments",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|