@madeonsol/plugin-madeonsol 1.0.0 → 1.1.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 +38 -2
- package/dist/actions/kol-coordination.js +6 -1
- package/dist/client.d.ts +43 -0
- package/dist/client.js +20 -1
- package/dist/index.js +3 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -4,6 +4,18 @@ ElizaOS plugin for [MadeOnSol](https://madeonsol.com) — Solana KOL trading int
|
|
|
4
4
|
|
|
5
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
|
+
## Quick start (10 seconds)
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install @madeonsol/plugin-madeonsol
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
```ts
|
|
14
|
+
import { madeOnSolPlugin } from "@madeonsol/plugin-madeonsol";
|
|
15
|
+
const agent = { plugins: [madeOnSolPlugin], settings: { MADEONSOL_API_KEY: "msk_..." } }; // free key: https://madeonsol.com/developer
|
|
16
|
+
// Then ask the agent: "What are KOLs buying right now?"
|
|
17
|
+
```
|
|
18
|
+
|
|
7
19
|
## Authentication
|
|
8
20
|
|
|
9
21
|
Three options (in priority order):
|
|
@@ -20,7 +32,7 @@ Gives your ElizaOS agent access to MadeOnSol's Solana intelligence API.
|
|
|
20
32
|
| Action | Description |
|
|
21
33
|
|--------|-------------|
|
|
22
34
|
| `GET_KOL_FEED` | Real-time KOL trade feed (1,000+ wallets) |
|
|
23
|
-
| `GET_KOL_COORDINATION` | Multi-KOL convergence
|
|
35
|
+
| `GET_KOL_COORDINATION` | Multi-KOL convergence (v1.1 — peak-density, exits, 0-100 score) |
|
|
24
36
|
| `GET_KOL_LEADERBOARD` | KOL PnL/win-rate rankings (180 days of history) |
|
|
25
37
|
| `GET_DEPLOYER_ALERTS` | Pump.fun deployer alerts with KOL enrichment |
|
|
26
38
|
| `WALLET_TRACKER_WATCHLIST` | List your tracked wallets and remaining capacity |
|
|
@@ -51,6 +63,30 @@ const agent = {
|
|
|
51
63
|
};
|
|
52
64
|
```
|
|
53
65
|
|
|
66
|
+
### v1.1 Coordination alerts (programmatic)
|
|
67
|
+
|
|
68
|
+
The `GET_KOL_COORDINATION` action surfaces the v1.1 `coordination_score`, `peak_kols`, and `exited_count` fields. For **push alerts** (fires within ~1s of a qualifying trade via WS `kol:coordination` channel + HMAC-signed webhook), use the client directly from a custom action:
|
|
69
|
+
|
|
70
|
+
```ts
|
|
71
|
+
import { MadeOnSolClient } from "@madeonsol/plugin-madeonsol";
|
|
72
|
+
|
|
73
|
+
const client = new MadeOnSolClient({ apiKey: process.env.MADEONSOL_API_KEY });
|
|
74
|
+
const res = await client.coordinationAlertsCreate({
|
|
75
|
+
name: "fresh pump cluster",
|
|
76
|
+
min_kols: 4,
|
|
77
|
+
window_minutes: 15,
|
|
78
|
+
min_score: 70,
|
|
79
|
+
include_majors: false,
|
|
80
|
+
cooldown_min: 60,
|
|
81
|
+
score_jump_break: 10,
|
|
82
|
+
delivery_mode: "both",
|
|
83
|
+
webhook_url: "https://you.com/hooks/coord",
|
|
84
|
+
});
|
|
85
|
+
// store res.data.webhook_secret — shown ONCE
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
PRO=5 rules, ULTRA=20. Also available: `coordinationAlertsList()`, `coordinationAlertsGet(id)`, `coordinationAlertsUpdate(id, updates)`, `coordinationAlertsDelete(id)`.
|
|
89
|
+
|
|
54
90
|
Your agent can then respond to queries like:
|
|
55
91
|
- "What are KOLs buying right now?"
|
|
56
92
|
- "Show me the KOL leaderboard this week"
|
|
@@ -65,7 +101,7 @@ Your agent can then respond to queries like:
|
|
|
65
101
|
|------|-------|-----------------|--------------|
|
|
66
102
|
| BASIC | Free | 10 | 200 |
|
|
67
103
|
| PRO | $49/mo | 50 | 10,000 |
|
|
68
|
-
| ULTRA | $
|
|
104
|
+
| ULTRA | $149/mo | 100 + WS events | 100,000 |
|
|
69
105
|
|
|
70
106
|
Get a key at [madeonsol.com/developer](https://madeonsol.com/developer).
|
|
71
107
|
|
|
@@ -29,7 +29,12 @@ export const kolCoordinationAction = {
|
|
|
29
29
|
return undefined;
|
|
30
30
|
}
|
|
31
31
|
const data = result.data;
|
|
32
|
-
const lines = (data.coordination || []).map((t) =>
|
|
32
|
+
const lines = (data.coordination || []).map((t) => {
|
|
33
|
+
const score = t.coordination_score != null ? ` · score ${t.coordination_score}/100` : "";
|
|
34
|
+
const peak = t.peak_kols != null ? ` · peak ${t.peak_kols}` : "";
|
|
35
|
+
const exited = t.exited_count ? ` · ${t.exited_count} exited` : "";
|
|
36
|
+
return `${t.token_symbol}: ${t.kol_count} KOLs ${t.signal} (${t.net_sol_flow > 0 ? "+" : ""}${t.net_sol_flow.toFixed(2)} SOL net)${score}${peak}${exited}`;
|
|
37
|
+
});
|
|
33
38
|
callback?.({
|
|
34
39
|
text: `KOL convergence signals (${period}):\n${lines.join("\n") || "No coordination signals found."}`,
|
|
35
40
|
content: data,
|
package/dist/client.d.ts
CHANGED
|
@@ -45,6 +45,14 @@ export declare class MadeOnSolClient {
|
|
|
45
45
|
period?: string;
|
|
46
46
|
min_kols?: string;
|
|
47
47
|
limit?: string;
|
|
48
|
+
/** v1.1 — include WIF/BONK/POPCAT etc. ("true" | "false", default "false") */
|
|
49
|
+
include_majors?: string;
|
|
50
|
+
/** v1.1 — peak-density window in minutes (1-60, default 15) */
|
|
51
|
+
window_minutes?: string;
|
|
52
|
+
/** v1.1 — minimum composite coordination_score (0-100) */
|
|
53
|
+
min_score?: string;
|
|
54
|
+
min_avg_winrate?: string;
|
|
55
|
+
unique_strategies?: string;
|
|
48
56
|
}): Promise<{
|
|
49
57
|
data?: unknown;
|
|
50
58
|
error?: string;
|
|
@@ -265,6 +273,41 @@ export declare class MadeOnSolClient {
|
|
|
265
273
|
error?: string;
|
|
266
274
|
status: number;
|
|
267
275
|
}>;
|
|
276
|
+
coordinationAlertsList(): Promise<{
|
|
277
|
+
data?: unknown;
|
|
278
|
+
error?: string;
|
|
279
|
+
status: number;
|
|
280
|
+
}>;
|
|
281
|
+
coordinationAlertsCreate(params: {
|
|
282
|
+
name?: string;
|
|
283
|
+
min_kols?: number;
|
|
284
|
+
window_minutes?: number;
|
|
285
|
+
min_score?: number;
|
|
286
|
+
include_majors?: boolean;
|
|
287
|
+
cooldown_min?: number;
|
|
288
|
+
score_jump_break?: number;
|
|
289
|
+
delivery_mode?: "websocket" | "webhook" | "both";
|
|
290
|
+
webhook_url?: string;
|
|
291
|
+
}): Promise<{
|
|
292
|
+
data?: unknown;
|
|
293
|
+
error?: string;
|
|
294
|
+
status: number;
|
|
295
|
+
}>;
|
|
296
|
+
coordinationAlertsGet(ruleId: string): Promise<{
|
|
297
|
+
data?: unknown;
|
|
298
|
+
error?: string;
|
|
299
|
+
status: number;
|
|
300
|
+
}>;
|
|
301
|
+
coordinationAlertsUpdate(ruleId: string, updates: Record<string, unknown>): Promise<{
|
|
302
|
+
data?: unknown;
|
|
303
|
+
error?: string;
|
|
304
|
+
status: number;
|
|
305
|
+
}>;
|
|
306
|
+
coordinationAlertsDelete(ruleId: string): Promise<{
|
|
307
|
+
data?: unknown;
|
|
308
|
+
error?: string;
|
|
309
|
+
status: number;
|
|
310
|
+
}>;
|
|
268
311
|
copyTradeSignals(params?: {
|
|
269
312
|
rule_id?: string;
|
|
270
313
|
limit?: string;
|
package/dist/client.js
CHANGED
|
@@ -26,6 +26,9 @@ export class MadeOnSolClient {
|
|
|
26
26
|
}
|
|
27
27
|
else {
|
|
28
28
|
this.authMode = "none";
|
|
29
|
+
console.warn("\n[madeonsol] MadeOnSolClient constructed without apiKey or fetchFn — every request will fail.\n" +
|
|
30
|
+
" → Get a free key (200 req/day, no card) at https://madeonsol.com/developer\n" +
|
|
31
|
+
" → Then: new MadeOnSolClient({ apiKey: process.env.MADEONSOL_API_KEY })\n");
|
|
29
32
|
}
|
|
30
33
|
}
|
|
31
34
|
captureRateLimit(res) {
|
|
@@ -110,7 +113,7 @@ export class MadeOnSolClient {
|
|
|
110
113
|
// ── REST helper (used by webhooks, streaming, alpha, copy-trade, wallet-tracker) ──
|
|
111
114
|
async restRequest(method, path, body) {
|
|
112
115
|
if (this.authMode !== "madeonsol") {
|
|
113
|
-
return { error: "MadeOnSol API key required for this endpoint. Get a free `msk_` key at madeonsol.com/developer", status: 401 };
|
|
116
|
+
return { error: "MadeOnSol API key required for this endpoint. Get a free `msk_` key at https://madeonsol.com/developer", status: 401 };
|
|
114
117
|
}
|
|
115
118
|
const res = await this.fetchFn(`${this.baseUrl}/api/v1${path}`, {
|
|
116
119
|
method,
|
|
@@ -212,6 +215,22 @@ export class MadeOnSolClient {
|
|
|
212
215
|
copyTradeDelete(ruleId) {
|
|
213
216
|
return this.restRequest("DELETE", `/copy-trade/rules/${encodeURIComponent(ruleId)}`);
|
|
214
217
|
}
|
|
218
|
+
// ── Coordination alerts (PRO/ULTRA, v1.1) ──
|
|
219
|
+
coordinationAlertsList() {
|
|
220
|
+
return this.restRequest("GET", "/kol/coordination/alerts");
|
|
221
|
+
}
|
|
222
|
+
coordinationAlertsCreate(params) {
|
|
223
|
+
return this.restRequest("POST", "/kol/coordination/alerts", params);
|
|
224
|
+
}
|
|
225
|
+
coordinationAlertsGet(ruleId) {
|
|
226
|
+
return this.restRequest("GET", `/kol/coordination/alerts/${encodeURIComponent(ruleId)}`);
|
|
227
|
+
}
|
|
228
|
+
coordinationAlertsUpdate(ruleId, updates) {
|
|
229
|
+
return this.restRequest("PATCH", `/kol/coordination/alerts/${encodeURIComponent(ruleId)}`, updates);
|
|
230
|
+
}
|
|
231
|
+
coordinationAlertsDelete(ruleId) {
|
|
232
|
+
return this.restRequest("DELETE", `/kol/coordination/alerts/${encodeURIComponent(ruleId)}`);
|
|
233
|
+
}
|
|
215
234
|
copyTradeSignals(params) {
|
|
216
235
|
const qs = new URLSearchParams();
|
|
217
236
|
if (params)
|
package/dist/index.js
CHANGED
|
@@ -57,7 +57,9 @@ export const madeOnSolPlugin = {
|
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
else {
|
|
60
|
-
console.
|
|
60
|
+
console.warn("[madeonsol] No auth configured — every API call will fail.\n" +
|
|
61
|
+
" → Get a free MADEONSOL_API_KEY (200 req/day, no card) at https://madeonsol.com/developer\n" +
|
|
62
|
+
" → Or set SVM_PRIVATE_KEY for x402 micropayments.");
|
|
61
63
|
}
|
|
62
64
|
const madeOnSolClient = new MadeOnSolClient({ baseUrl, apiKey, fetchFn });
|
|
63
65
|
runtime[MADEONSOL_CLIENT_KEY] = madeOnSolClient;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@madeonsol/plugin-madeonsol",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "ElizaOS plugin for MadeOnSol — Solana KOL intelligence and deployer analytics via x402 micropayments",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -51,4 +51,4 @@
|
|
|
51
51
|
"devDependencies": {
|
|
52
52
|
"@elizaos/core": "^2.0.0-alpha.77"
|
|
53
53
|
}
|
|
54
|
-
}
|
|
54
|
+
}
|