solana-agent-kit-plugin-madeonsol 1.7.3 → 1.8.1
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 +5 -1
- package/dist/actions/wallet.d.ts +155 -0
- package/dist/actions/wallet.js +140 -0
- package/dist/index.d.ts +96 -2
- package/dist/index.js +12 -2
- package/dist/tools/index.d.ts +18 -0
- package/dist/tools/index.js +27 -0
- package/package.json +54 -54
package/README.md
CHANGED
|
@@ -88,6 +88,10 @@ const events = await agent.methods.walletTrackerTrades(agent, { limit: 50 });
|
|
|
88
88
|
| `MADEONSOL_WALLET_TRACKER_SUMMARY_ACTION` | "wallet tracker summary", "tracked wallet stats" |
|
|
89
89
|
| `MADEONSOL_ME_ACTION` | "my api account", "api quota", "remaining requests" — tier + quota introspection (new in 1.7) |
|
|
90
90
|
| `MADEONSOL_TOKENS_LIST_ACTION` | "filter tokens", "tokens by market cap", "scan tokens" — filtered/sortable token directory, PRO+ (new in 1.7) |
|
|
91
|
+
| `MADEONSOL_WALLET_STATS_ACTION` | **New 1.8** · "wallet stats", "wallet info", "check wallet" — aggregate 90d stats + cross-product flags (KOL/alpha/deployer) for any Solana wallet (PRO+) |
|
|
92
|
+
| `MADEONSOL_WALLET_PNL_ACTION` | **New 1.8** · "wallet pnl", "wallet profit", "wallet performance" — FIFO cost-basis PnL with profit factor, drawdown, daily curve, closed + open positions (PRO+) |
|
|
93
|
+
| `MADEONSOL_WALLET_POSITIONS_ACTION` | **New 1.8** · "wallet positions", "wallet bags", "open positions" — open lots with live unrealized SOL (PRO+) |
|
|
94
|
+
| `MADEONSOL_WALLET_TRADES_ACTION` | **New 1.8** · "wallet trades", "wallet history" — cursor-paginated raw trades with filters (PRO+) |
|
|
91
95
|
|
|
92
96
|
## Additional methods (v1.0+)
|
|
93
97
|
|
|
@@ -211,7 +215,7 @@ Free tier returns the full REST response shape on every endpoint — real wallet
|
|
|
211
215
|
| TypeScript SDK | [`madeonsol`](https://www.npmjs.com/package/madeonsol) on npm |
|
|
212
216
|
| Rust SDK | [`madeonsol`](https://crates.io/crates/madeonsol) on crates.io |
|
|
213
217
|
| Python (LangChain, CrewAI) | [`madeonsol-x402`](https://pypi.org/project/madeonsol-x402/) on PyPI |
|
|
214
|
-
| MCP Server (Claude, Cursor) | [`mcp-server-madeonsol`](https://www.npmjs.com/package/mcp-server-madeonsol) |
|
|
218
|
+
| MCP Server (Claude, Cursor) | [`mcp-server-madeonsol`](https://www.npmjs.com/package/mcp-server-madeonsol) · [Smithery](https://smithery.ai/servers/madeonsol/solana-kol-intelligence) · [Glama](https://glama.ai/mcp/servers/LamboPoewert/mcp-server-madeonsol) |
|
|
215
219
|
| ElizaOS | [`@madeonsol/plugin-madeonsol`](https://www.npmjs.com/package/@madeonsol/plugin-madeonsol) |
|
|
216
220
|
|
|
217
221
|
## License
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const walletStatsAction: {
|
|
3
|
+
name: string;
|
|
4
|
+
similes: string[];
|
|
5
|
+
description: string;
|
|
6
|
+
examples: {
|
|
7
|
+
input: {
|
|
8
|
+
address: string;
|
|
9
|
+
};
|
|
10
|
+
output: {
|
|
11
|
+
status: string;
|
|
12
|
+
};
|
|
13
|
+
explanation: string;
|
|
14
|
+
}[][];
|
|
15
|
+
schema: z.ZodObject<{
|
|
16
|
+
address: z.ZodString;
|
|
17
|
+
}, "strip", z.ZodTypeAny, {
|
|
18
|
+
address: string;
|
|
19
|
+
}, {
|
|
20
|
+
address: string;
|
|
21
|
+
}>;
|
|
22
|
+
handler: (agent: unknown, input: {
|
|
23
|
+
address: string;
|
|
24
|
+
}) => Promise<{
|
|
25
|
+
status: string;
|
|
26
|
+
result: any;
|
|
27
|
+
message?: undefined;
|
|
28
|
+
} | {
|
|
29
|
+
status: string;
|
|
30
|
+
message: string;
|
|
31
|
+
result?: undefined;
|
|
32
|
+
}>;
|
|
33
|
+
};
|
|
34
|
+
export declare const walletPnlAction: {
|
|
35
|
+
name: string;
|
|
36
|
+
similes: string[];
|
|
37
|
+
description: string;
|
|
38
|
+
examples: {
|
|
39
|
+
input: {
|
|
40
|
+
address: string;
|
|
41
|
+
};
|
|
42
|
+
output: {
|
|
43
|
+
status: string;
|
|
44
|
+
};
|
|
45
|
+
explanation: string;
|
|
46
|
+
}[][];
|
|
47
|
+
schema: z.ZodObject<{
|
|
48
|
+
address: z.ZodString;
|
|
49
|
+
}, "strip", z.ZodTypeAny, {
|
|
50
|
+
address: string;
|
|
51
|
+
}, {
|
|
52
|
+
address: string;
|
|
53
|
+
}>;
|
|
54
|
+
handler: (agent: unknown, input: {
|
|
55
|
+
address: string;
|
|
56
|
+
}) => Promise<{
|
|
57
|
+
status: string;
|
|
58
|
+
result: any;
|
|
59
|
+
message?: undefined;
|
|
60
|
+
} | {
|
|
61
|
+
status: string;
|
|
62
|
+
message: string;
|
|
63
|
+
result?: undefined;
|
|
64
|
+
}>;
|
|
65
|
+
};
|
|
66
|
+
export declare const walletPositionsAction: {
|
|
67
|
+
name: string;
|
|
68
|
+
similes: string[];
|
|
69
|
+
description: string;
|
|
70
|
+
examples: {
|
|
71
|
+
input: {
|
|
72
|
+
address: string;
|
|
73
|
+
};
|
|
74
|
+
output: {
|
|
75
|
+
status: string;
|
|
76
|
+
};
|
|
77
|
+
explanation: string;
|
|
78
|
+
}[][];
|
|
79
|
+
schema: z.ZodObject<{
|
|
80
|
+
address: z.ZodString;
|
|
81
|
+
}, "strip", z.ZodTypeAny, {
|
|
82
|
+
address: string;
|
|
83
|
+
}, {
|
|
84
|
+
address: string;
|
|
85
|
+
}>;
|
|
86
|
+
handler: (agent: unknown, input: {
|
|
87
|
+
address: string;
|
|
88
|
+
}) => Promise<{
|
|
89
|
+
status: string;
|
|
90
|
+
result: any;
|
|
91
|
+
message?: undefined;
|
|
92
|
+
} | {
|
|
93
|
+
status: string;
|
|
94
|
+
message: string;
|
|
95
|
+
result?: undefined;
|
|
96
|
+
}>;
|
|
97
|
+
};
|
|
98
|
+
export declare const walletTradesAction: {
|
|
99
|
+
name: string;
|
|
100
|
+
similes: string[];
|
|
101
|
+
description: string;
|
|
102
|
+
examples: {
|
|
103
|
+
input: {
|
|
104
|
+
address: string;
|
|
105
|
+
limit: number;
|
|
106
|
+
action: string;
|
|
107
|
+
};
|
|
108
|
+
output: {
|
|
109
|
+
status: string;
|
|
110
|
+
};
|
|
111
|
+
explanation: string;
|
|
112
|
+
}[][];
|
|
113
|
+
schema: z.ZodObject<{
|
|
114
|
+
address: z.ZodString;
|
|
115
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
116
|
+
cursor: z.ZodOptional<z.ZodString>;
|
|
117
|
+
action: z.ZodOptional<z.ZodEnum<["buy", "sell"]>>;
|
|
118
|
+
token_mint: z.ZodOptional<z.ZodString>;
|
|
119
|
+
since: z.ZodOptional<z.ZodNumber>;
|
|
120
|
+
until: z.ZodOptional<z.ZodNumber>;
|
|
121
|
+
}, "strip", z.ZodTypeAny, {
|
|
122
|
+
address: string;
|
|
123
|
+
limit?: number | undefined;
|
|
124
|
+
action?: "buy" | "sell" | undefined;
|
|
125
|
+
cursor?: string | undefined;
|
|
126
|
+
token_mint?: string | undefined;
|
|
127
|
+
since?: number | undefined;
|
|
128
|
+
until?: number | undefined;
|
|
129
|
+
}, {
|
|
130
|
+
address: string;
|
|
131
|
+
limit?: number | undefined;
|
|
132
|
+
action?: "buy" | "sell" | undefined;
|
|
133
|
+
cursor?: string | undefined;
|
|
134
|
+
token_mint?: string | undefined;
|
|
135
|
+
since?: number | undefined;
|
|
136
|
+
until?: number | undefined;
|
|
137
|
+
}>;
|
|
138
|
+
handler: (agent: unknown, input: {
|
|
139
|
+
address: string;
|
|
140
|
+
limit?: number;
|
|
141
|
+
cursor?: string;
|
|
142
|
+
action?: "buy" | "sell";
|
|
143
|
+
token_mint?: string;
|
|
144
|
+
since?: number;
|
|
145
|
+
until?: number;
|
|
146
|
+
}) => Promise<{
|
|
147
|
+
status: string;
|
|
148
|
+
result: any;
|
|
149
|
+
message?: undefined;
|
|
150
|
+
} | {
|
|
151
|
+
status: string;
|
|
152
|
+
message: string;
|
|
153
|
+
result?: undefined;
|
|
154
|
+
}>;
|
|
155
|
+
};
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { walletStats, walletPnl, walletPositions, walletTrades } from "../tools/index.js";
|
|
3
|
+
export const walletStatsAction = {
|
|
4
|
+
name: "MADEONSOL_WALLET_STATS_ACTION",
|
|
5
|
+
similes: [
|
|
6
|
+
"wallet stats",
|
|
7
|
+
"wallet info",
|
|
8
|
+
"wallet profile",
|
|
9
|
+
"check wallet",
|
|
10
|
+
"wallet cross-product flags",
|
|
11
|
+
"is wallet a kol or deployer",
|
|
12
|
+
],
|
|
13
|
+
description: "Get aggregate stats for any Solana wallet over the last 90 days (trade count, buys/sells split, SOL in/out, unique tokens) plus cross-product flags from kol_wallets, mv_alpha_wallets (incl. bot_confidence), and deployers. Works on any wallet — not just curated KOLs. PRO+.",
|
|
14
|
+
examples: [
|
|
15
|
+
[
|
|
16
|
+
{
|
|
17
|
+
input: { address: "ASVzakePP6GNg9r95d4LPZHJDMXun6L6E4um4pu5ybJk" },
|
|
18
|
+
output: { status: "success" },
|
|
19
|
+
explanation: "Get stats + flags for a wallet",
|
|
20
|
+
},
|
|
21
|
+
],
|
|
22
|
+
],
|
|
23
|
+
schema: z.object({
|
|
24
|
+
address: z.string().describe("Solana wallet address (base58, 32-44 chars)"),
|
|
25
|
+
}),
|
|
26
|
+
handler: async (agent, input) => {
|
|
27
|
+
try {
|
|
28
|
+
const data = await walletStats(agent, input);
|
|
29
|
+
return { status: "success", result: data };
|
|
30
|
+
}
|
|
31
|
+
catch (err) {
|
|
32
|
+
return { status: "error", message: err.message };
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
export const walletPnlAction = {
|
|
37
|
+
name: "MADEONSOL_WALLET_PNL_ACTION",
|
|
38
|
+
similes: [
|
|
39
|
+
"wallet pnl",
|
|
40
|
+
"wallet profit and loss",
|
|
41
|
+
"is wallet profitable",
|
|
42
|
+
"wallet performance",
|
|
43
|
+
"wallet win rate",
|
|
44
|
+
"wallet equity curve",
|
|
45
|
+
"wallet best trades",
|
|
46
|
+
],
|
|
47
|
+
description: "Get full FIFO cost-basis PnL for any Solana wallet: realized + unrealized SOL, profit factor, max drawdown, avg + median hold minutes, daily UTC PnL curve, closed positions sorted by pnl desc (with ROI %, hold time, win/loss/breakeven), and open positions hydrated with current prices from the market-cap tracker. Cached in wallet_analyses with dynamic TTL (5min/1h/24h based on activity). Cache hits don't count against your daily quota. Cost basis only observable in the 90-day data window — overflow sells are silently discarded rather than fabricated. PRO+.",
|
|
48
|
+
examples: [
|
|
49
|
+
[
|
|
50
|
+
{
|
|
51
|
+
input: { address: "ASVzakePP6GNg9r95d4LPZHJDMXun6L6E4um4pu5ybJk" },
|
|
52
|
+
output: { status: "success" },
|
|
53
|
+
explanation: "Full PnL breakdown for the wallet",
|
|
54
|
+
},
|
|
55
|
+
],
|
|
56
|
+
],
|
|
57
|
+
schema: z.object({
|
|
58
|
+
address: z.string().describe("Solana wallet address"),
|
|
59
|
+
}),
|
|
60
|
+
handler: async (agent, input) => {
|
|
61
|
+
try {
|
|
62
|
+
const data = await walletPnl(agent, input);
|
|
63
|
+
return { status: "success", result: data };
|
|
64
|
+
}
|
|
65
|
+
catch (err) {
|
|
66
|
+
return { status: "error", message: err.message };
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
export const walletPositionsAction = {
|
|
71
|
+
name: "MADEONSOL_WALLET_POSITIONS_ACTION",
|
|
72
|
+
similes: [
|
|
73
|
+
"wallet positions",
|
|
74
|
+
"wallet holdings",
|
|
75
|
+
"wallet open bags",
|
|
76
|
+
"what does wallet hold",
|
|
77
|
+
"wallet active positions",
|
|
78
|
+
"wallet unrealized pnl",
|
|
79
|
+
],
|
|
80
|
+
description: "Open positions only for any Solana wallet — lighter slice of MADEONSOL_WALLET_PNL_ACTION for use cases that don't need the full PnL summary or curve. Each position carries token_mint, token_amount, cost_basis_sol, avg_entry_price_sol, current_price_sol (live from mc-tracker; null if delisted), current_value_sol, unrealized_sol, unrealized_pct, first_buy_at. Shares the /pnl cache. PRO+.",
|
|
81
|
+
examples: [
|
|
82
|
+
[
|
|
83
|
+
{
|
|
84
|
+
input: { address: "ASVzakePP6GNg9r95d4LPZHJDMXun6L6E4um4pu5ybJk" },
|
|
85
|
+
output: { status: "success" },
|
|
86
|
+
explanation: "List the wallet's open positions",
|
|
87
|
+
},
|
|
88
|
+
],
|
|
89
|
+
],
|
|
90
|
+
schema: z.object({
|
|
91
|
+
address: z.string().describe("Solana wallet address"),
|
|
92
|
+
}),
|
|
93
|
+
handler: async (agent, input) => {
|
|
94
|
+
try {
|
|
95
|
+
const data = await walletPositions(agent, input);
|
|
96
|
+
return { status: "success", result: data };
|
|
97
|
+
}
|
|
98
|
+
catch (err) {
|
|
99
|
+
return { status: "error", message: err.message };
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
};
|
|
103
|
+
export const walletTradesAction = {
|
|
104
|
+
name: "MADEONSOL_WALLET_TRADES_ACTION",
|
|
105
|
+
similes: [
|
|
106
|
+
"wallet trades",
|
|
107
|
+
"wallet trade history",
|
|
108
|
+
"wallet activity",
|
|
109
|
+
"recent trades of wallet",
|
|
110
|
+
"paginated wallet trades",
|
|
111
|
+
],
|
|
112
|
+
description: "Cursor-paginated raw trades for any Solana wallet. Filter by action (buy/sell), token_mint, and time window (since/until Unix seconds; default last 90 days). Cursor encodes (block_time, id) for stable DESC pagination — pass next_cursor from the previous response to fetch older trades. Limit 1-500 (default 100). PRO+.",
|
|
113
|
+
examples: [
|
|
114
|
+
[
|
|
115
|
+
{
|
|
116
|
+
input: { address: "ASVzakePP6GNg9r95d4LPZHJDMXun6L6E4um4pu5ybJk", limit: 50, action: "buy" },
|
|
117
|
+
output: { status: "success" },
|
|
118
|
+
explanation: "Get 50 recent buys for the wallet",
|
|
119
|
+
},
|
|
120
|
+
],
|
|
121
|
+
],
|
|
122
|
+
schema: z.object({
|
|
123
|
+
address: z.string().describe("Solana wallet address"),
|
|
124
|
+
limit: z.number().min(1).max(500).optional().describe("Trades per page (1-500, default 100)"),
|
|
125
|
+
cursor: z.string().optional().describe("Cursor from previous response's next_cursor field"),
|
|
126
|
+
action: z.enum(["buy", "sell"]).optional().describe("Filter to buys or sells only"),
|
|
127
|
+
token_mint: z.string().optional().describe("Filter to a single token mint"),
|
|
128
|
+
since: z.number().optional().describe("Unix epoch seconds — default now-90d"),
|
|
129
|
+
until: z.number().optional().describe("Unix epoch seconds — default now"),
|
|
130
|
+
}),
|
|
131
|
+
handler: async (agent, input) => {
|
|
132
|
+
try {
|
|
133
|
+
const data = await walletTrades(agent, input);
|
|
134
|
+
return { status: "success", result: data };
|
|
135
|
+
}
|
|
136
|
+
catch (err) {
|
|
137
|
+
return { status: "error", message: err.message };
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
};
|
package/dist/index.d.ts
CHANGED
|
@@ -11,7 +11,8 @@ import { kolAlertsRecentAction } from "./actions/kolAlertsRecent.js";
|
|
|
11
11
|
import { kolFirstTouchesAction } from "./actions/kolFirstTouches.js";
|
|
12
12
|
import { meAction } from "./actions/me.js";
|
|
13
13
|
import { tokensListAction } from "./actions/tokensList.js";
|
|
14
|
-
import { kolFeed, kolCoordination, kolLeaderboard, deployerAlerts, kolPnl, kolTrendingTokens, kolTokenEntryOrder, kolCompare, kolAlertsRecent, createWebhook, listWebhooks, deleteWebhook, testWebhook, getStreamToken, walletTrackerWatchlist, walletTrackerAdd, walletTrackerRemove, walletTrackerTrades, walletTrackerSummary, alphaLeaderboard, alphaWallet, alphaLinked, tokenCapTable, tokenBuyerQuality, copyTradeList, copyTradeCreate, copyTradeGet, copyTradeUpdate, copyTradeDelete, copyTradeSignals, coordinationAlertsList, coordinationAlertsCreate, coordinationAlertsGet, coordinationAlertsUpdate, coordinationAlertsDelete, kolFirstTouches, firstTouchSubscriptionsList, firstTouchSubscriptionsCreate, firstTouchSubscriptionsGet, firstTouchSubscriptionsUpdate, firstTouchSubscriptionsDelete, me, tokensList } from "./tools/index.js";
|
|
14
|
+
import { kolFeed, kolCoordination, kolLeaderboard, deployerAlerts, kolPnl, kolTrendingTokens, kolTokenEntryOrder, kolCompare, kolAlertsRecent, createWebhook, listWebhooks, deleteWebhook, testWebhook, getStreamToken, walletTrackerWatchlist, walletTrackerAdd, walletTrackerRemove, walletTrackerTrades, walletTrackerSummary, alphaLeaderboard, alphaWallet, alphaLinked, tokenCapTable, tokenBuyerQuality, copyTradeList, copyTradeCreate, copyTradeGet, copyTradeUpdate, copyTradeDelete, copyTradeSignals, coordinationAlertsList, coordinationAlertsCreate, coordinationAlertsGet, coordinationAlertsUpdate, coordinationAlertsDelete, kolFirstTouches, firstTouchSubscriptionsList, firstTouchSubscriptionsCreate, firstTouchSubscriptionsGet, firstTouchSubscriptionsUpdate, firstTouchSubscriptionsDelete, walletStats, walletPnl, walletPositions, walletTrades, me, tokensList } from "./tools/index.js";
|
|
15
|
+
import { walletStatsAction, walletPnlAction, walletPositionsAction, walletTradesAction } from "./actions/wallet.js";
|
|
15
16
|
declare const MadeOnSolPlugin: {
|
|
16
17
|
name: string;
|
|
17
18
|
methods: {
|
|
@@ -58,6 +59,10 @@ declare const MadeOnSolPlugin: {
|
|
|
58
59
|
firstTouchSubscriptionsDelete: typeof firstTouchSubscriptionsDelete;
|
|
59
60
|
me: typeof me;
|
|
60
61
|
tokensList: typeof tokensList;
|
|
62
|
+
walletStats: typeof walletStats;
|
|
63
|
+
walletPnl: typeof walletPnl;
|
|
64
|
+
walletPositions: typeof walletPositions;
|
|
65
|
+
walletTrades: typeof walletTrades;
|
|
61
66
|
};
|
|
62
67
|
actions: ({
|
|
63
68
|
name: string;
|
|
@@ -746,11 +751,100 @@ declare const MadeOnSolPlugin: {
|
|
|
746
751
|
message: string;
|
|
747
752
|
result?: undefined;
|
|
748
753
|
}>;
|
|
754
|
+
} | {
|
|
755
|
+
name: string;
|
|
756
|
+
similes: string[];
|
|
757
|
+
description: string;
|
|
758
|
+
examples: {
|
|
759
|
+
input: {
|
|
760
|
+
address: string;
|
|
761
|
+
};
|
|
762
|
+
output: {
|
|
763
|
+
status: string;
|
|
764
|
+
};
|
|
765
|
+
explanation: string;
|
|
766
|
+
}[][];
|
|
767
|
+
schema: import("zod").ZodObject<{
|
|
768
|
+
address: import("zod").ZodString;
|
|
769
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
770
|
+
address: string;
|
|
771
|
+
}, {
|
|
772
|
+
address: string;
|
|
773
|
+
}>;
|
|
774
|
+
handler: (agent: unknown, input: {
|
|
775
|
+
address: string;
|
|
776
|
+
}) => Promise<{
|
|
777
|
+
status: string;
|
|
778
|
+
result: any;
|
|
779
|
+
message?: undefined;
|
|
780
|
+
} | {
|
|
781
|
+
status: string;
|
|
782
|
+
message: string;
|
|
783
|
+
result?: undefined;
|
|
784
|
+
}>;
|
|
785
|
+
} | {
|
|
786
|
+
name: string;
|
|
787
|
+
similes: string[];
|
|
788
|
+
description: string;
|
|
789
|
+
examples: {
|
|
790
|
+
input: {
|
|
791
|
+
address: string;
|
|
792
|
+
limit: number;
|
|
793
|
+
action: string;
|
|
794
|
+
};
|
|
795
|
+
output: {
|
|
796
|
+
status: string;
|
|
797
|
+
};
|
|
798
|
+
explanation: string;
|
|
799
|
+
}[][];
|
|
800
|
+
schema: import("zod").ZodObject<{
|
|
801
|
+
address: import("zod").ZodString;
|
|
802
|
+
limit: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
803
|
+
cursor: import("zod").ZodOptional<import("zod").ZodString>;
|
|
804
|
+
action: import("zod").ZodOptional<import("zod").ZodEnum<["buy", "sell"]>>;
|
|
805
|
+
token_mint: import("zod").ZodOptional<import("zod").ZodString>;
|
|
806
|
+
since: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
807
|
+
until: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
808
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
809
|
+
address: string;
|
|
810
|
+
limit?: number | undefined;
|
|
811
|
+
action?: "buy" | "sell" | undefined;
|
|
812
|
+
cursor?: string | undefined;
|
|
813
|
+
token_mint?: string | undefined;
|
|
814
|
+
since?: number | undefined;
|
|
815
|
+
until?: number | undefined;
|
|
816
|
+
}, {
|
|
817
|
+
address: string;
|
|
818
|
+
limit?: number | undefined;
|
|
819
|
+
action?: "buy" | "sell" | undefined;
|
|
820
|
+
cursor?: string | undefined;
|
|
821
|
+
token_mint?: string | undefined;
|
|
822
|
+
since?: number | undefined;
|
|
823
|
+
until?: number | undefined;
|
|
824
|
+
}>;
|
|
825
|
+
handler: (agent: unknown, input: {
|
|
826
|
+
address: string;
|
|
827
|
+
limit?: number;
|
|
828
|
+
cursor?: string;
|
|
829
|
+
action?: "buy" | "sell";
|
|
830
|
+
token_mint?: string;
|
|
831
|
+
since?: number;
|
|
832
|
+
until?: number;
|
|
833
|
+
}) => Promise<{
|
|
834
|
+
status: string;
|
|
835
|
+
result: any;
|
|
836
|
+
message?: undefined;
|
|
837
|
+
} | {
|
|
838
|
+
status: string;
|
|
839
|
+
message: string;
|
|
840
|
+
result?: undefined;
|
|
841
|
+
}>;
|
|
749
842
|
})[];
|
|
750
843
|
initialize(_agent: unknown): void;
|
|
751
844
|
};
|
|
752
845
|
export default MadeOnSolPlugin;
|
|
753
|
-
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, me, tokensList, };
|
|
846
|
+
export { kolFeed, kolCoordination, kolLeaderboard, deployerAlerts, kolPnl, kolTrendingTokens, kolTokenEntryOrder, kolCompare, kolAlertsRecent, createWebhook, listWebhooks, deleteWebhook, testWebhook, getStreamToken, walletTrackerWatchlist, walletTrackerAdd, walletTrackerRemove, walletTrackerTrades, walletTrackerSummary, alphaLeaderboard, alphaWallet, alphaLinked, tokenCapTable, tokenBuyerQuality, copyTradeList, copyTradeCreate, copyTradeGet, copyTradeUpdate, copyTradeDelete, copyTradeSignals, coordinationAlertsList, coordinationAlertsCreate, coordinationAlertsGet, coordinationAlertsUpdate, coordinationAlertsDelete, kolFirstTouches, firstTouchSubscriptionsList, firstTouchSubscriptionsCreate, firstTouchSubscriptionsGet, firstTouchSubscriptionsUpdate, firstTouchSubscriptionsDelete, walletStats, walletPnl, walletPositions, walletTrades, me, tokensList, };
|
|
754
847
|
export { kolFeedAction, kolCoordinationAction, kolLeaderboardAction, deployerAlertsAction, kolPnlAction, kolTrendingTokensAction, kolTokenEntryOrderAction, kolCompareAction, kolAlertsRecentAction, kolFirstTouchesAction };
|
|
755
848
|
export { walletTrackerWatchlistAction, walletTrackerAddAction, walletTrackerRemoveAction, walletTrackerTradesAction, walletTrackerSummaryAction };
|
|
849
|
+
export { walletStatsAction, walletPnlAction, walletPositionsAction, walletTradesAction };
|
|
756
850
|
export { meAction, tokensListAction };
|
package/dist/index.js
CHANGED
|
@@ -11,7 +11,8 @@ import { kolAlertsRecentAction } from "./actions/kolAlertsRecent.js";
|
|
|
11
11
|
import { kolFirstTouchesAction } from "./actions/kolFirstTouches.js";
|
|
12
12
|
import { meAction } from "./actions/me.js";
|
|
13
13
|
import { tokensListAction } from "./actions/tokensList.js";
|
|
14
|
-
import { kolFeed, kolCoordination, kolLeaderboard, deployerAlerts, kolPnl, kolTrendingTokens, kolTokenEntryOrder, kolCompare, kolAlertsRecent, createWebhook, listWebhooks, deleteWebhook, testWebhook, getStreamToken, walletTrackerWatchlist, walletTrackerAdd, walletTrackerRemove, walletTrackerTrades, walletTrackerSummary, alphaLeaderboard, alphaWallet, alphaLinked, tokenCapTable, tokenBuyerQuality, copyTradeList, copyTradeCreate, copyTradeGet, copyTradeUpdate, copyTradeDelete, copyTradeSignals, coordinationAlertsList, coordinationAlertsCreate, coordinationAlertsGet, coordinationAlertsUpdate, coordinationAlertsDelete, kolFirstTouches, firstTouchSubscriptionsList, firstTouchSubscriptionsCreate, firstTouchSubscriptionsGet, firstTouchSubscriptionsUpdate, firstTouchSubscriptionsDelete, me, tokensList, } from "./tools/index.js";
|
|
14
|
+
import { kolFeed, kolCoordination, kolLeaderboard, deployerAlerts, kolPnl, kolTrendingTokens, kolTokenEntryOrder, kolCompare, kolAlertsRecent, createWebhook, listWebhooks, deleteWebhook, testWebhook, getStreamToken, walletTrackerWatchlist, walletTrackerAdd, walletTrackerRemove, walletTrackerTrades, walletTrackerSummary, alphaLeaderboard, alphaWallet, alphaLinked, tokenCapTable, tokenBuyerQuality, copyTradeList, copyTradeCreate, copyTradeGet, copyTradeUpdate, copyTradeDelete, copyTradeSignals, coordinationAlertsList, coordinationAlertsCreate, coordinationAlertsGet, coordinationAlertsUpdate, coordinationAlertsDelete, kolFirstTouches, firstTouchSubscriptionsList, firstTouchSubscriptionsCreate, firstTouchSubscriptionsGet, firstTouchSubscriptionsUpdate, firstTouchSubscriptionsDelete, walletStats, walletPnl, walletPositions, walletTrades, me, tokensList, } from "./tools/index.js";
|
|
15
|
+
import { walletStatsAction, walletPnlAction, walletPositionsAction, walletTradesAction } from "./actions/wallet.js";
|
|
15
16
|
const MadeOnSolPlugin = {
|
|
16
17
|
name: "madeonsol",
|
|
17
18
|
methods: {
|
|
@@ -58,6 +59,10 @@ const MadeOnSolPlugin = {
|
|
|
58
59
|
firstTouchSubscriptionsDelete,
|
|
59
60
|
me,
|
|
60
61
|
tokensList,
|
|
62
|
+
walletStats,
|
|
63
|
+
walletPnl,
|
|
64
|
+
walletPositions,
|
|
65
|
+
walletTrades,
|
|
61
66
|
},
|
|
62
67
|
actions: [
|
|
63
68
|
kolFeedAction,
|
|
@@ -77,13 +82,18 @@ const MadeOnSolPlugin = {
|
|
|
77
82
|
walletTrackerSummaryAction,
|
|
78
83
|
meAction,
|
|
79
84
|
tokensListAction,
|
|
85
|
+
walletStatsAction,
|
|
86
|
+
walletPnlAction,
|
|
87
|
+
walletPositionsAction,
|
|
88
|
+
walletTradesAction,
|
|
80
89
|
],
|
|
81
90
|
initialize(_agent) {
|
|
82
91
|
// No-op — payment setup is lazy in tool functions
|
|
83
92
|
},
|
|
84
93
|
};
|
|
85
94
|
export default MadeOnSolPlugin;
|
|
86
|
-
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, me, tokensList, };
|
|
95
|
+
export { kolFeed, kolCoordination, kolLeaderboard, deployerAlerts, kolPnl, kolTrendingTokens, kolTokenEntryOrder, kolCompare, kolAlertsRecent, createWebhook, listWebhooks, deleteWebhook, testWebhook, getStreamToken, walletTrackerWatchlist, walletTrackerAdd, walletTrackerRemove, walletTrackerTrades, walletTrackerSummary, alphaLeaderboard, alphaWallet, alphaLinked, tokenCapTable, tokenBuyerQuality, copyTradeList, copyTradeCreate, copyTradeGet, copyTradeUpdate, copyTradeDelete, copyTradeSignals, coordinationAlertsList, coordinationAlertsCreate, coordinationAlertsGet, coordinationAlertsUpdate, coordinationAlertsDelete, kolFirstTouches, firstTouchSubscriptionsList, firstTouchSubscriptionsCreate, firstTouchSubscriptionsGet, firstTouchSubscriptionsUpdate, firstTouchSubscriptionsDelete, walletStats, walletPnl, walletPositions, walletTrades, me, tokensList, };
|
|
87
96
|
export { kolFeedAction, kolCoordinationAction, kolLeaderboardAction, deployerAlertsAction, kolPnlAction, kolTrendingTokensAction, kolTokenEntryOrderAction, kolCompareAction, kolAlertsRecentAction, kolFirstTouchesAction };
|
|
88
97
|
export { walletTrackerWatchlistAction, walletTrackerAddAction, walletTrackerRemoveAction, walletTrackerTradesAction, walletTrackerSummaryAction };
|
|
98
|
+
export { walletStatsAction, walletPnlAction, walletPositionsAction, walletTradesAction };
|
|
89
99
|
export { meAction, tokensListAction };
|
package/dist/tools/index.d.ts
CHANGED
|
@@ -132,6 +132,24 @@ export declare function walletTrackerSummary(agent: Agent, params?: {
|
|
|
132
132
|
period?: string;
|
|
133
133
|
wallet?: string;
|
|
134
134
|
}): Promise<any>;
|
|
135
|
+
export declare function walletStats(agent: Agent, params: {
|
|
136
|
+
address: string;
|
|
137
|
+
}): Promise<any>;
|
|
138
|
+
export declare function walletPnl(agent: Agent, params: {
|
|
139
|
+
address: string;
|
|
140
|
+
}): Promise<any>;
|
|
141
|
+
export declare function walletPositions(agent: Agent, params: {
|
|
142
|
+
address: string;
|
|
143
|
+
}): Promise<any>;
|
|
144
|
+
export declare function walletTrades(agent: Agent, params: {
|
|
145
|
+
address: string;
|
|
146
|
+
limit?: number;
|
|
147
|
+
cursor?: string;
|
|
148
|
+
action?: "buy" | "sell";
|
|
149
|
+
token_mint?: string;
|
|
150
|
+
since?: number;
|
|
151
|
+
until?: number;
|
|
152
|
+
}): Promise<any>;
|
|
135
153
|
export declare function alphaLeaderboard(agent: Agent, params?: {
|
|
136
154
|
limit?: number;
|
|
137
155
|
min_tokens?: number;
|
package/dist/tools/index.js
CHANGED
|
@@ -210,6 +210,33 @@ export async function walletTrackerSummary(agent, params = {}) {
|
|
|
210
210
|
const query = qs.toString() ? `?${qs.toString()}` : "";
|
|
211
211
|
return restQuery(agent, "GET", `/wallet-tracker/summary${query}`);
|
|
212
212
|
}
|
|
213
|
+
// ── Universal Wallet Endpoints (PRO+, any wallet — not just curated KOLs) ──
|
|
214
|
+
export async function walletStats(agent, params) {
|
|
215
|
+
return restQuery(agent, "GET", `/wallet/${encodeURIComponent(params.address)}`);
|
|
216
|
+
}
|
|
217
|
+
export async function walletPnl(agent, params) {
|
|
218
|
+
return restQuery(agent, "GET", `/wallet/${encodeURIComponent(params.address)}/pnl`);
|
|
219
|
+
}
|
|
220
|
+
export async function walletPositions(agent, params) {
|
|
221
|
+
return restQuery(agent, "GET", `/wallet/${encodeURIComponent(params.address)}/positions`);
|
|
222
|
+
}
|
|
223
|
+
export async function walletTrades(agent, params) {
|
|
224
|
+
const qs = new URLSearchParams();
|
|
225
|
+
if (params.limit !== undefined)
|
|
226
|
+
qs.set("limit", String(params.limit));
|
|
227
|
+
if (params.cursor)
|
|
228
|
+
qs.set("cursor", params.cursor);
|
|
229
|
+
if (params.action)
|
|
230
|
+
qs.set("action", params.action);
|
|
231
|
+
if (params.token_mint)
|
|
232
|
+
qs.set("token_mint", params.token_mint);
|
|
233
|
+
if (params.since !== undefined)
|
|
234
|
+
qs.set("since", String(params.since));
|
|
235
|
+
if (params.until !== undefined)
|
|
236
|
+
qs.set("until", String(params.until));
|
|
237
|
+
const query = qs.toString() ? `?${qs.toString()}` : "";
|
|
238
|
+
return restQuery(agent, "GET", `/wallet/${encodeURIComponent(params.address)}/trades${query}`);
|
|
239
|
+
}
|
|
213
240
|
// ── Alpha Wallet Intelligence ──
|
|
214
241
|
export async function alphaLeaderboard(agent, params = {}) {
|
|
215
242
|
const qs = new URLSearchParams();
|
package/package.json
CHANGED
|
@@ -1,54 +1,54 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "solana-agent-kit-plugin-madeonsol",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "Solana Agent Kit plugin for MadeOnSol — KOL intelligence and deployer analytics via x402 micropayments",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"main": "dist/index.js",
|
|
7
|
-
"types": "dist/index.d.ts",
|
|
8
|
-
"files": [
|
|
9
|
-
"dist",
|
|
10
|
-
"README.md"
|
|
11
|
-
],
|
|
12
|
-
"scripts": {
|
|
13
|
-
"build": "tsc",
|
|
14
|
-
"preflight": "bash ../../scripts/preflight-publish.sh",
|
|
15
|
-
"prepublishOnly": "npm run preflight && npm run build"
|
|
16
|
-
},
|
|
17
|
-
"keywords": [
|
|
18
|
-
"solana",
|
|
19
|
-
"agent-kit",
|
|
20
|
-
"solana-agent-kit",
|
|
21
|
-
"sendaifun",
|
|
22
|
-
"plugin",
|
|
23
|
-
"ai-agent",
|
|
24
|
-
"x402",
|
|
25
|
-
"kol",
|
|
26
|
-
"kol-tracker",
|
|
27
|
-
"trading",
|
|
28
|
-
"memecoin",
|
|
29
|
-
"memecoin-tracker",
|
|
30
|
-
"pumpfun",
|
|
31
|
-
"deployer-hunter",
|
|
32
|
-
"alpha",
|
|
33
|
-
"alpha-bot",
|
|
34
|
-
"smart-money",
|
|
35
|
-
"copy-trading",
|
|
36
|
-
"madeonsol"
|
|
37
|
-
],
|
|
38
|
-
"license": "MIT",
|
|
39
|
-
"repository": {
|
|
40
|
-
"type": "git",
|
|
41
|
-
"url": "https://github.com/LamboPoewert/solana-agent-kit-plugin-madeonsol"
|
|
42
|
-
},
|
|
43
|
-
"peerDependencies": {
|
|
44
|
-
"solana-agent-kit": ">=2.0.0",
|
|
45
|
-
"@x402/fetch": ">=0.1.0",
|
|
46
|
-
"@x402/core": ">=0.1.0",
|
|
47
|
-
"@x402/svm": ">=0.1.0",
|
|
48
|
-
"@solana/kit": ">=2.0.0",
|
|
49
|
-
"@scure/base": ">=1.0.0"
|
|
50
|
-
},
|
|
51
|
-
"dependencies": {
|
|
52
|
-
"zod": "^3.24.0"
|
|
53
|
-
}
|
|
54
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "solana-agent-kit-plugin-madeonsol",
|
|
3
|
+
"version": "1.8.1",
|
|
4
|
+
"description": "Solana Agent Kit plugin for MadeOnSol — KOL intelligence and deployer analytics via x402 micropayments",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"files": [
|
|
9
|
+
"dist",
|
|
10
|
+
"README.md"
|
|
11
|
+
],
|
|
12
|
+
"scripts": {
|
|
13
|
+
"build": "tsc",
|
|
14
|
+
"preflight": "bash ../../scripts/preflight-publish.sh",
|
|
15
|
+
"prepublishOnly": "npm run preflight && npm run build"
|
|
16
|
+
},
|
|
17
|
+
"keywords": [
|
|
18
|
+
"solana",
|
|
19
|
+
"agent-kit",
|
|
20
|
+
"solana-agent-kit",
|
|
21
|
+
"sendaifun",
|
|
22
|
+
"plugin",
|
|
23
|
+
"ai-agent",
|
|
24
|
+
"x402",
|
|
25
|
+
"kol",
|
|
26
|
+
"kol-tracker",
|
|
27
|
+
"trading",
|
|
28
|
+
"memecoin",
|
|
29
|
+
"memecoin-tracker",
|
|
30
|
+
"pumpfun",
|
|
31
|
+
"deployer-hunter",
|
|
32
|
+
"alpha",
|
|
33
|
+
"alpha-bot",
|
|
34
|
+
"smart-money",
|
|
35
|
+
"copy-trading",
|
|
36
|
+
"madeonsol"
|
|
37
|
+
],
|
|
38
|
+
"license": "MIT",
|
|
39
|
+
"repository": {
|
|
40
|
+
"type": "git",
|
|
41
|
+
"url": "https://github.com/LamboPoewert/solana-agent-kit-plugin-madeonsol"
|
|
42
|
+
},
|
|
43
|
+
"peerDependencies": {
|
|
44
|
+
"solana-agent-kit": ">=2.0.0",
|
|
45
|
+
"@x402/fetch": ">=0.1.0",
|
|
46
|
+
"@x402/core": ">=0.1.0",
|
|
47
|
+
"@x402/svm": ">=0.1.0",
|
|
48
|
+
"@solana/kit": ">=2.0.0",
|
|
49
|
+
"@scure/base": ">=1.0.0"
|
|
50
|
+
},
|
|
51
|
+
"dependencies": {
|
|
52
|
+
"zod": "^3.24.0"
|
|
53
|
+
}
|
|
54
|
+
}
|