@madeonsol/plugin-madeonsol 1.3.1 → 1.5.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 +5 -69
- package/dist/actions/kol-feed.js +10 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,18 +4,6 @@ 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
|
-
|
|
19
7
|
## Authentication
|
|
20
8
|
|
|
21
9
|
Three options (in priority order):
|
|
@@ -32,7 +20,7 @@ Gives your ElizaOS agent access to MadeOnSol's Solana intelligence API.
|
|
|
32
20
|
| Action | Description |
|
|
33
21
|
|--------|-------------|
|
|
34
22
|
| `GET_KOL_FEED` | Real-time KOL trade feed (1,000+ wallets) |
|
|
35
|
-
| `GET_KOL_COORDINATION` | Multi-KOL convergence
|
|
23
|
+
| `GET_KOL_COORDINATION` | Multi-KOL convergence signals |
|
|
36
24
|
| `GET_KOL_LEADERBOARD` | KOL PnL/win-rate rankings (180 days of history) |
|
|
37
25
|
| `GET_DEPLOYER_ALERTS` | Pump.fun deployer alerts with KOL enrichment |
|
|
38
26
|
| `WALLET_TRACKER_WATCHLIST` | List your tracked wallets and remaining capacity |
|
|
@@ -63,57 +51,6 @@ const agent = {
|
|
|
63
51
|
};
|
|
64
52
|
```
|
|
65
53
|
|
|
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
|
-
|
|
90
|
-
### First-touch signal *(new in 1.3)*
|
|
91
|
-
|
|
92
|
-
Every "first KOL buy on a token mint" event — when a tracked KOL is the first of the cohort to touch a token. Filterable by **scout tier** (S/A/B/C from `mv_kol_scout_score`), KOL winrate, token age, mint suffix.
|
|
93
|
-
|
|
94
|
-
**Backtest:** S-tier scouts attract ≥3 follow-on KOLs within 4h ~50% of the time vs ~14% baseline (38d / 491k buys).
|
|
95
|
-
|
|
96
|
-
```ts
|
|
97
|
-
import { MadeOnSolClient } from "@madeonsol/plugin-madeonsol";
|
|
98
|
-
const client = new MadeOnSolClient({ apiKey: process.env.MADEONSOL_API_KEY });
|
|
99
|
-
|
|
100
|
-
// REST query
|
|
101
|
-
const { events } = await client.firstTouches({ preset: "scout", min_scout_tier: "S", limit: 20 });
|
|
102
|
-
|
|
103
|
-
// Webhook subscription (Ultra) — push delivery, HMAC-signed
|
|
104
|
-
const { subscription, webhook_secret } = await client.firstTouchSubscriptionsCreate({
|
|
105
|
-
name: "S-tier scouts on pump tokens",
|
|
106
|
-
filters: { min_scout_tier: "S", mint_suffix: "pump" },
|
|
107
|
-
delivery_mode: "webhook",
|
|
108
|
-
webhook_url: "https://you.com/hooks/scout",
|
|
109
|
-
});
|
|
110
|
-
// store webhook_secret — shown ONCE
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
ULTRA only for subscriptions — up to 10 active. CRUD: `firstTouchSubscriptionsList()`, `firstTouchSubscriptionsGet(id)`, `firstTouchSubscriptionsUpdate(id, updates)`, `firstTouchSubscriptionsDelete(id)`.
|
|
114
|
-
|
|
115
|
-
> **Don't poll — push.** Median lead time before the second KOL is 12 seconds. WebSocket channel: `kol:first_touches`.
|
|
116
|
-
|
|
117
54
|
Your agent can then respond to queries like:
|
|
118
55
|
- "What are KOLs buying right now?"
|
|
119
56
|
- "Show me the KOL leaderboard this week"
|
|
@@ -126,18 +63,17 @@ Your agent can then respond to queries like:
|
|
|
126
63
|
|
|
127
64
|
| Tier | Price | Wallets tracked | Requests/day |
|
|
128
65
|
|------|-------|-----------------|--------------|
|
|
129
|
-
|
|
|
130
|
-
|
|
|
131
|
-
|
|
|
66
|
+
| BASIC | Free | 10 | 200 |
|
|
67
|
+
| PRO | $49/mo | 50 | 10,000 |
|
|
68
|
+
| ULTRA | $149/mo | 100 + WS events | 100,000 |
|
|
132
69
|
|
|
133
|
-
|
|
70
|
+
Get a key at [madeonsol.com/developer](https://madeonsol.com/developer).
|
|
134
71
|
|
|
135
72
|
## Also Available
|
|
136
73
|
|
|
137
74
|
| Platform | Package |
|
|
138
75
|
|---|---|
|
|
139
76
|
| TypeScript SDK | [`madeonsol`](https://www.npmjs.com/package/madeonsol) on npm |
|
|
140
|
-
| Rust SDK | [`madeonsol`](https://crates.io/crates/madeonsol) on crates.io |
|
|
141
77
|
| Python (LangChain, CrewAI) | [`madeonsol-x402`](https://pypi.org/project/madeonsol-x402/) on PyPI |
|
|
142
78
|
| MCP Server (Claude, Cursor) | [`mcp-server-madeonsol`](https://www.npmjs.com/package/mcp-server-madeonsol) |
|
|
143
79
|
| Solana Agent Kit | [`solana-agent-kit-plugin-madeonsol`](https://www.npmjs.com/package/solana-agent-kit-plugin-madeonsol) |
|
package/dist/actions/kol-feed.js
CHANGED
|
@@ -30,7 +30,16 @@ export const kolFeedAction = {
|
|
|
30
30
|
return undefined;
|
|
31
31
|
}
|
|
32
32
|
const data = result.data;
|
|
33
|
-
const
|
|
33
|
+
const fmtMc = (mc) => {
|
|
34
|
+
if (mc == null || !isFinite(mc) || mc <= 0)
|
|
35
|
+
return "";
|
|
36
|
+
if (mc >= 1e6)
|
|
37
|
+
return ` @ MC $${(mc / 1e6).toFixed(2)}M`;
|
|
38
|
+
if (mc >= 1e3)
|
|
39
|
+
return ` @ MC $${(mc / 1e3).toFixed(1)}K`;
|
|
40
|
+
return ` @ MC $${mc.toFixed(0)}`;
|
|
41
|
+
};
|
|
42
|
+
const lines = (data.trades || []).slice(0, 10).map((t) => `${t.kol_name || "Unknown"} ${t.action === "buy" ? "bought" : "sold"} ${t.token_symbol || "?"} for ${Number(t.sol_amount).toFixed(2)} SOL${fmtMc(t.market_cap_usd_at_trade)}`);
|
|
34
43
|
callback?.({
|
|
35
44
|
text: `Latest KOL trades:\n${lines.join("\n")}`,
|
|
36
45
|
content: data,
|
package/package.json
CHANGED