@madeonsol/plugin-madeonsol 1.13.0 โ 1.15.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 +261 -238
- package/dist/actions/almost-bonded.d.ts +7 -0
- package/dist/actions/almost-bonded.js +69 -0
- package/dist/client.d.ts +92 -1
- package/dist/client.js +41 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +3 -1
- package/package.json +74 -74
package/README.md
CHANGED
|
@@ -1,238 +1,261 @@
|
|
|
1
|
-
# @madeonsol/plugin-madeonsol
|
|
2
|
-
|
|
3
|
-
[](https://www.npmjs.com/package/@madeonsol/plugin-madeonsol)
|
|
4
|
-
[](https://www.npmjs.com/package/@madeonsol/plugin-madeonsol)
|
|
5
|
-
[](https://elizaos.github.io/)
|
|
6
|
-
[](LICENSE)
|
|
7
|
-
|
|
8
|
-
> ๐ **[API docs](https://madeonsol.com/api-docs)** ยท ๐ฐ **[Free API key](https://madeonsol.com/pricing)** ยท ๐ค **[ElizaOS](https://github.com/elizaOS/eliza)**
|
|
9
|
-
|
|
10
|
-
ElizaOS plugin for [MadeOnSol](https://madeonsol.com) โ Solana KOL trading intelligence, deployer analytics, and wallet tracking.
|
|
11
|
-
|
|
12
|
-
> Real-time Solana trading intelligence: track 1,069 KOL wallets with <3s latency, score 23,000+ Pump.fun deployers, surface deshred deploy signals ~500ms before on-chain confirmation, detect multi-KOL coordination, and stream every DEX trade. Free tier: 200 requests/day at [madeonsol.com/pricing](https://madeonsol.com/pricing)
|
|
13
|
-
|
|
14
|
-
> **New in 1.
|
|
15
|
-
>
|
|
16
|
-
> **New in 1.
|
|
17
|
-
>
|
|
18
|
-
> **New in 1.
|
|
19
|
-
>
|
|
20
|
-
> **New in 1.
|
|
21
|
-
>
|
|
22
|
-
> **New in 1.
|
|
23
|
-
|
|
24
|
-
> **New in 1.
|
|
25
|
-
|
|
26
|
-
> **New in 1.9** โ
|
|
27
|
-
|
|
28
|
-
> **New in 1.
|
|
29
|
-
|
|
30
|
-
> **New in 1.
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
|
62
|
-
|
|
63
|
-
| `
|
|
64
|
-
| `
|
|
65
|
-
| `
|
|
66
|
-
| `
|
|
67
|
-
| `
|
|
68
|
-
| `
|
|
69
|
-
| `
|
|
70
|
-
| `
|
|
71
|
-
| `
|
|
72
|
-
| `
|
|
73
|
-
| `
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
1
|
+
# @madeonsol/plugin-madeonsol
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@madeonsol/plugin-madeonsol)
|
|
4
|
+
[](https://www.npmjs.com/package/@madeonsol/plugin-madeonsol)
|
|
5
|
+
[](https://elizaos.github.io/)
|
|
6
|
+
[](LICENSE)
|
|
7
|
+
|
|
8
|
+
> ๐ **[API docs](https://madeonsol.com/api-docs)** ยท ๐ฐ **[Free API key](https://madeonsol.com/pricing)** ยท ๐ค **[ElizaOS](https://github.com/elizaOS/eliza)**
|
|
9
|
+
|
|
10
|
+
ElizaOS plugin for [MadeOnSol](https://madeonsol.com) โ Solana KOL trading intelligence, deployer analytics, and wallet tracking.
|
|
11
|
+
|
|
12
|
+
> Real-time Solana trading intelligence: track 1,069 KOL wallets with <3s latency, score 23,000+ Pump.fun deployers, surface deshred deploy signals ~500ms before on-chain confirmation, detect multi-KOL coordination, and stream every DEX trade. Free tier: 200 requests/day, every endpoint โ no signup payment. Get a key at [madeonsol.com/pricing](https://madeonsol.com/pricing).
|
|
13
|
+
|
|
14
|
+
> **New in 1.15.0** โ **Batch risk scoring + live WebSocket session control.** Two client methods: `client.getTokenRiskBatch(mints)` scores up to 50 mints in one call (`POST /tokens/batch/risk`) โ each entry is the single-mint risk shape plus an `as_of` timestamp, or `{ mint, error: "not_tracked" }` for untracked mints (which don't fail the batch); returns `{ tokens, count }` in de-duplicated input order and counts as one request. And `client.getStreamSessions()` lists your live WebSocket sessions (`{ id, service, tier, channels, connected_at, remote_ip, messages_sent }`) while `client.deleteStreamSession(id)` force-evicts one by id to free a connection slot. Both PRO/ULTRA only.
|
|
15
|
+
>
|
|
16
|
+
> **New in 1.14.0** โ **Almost-bonded discovery + trending sorts.** New action `MADEONSOL_ALMOST_BONDED` + `client.getAlmostBonded(params)` โ pre-bond pump.fun tokens near graduation, ranked by velocity (ฮprogress/min): "95% and accelerating" beats "92% stalled". Each token carries `progress_pct`, `velocity_pct_per_min`, `eta_minutes`, `stalled`, `real_sol_reserves`, `market_cap_usd`, `liquidity_usd`, `authorities_revoked`, `deployer_tier`, and `age_minutes`. Params: `min_progress`, `max_progress`, `min_velocity_pct_per_min`, `max_age_minutes`, `deployer_tier`, `authority_revoked`, `min_liq`, `sort` (velocity_desc / progress_desc / eta_asc), `limit`. PRO/ULTRA only. Plus `client.getTokensList({ sort })` gains four momentum sorts โ `mc_change_5m_desc`, `mc_change_1h_desc`, `volume_1h_desc`, and `trending` (composite recent-volume ร positive-momentum rank).
|
|
17
|
+
>
|
|
18
|
+
> **New in 1.13.0** โ **Token net flow.** New action `GET_TOKEN_FLOW` + `client.getTokenFlow(mint, { window })` โ net buy/sell flow over a rolling window (`1h` default, or `24h`): `unique_wallets`, `unique_buyers`, `unique_sellers`, `buy_count`, `sell_count`, `total_trades`, `buy_sol`, `sell_sol`, `net_sol`, `trades_per_wallet`. PRO+. Deployer alerts now also surface `deployer_sol_balance` โ the deployer wallet's SOL balance at alert time (`null` for historical rows).
|
|
19
|
+
>
|
|
20
|
+
> **New in 1.12.0** โ **Token OHLCV candles.** New action `GET_TOKEN_CANDLES` + `client.getTokenCandles(mint, { tf, limit, from, to })` โ historical price candles (1m/5m/15m/1h/4h/1d) aggregated from the on-chain trade firehose. Each candle has `t/open/high/low/close/volume_usd/trades/market_cap_usd`. PRO returns OHLCV for the last 30 days; ULTRA adds buy/sell volume + count splits, net flow, MEV volume, open/close liquidity, high/low MC, and full history. PRO/ULTRA only.
|
|
21
|
+
>
|
|
22
|
+
> **New in 1.11.0** โ **Token risk score.** New action `GET_TOKEN_RISK` + `client.getTokenRisk(mint)` โ a transparent 0โ100 rug-risk/safety score (higher = riskier) with a `band` (safe/caution/danger), an explainable `factors[]` array, and the raw `inputs` (mint/freeze authority, liquidity, liq-to-MC ratio, transfer fee, launch cohort, deployer bond rate, KOL signal, blacklist). PRO/ULTRA only.
|
|
23
|
+
>
|
|
24
|
+
> **New in 1.10.0** โ `client.getTokensList()` gains three new filter params: `min_liq_mc_ratio`, `max_liq_mc_ratio`, and `deployer_tier`. Response items now include `liquidity_to_mc_ratio` and `deployer_tier`. KOL leaderboard entries now include `median_hold_minutes_30d` and `percentile_early_entry_30d`. Token endpoints now return `liquidity_to_mc_ratio`, `launch_cohort_sol`, and `launch_cohort_size`.
|
|
25
|
+
>
|
|
26
|
+
> **New in 1.9.3** โ Deployer alerts now surface `runner_rate` + `labeled_tokens` (fraction of a deployer's labeled tokens that ran vs dumped, gate on `labeled_tokens` โฅ3) and `avg_time_to_bond_minutes`.
|
|
27
|
+
|
|
28
|
+
> **New in 1.9.2** โ **Dump-cluster detection.** Buyer-quality breakdown now includes `dump_cluster_count` (3+ dump-cluster wallets in the first-20 โ 94% historical dump rate vs 61% base) and `recycled_early_buyer_count`, on all tiers. The API also pushes every pump.fun graduation in real time (`token:graduations` WS channel).
|
|
29
|
+
|
|
30
|
+
> **New in 1.9** โ **Price alerts, scout leaderboard, coordination history, wallet derived stats.** `PRICE_ALERTS_*` actions (PRO=5, ULTRA=25 rules). `SCOUT_LEADERBOARD`, `KOL_CONSENSUS`, `PEAK_HISTORY`, `COORDINATION_HISTORY`. `WALLET_STATS` now returns `derived`: win_rate, roi, verdict, biggest_miss.
|
|
31
|
+
>
|
|
32
|
+
> **New in 1.8** โ **Universal Wallet API.** `WALLET_STATS`, `WALLET_PNL`, `WALLET_POSITIONS`, `WALLET_TRADES` โ FIFO cost-basis PnL and raw trades for any Solana wallet. PRO+. Cache hits free.
|
|
33
|
+
>
|
|
34
|
+
> **New in 1.7.0** *(2026-05-12)* โ **Account introspection + token scanner actions.** Two new actions: `meAction` (`GET_MADEONSOL_ACCOUNT`) reports the caller's tier, daily/burst quota, and webhook / copy-trade / coord-rule slot counts; `tokensListAction` (`LIST_MADEONSOL_TOKENS`) scans the Solana token universe by MC, liquidity, 1h momentum, and primary DEX. New client methods: `client.getMe()` and `client.getTokensList(params)`. Token responses now expose **velocity / MEV-share enrichment** fields. The `/tokens` scanner applies a default `min_liq=2000` so the agent isn't drowned in dust pools by default. `/token/{mint}` HTTP 400s now return structured `code` / `reason` / `example` / `docs` so the agent can self-correct bad mints. Deprecated `avg_entry_mc_usd` has been removed from all leaderboard payloads.
|
|
35
|
+
|
|
36
|
+
## Quick start (10 seconds)
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
npm install @madeonsol/plugin-madeonsol
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
```ts
|
|
43
|
+
import { madeOnSolPlugin } from "@madeonsol/plugin-madeonsol";
|
|
44
|
+
const agent = { plugins: [madeOnSolPlugin], settings: { MADEONSOL_API_KEY: "msk_..." } }; // free tier at https://madeonsol.com/pricing
|
|
45
|
+
// Then ask the agent: "What are KOLs buying right now?"
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Authentication
|
|
49
|
+
|
|
50
|
+
Three options (in priority order):
|
|
51
|
+
|
|
52
|
+
| Method | Setting | Best for |
|
|
53
|
+
|---|---|---|
|
|
54
|
+
| **MadeOnSol API key** (recommended) | `MADEONSOL_API_KEY` | Developers โ [get a free key](https://madeonsol.com/pricing) |
|
|
55
|
+
| x402 micropayments | `SVM_PRIVATE_KEY` | AI agents with Solana wallets |
|
|
56
|
+
|
|
57
|
+
## What it does
|
|
58
|
+
|
|
59
|
+
Gives your ElizaOS agent access to MadeOnSol's Solana intelligence API.
|
|
60
|
+
|
|
61
|
+
| Action | Description |
|
|
62
|
+
|--------|-------------|
|
|
63
|
+
| `GET_KOL_FEED` | Real-time KOL trade feed (1,000+ wallets) |
|
|
64
|
+
| `GET_KOL_COORDINATION` | Multi-KOL convergence (v1.1 โ peak-density, exits, 0-100 score) |
|
|
65
|
+
| `GET_KOL_LEADERBOARD` | KOL PnL/win-rate rankings (180 days of history) |
|
|
66
|
+
| `GET_DEPLOYER_ALERTS` | Pump.fun deployer alerts with KOL enrichment |
|
|
67
|
+
| `WALLET_TRACKER_WATCHLIST` | List your tracked wallets and remaining capacity |
|
|
68
|
+
| `WALLET_TRACKER_TRADES` | Recent swaps and transfers from your watchlist |
|
|
69
|
+
| `GET_MADEONSOL_ACCOUNT` | Your tier, daily quota, burst limit, and slot usage *(new in 1.7.0)* |
|
|
70
|
+
| `LIST_MADEONSOL_TOKENS` | Scan tokens by MC, liquidity, 1h momentum, primary DEX, plus momentum sorts (`mc_change_5m_desc`/`mc_change_1h_desc`/`volume_1h_desc`/`trending`) *(new in 1.7.0)* |
|
|
71
|
+
| `MADEONSOL_ALMOST_BONDED` | **New 1.14** ยท Pre-bond pump.fun tokens near graduation, ranked by velocity โ `progress_pct`, `velocity_pct_per_min`, `eta_minutes`, `stalled`, `deployer_tier` (PRO+) |
|
|
72
|
+
| `WALLET_STATS` | **New 1.8** ยท Stats + cross-product flags (is_kol, is_alpha_tracked + bot_confidence, is_deployer) for any wallet (PRO+) |
|
|
73
|
+
| `WALLET_PNL` | **New 1.8** ยท Full FIFO PnL โ realized + unrealized, profit factor, drawdown, hold times, top winners (PRO+) |
|
|
74
|
+
| `WALLET_POSITIONS` | **New 1.8** ยท Open positions with live unrealized SOL from market-cap tracker (PRO+) |
|
|
75
|
+
| `WALLET_TRADES` | **New 1.8** ยท Recent trades for any wallet, filtered by action (PRO+) |
|
|
76
|
+
| `GET_TOKEN_RISK` | **New 1.11** ยท Transparent 0โ100 rug-risk/safety score with band + explainable factors (PRO+) |
|
|
77
|
+
| `GET_TOKEN_CANDLES` | **New 1.12** ยท Historical OHLCV candles (1mโ1d). PRO=OHLCV 30d; ULTRA=+net flow, liquidity delta, full history (PRO+) |
|
|
78
|
+
| `GET_TOKEN_FLOW` | **New 1.13** ยท Net buy/sell flow over a 1h/24h window โ unique wallets/buyers/sellers, buy/sell counts, buy/sell/net SOL, trades-per-wallet (PRO+) |
|
|
79
|
+
|
|
80
|
+
## Install
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
npm install @madeonsol/plugin-madeonsol
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
> x402 peer deps (`@x402/fetch @x402/svm @x402/core @solana/kit @scure/base`) are only needed when using `SVM_PRIVATE_KEY`.
|
|
87
|
+
|
|
88
|
+
## Usage
|
|
89
|
+
|
|
90
|
+
```typescript
|
|
91
|
+
import { madeOnSolPlugin } from "@madeonsol/plugin-madeonsol";
|
|
92
|
+
|
|
93
|
+
const agent = {
|
|
94
|
+
plugins: [madeOnSolPlugin],
|
|
95
|
+
settings: {
|
|
96
|
+
// Option 1: API key โ get one free at madeonsol.com/pricing
|
|
97
|
+
MADEONSOL_API_KEY: "msk_your_api_key_here",
|
|
98
|
+
|
|
99
|
+
// Option 2: x402 micropayments (AI agents)
|
|
100
|
+
// SVM_PRIVATE_KEY: "your_base58_solana_private_key",
|
|
101
|
+
},
|
|
102
|
+
};
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### v1.1 Coordination alerts (programmatic)
|
|
106
|
+
|
|
107
|
+
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:
|
|
108
|
+
|
|
109
|
+
```ts
|
|
110
|
+
import { MadeOnSolClient } from "@madeonsol/plugin-madeonsol";
|
|
111
|
+
|
|
112
|
+
const client = new MadeOnSolClient({ apiKey: process.env.MADEONSOL_API_KEY });
|
|
113
|
+
const res = await client.coordinationAlertsCreate({
|
|
114
|
+
name: "fresh pump cluster",
|
|
115
|
+
min_kols: 4,
|
|
116
|
+
window_minutes: 15,
|
|
117
|
+
min_score: 70,
|
|
118
|
+
include_majors: false,
|
|
119
|
+
cooldown_min: 60,
|
|
120
|
+
score_jump_break: 10,
|
|
121
|
+
delivery_mode: "both",
|
|
122
|
+
webhook_url: "https://you.com/hooks/coord",
|
|
123
|
+
});
|
|
124
|
+
// store res.data.webhook_secret โ shown ONCE
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
PRO=5 rules, ULTRA=20. Also available: `coordinationAlertsList()`, `coordinationAlertsGet(id)`, `coordinationAlertsUpdate(id, updates)`, `coordinationAlertsDelete(id)`.
|
|
128
|
+
|
|
129
|
+
### First-touch signal *(new in 1.3)*
|
|
130
|
+
|
|
131
|
+
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.
|
|
132
|
+
|
|
133
|
+
**Backtest:** S-tier scouts attract โฅ3 follow-on KOLs within 4h ~50% of the time vs ~14% baseline (38d / 491k buys).
|
|
134
|
+
|
|
135
|
+
```ts
|
|
136
|
+
import { MadeOnSolClient } from "@madeonsol/plugin-madeonsol";
|
|
137
|
+
const client = new MadeOnSolClient({ apiKey: process.env.MADEONSOL_API_KEY });
|
|
138
|
+
|
|
139
|
+
// REST query
|
|
140
|
+
const { events } = await client.firstTouches({ preset: "scout", min_scout_tier: "S", limit: 20 });
|
|
141
|
+
|
|
142
|
+
// Webhook subscription (Ultra) โ push delivery, HMAC-signed
|
|
143
|
+
const { subscription, webhook_secret } = await client.firstTouchSubscriptionsCreate({
|
|
144
|
+
name: "S-tier scouts on pump tokens",
|
|
145
|
+
filters: { min_scout_tier: "S", mint_suffix: "pump" },
|
|
146
|
+
delivery_mode: "webhook",
|
|
147
|
+
webhook_url: "https://you.com/hooks/scout",
|
|
148
|
+
});
|
|
149
|
+
// store webhook_secret โ shown ONCE
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
ULTRA only for subscriptions โ up to 10 active. CRUD: `firstTouchSubscriptionsList()`, `firstTouchSubscriptionsGet(id)`, `firstTouchSubscriptionsUpdate(id, updates)`, `firstTouchSubscriptionsDelete(id)`.
|
|
153
|
+
|
|
154
|
+
> **Don't poll โ push.** Median lead time before the second KOL is 12 seconds. WebSocket channel: `kol:first_touches`.
|
|
155
|
+
|
|
156
|
+
### Price alerts *(new in 1.9)*
|
|
157
|
+
|
|
158
|
+
CRUD for token dip/recovery price alerts. Fires when a token's market cap crosses your threshold. PRO=5 rules, ULTRA=25.
|
|
159
|
+
|
|
160
|
+
| Action | Description |
|
|
161
|
+
|---|---|
|
|
162
|
+
| `PRICE_ALERTS_LIST` | List your price alert rules |
|
|
163
|
+
| `PRICE_ALERTS_CREATE` | Create a dip/recovery alert rule |
|
|
164
|
+
| `PRICE_ALERTS_DELETE` | Delete a price alert rule |
|
|
165
|
+
|
|
166
|
+
```ts
|
|
167
|
+
import { MadeOnSolClient } from "@madeonsol/plugin-madeonsol";
|
|
168
|
+
const client = new MadeOnSolClient({ apiKey: process.env.MADEONSOL_API_KEY });
|
|
169
|
+
|
|
170
|
+
const { alert, webhook_secret } = await client.priceAlertsCreate({
|
|
171
|
+
name: "SOL dip buy",
|
|
172
|
+
token_mint: "So11111111111111111111111111111111111111112",
|
|
173
|
+
condition: "below",
|
|
174
|
+
threshold_mc_usd: 5_000_000_000,
|
|
175
|
+
cooldown_min: 120,
|
|
176
|
+
delivery_mode: "both",
|
|
177
|
+
webhook_url: "https://you.com/hooks/price",
|
|
178
|
+
});
|
|
179
|
+
// store webhook_secret โ shown ONCE
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
Also available: `priceAlertsList()`, `priceAlertsGet(id)`, `priceAlertsUpdate(id, updates)`, `priceAlertsDelete(id)`.
|
|
183
|
+
|
|
184
|
+
### Scout leaderboard & KOL consensus *(new in 1.9)*
|
|
185
|
+
|
|
186
|
+
| Action | Description |
|
|
187
|
+
|---|---|
|
|
188
|
+
| `SCOUT_LEADERBOARD` | Top scout-tier KOLs ranked by first-touch follow-on rate, win rate, and ROI (PRO+) |
|
|
189
|
+
| `KOL_CONSENSUS` | Tokens with the strongest KOL agreement signal (PRO+) |
|
|
190
|
+
| `PEAK_HISTORY` | Historical peak-density windows for a token (PRO+) |
|
|
191
|
+
| `COORDINATION_HISTORY` | Global coordination event log (PRO+) |
|
|
192
|
+
|
|
193
|
+
### Token net flow *(new in 1.13)*
|
|
194
|
+
|
|
195
|
+
`GET_TOKEN_FLOW` (or `client.getTokenFlow(mint, { window })`) returns net buy/sell flow over a rolling `1h` (default) or `24h` window. PRO+.
|
|
196
|
+
|
|
197
|
+
```ts
|
|
198
|
+
import { MadeOnSolClient } from "@madeonsol/plugin-madeonsol";
|
|
199
|
+
const client = new MadeOnSolClient({ apiKey: process.env.MADEONSOL_API_KEY });
|
|
200
|
+
|
|
201
|
+
const { data } = await client.getTokenFlow("7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU", { window: "24h" });
|
|
202
|
+
// { mint, window, from, unique_wallets, unique_buyers, unique_sellers,
|
|
203
|
+
// buy_count, sell_count, total_trades, buy_sol, sell_sol, net_sol, trades_per_wallet }
|
|
204
|
+
console.log(`Net ${data.net_sol} SOL across ${data.unique_wallets} wallets`);
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
> Deployer alerts (`GET_DEPLOYER_ALERTS` / `client.getDeployerAlerts()`) now include `deployer_sol_balance` โ the deployer wallet's SOL balance at alert time (`null` for historical rows).
|
|
208
|
+
|
|
209
|
+
### Batch risk scoring & WebSocket session control *(new in 1.15)*
|
|
210
|
+
|
|
211
|
+
Score up to 50 mints in one request, and list/kill your live WebSocket sessions โ both client-only, PRO/ULTRA.
|
|
212
|
+
|
|
213
|
+
```ts
|
|
214
|
+
import { MadeOnSolClient } from "@madeonsol/plugin-madeonsol";
|
|
215
|
+
const client = new MadeOnSolClient({ apiKey: process.env.MADEONSOL_API_KEY });
|
|
216
|
+
|
|
217
|
+
// Bulk rug-risk โ one request, up to 50 mints
|
|
218
|
+
const { data } = await client.getTokenRiskBatch([mintA, mintB, mintC]);
|
|
219
|
+
// { tokens: [ { mint, risk_score, band, factors, inputs, as_of } | { mint, error: "not_tracked" } ], count }
|
|
220
|
+
|
|
221
|
+
// Live WebSocket sessions
|
|
222
|
+
const { data: s } = await client.getStreamSessions();
|
|
223
|
+
// { sessions: [ { id, service, tier, channels, connected_at, remote_ip, messages_sent } ], count }
|
|
224
|
+
await client.deleteStreamSession(s.sessions[0].id); // โ { evicted: true, id }
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
### Wallet derived stats *(new in 1.9)*
|
|
228
|
+
|
|
229
|
+
`WALLET_STATS` now returns a `stats` object with derived fields: `win_rate` (0-1), `roi`, `verdict` ("strong" | "profitable" | "neutral" | "losing"), and `biggest_miss` (token with the highest post-exit gain the wallet missed).
|
|
230
|
+
|
|
231
|
+
Your agent can then respond to queries like:
|
|
232
|
+
- "What are KOLs buying right now?"
|
|
233
|
+
- "Show me the KOL leaderboard this week"
|
|
234
|
+
- "What tokens are multiple KOLs accumulating?"
|
|
235
|
+
- "Any new deployer alerts from Pump.fun?"
|
|
236
|
+
- "Show my wallet tracker watchlist"
|
|
237
|
+
- "What did my tracked wallets trade recently?"
|
|
238
|
+
|
|
239
|
+
## Tiers
|
|
240
|
+
|
|
241
|
+
| Tier | Price | Wallets tracked | Requests/day |
|
|
242
|
+
|------|-------|-----------------|--------------|
|
|
243
|
+
| BASIC (free) | $0 | 10 | 200 |
|
|
244
|
+
| PRO | โฌ43/mo (โฌ430/yr) โ $49 | 50 | 10,000 |
|
|
245
|
+
| ULTRA | โฌ131/mo (โฌ1310/yr) โ $149 | 100 + WS events | 100,000 |
|
|
246
|
+
|
|
247
|
+
Free tier returns the full REST response shape on every endpoint โ real wallets, TX signatures, full precision. Paid tiers unlock webhooks, WebSockets, rule engines, and ULTRA-only data depth. Get a key at [madeonsol.com/pricing](https://madeonsol.com/pricing).
|
|
248
|
+
|
|
249
|
+
## Also Available
|
|
250
|
+
|
|
251
|
+
| Platform | Package |
|
|
252
|
+
|---|---|
|
|
253
|
+
| TypeScript SDK | [`madeonsol`](https://www.npmjs.com/package/madeonsol) on npm |
|
|
254
|
+
| Rust SDK | [`madeonsol`](https://crates.io/crates/madeonsol) on crates.io |
|
|
255
|
+
| Python (LangChain, CrewAI) | [`madeonsol-x402`](https://pypi.org/project/madeonsol-x402/) on PyPI |
|
|
256
|
+
| 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) |
|
|
257
|
+
| Solana Agent Kit | [`solana-agent-kit-plugin-madeonsol`](https://www.npmjs.com/package/solana-agent-kit-plugin-madeonsol) |
|
|
258
|
+
|
|
259
|
+
## License
|
|
260
|
+
|
|
261
|
+
MIT
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Action } from "@elizaos/core";
|
|
2
|
+
/**
|
|
3
|
+
* Scan pre-bond pump.fun tokens approaching graduation, ranked by velocity.
|
|
4
|
+
* Heuristics pulled from the user prompt: "fast"/"accelerating" โ sort by
|
|
5
|
+
* velocity, "soon"/"closest" โ sort by ETA, "elite deployer" โ deployer_tier.
|
|
6
|
+
*/
|
|
7
|
+
export declare const almostBondedAction: Action;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { MadeOnSolClient } from "../client.js";
|
|
2
|
+
import { MADEONSOL_CLIENT_KEY } from "../index.js";
|
|
3
|
+
function getClient(runtime) {
|
|
4
|
+
return runtime[MADEONSOL_CLIENT_KEY] ?? new MadeOnSolClient();
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Scan pre-bond pump.fun tokens approaching graduation, ranked by velocity.
|
|
8
|
+
* Heuristics pulled from the user prompt: "fast"/"accelerating" โ sort by
|
|
9
|
+
* velocity, "soon"/"closest" โ sort by ETA, "elite deployer" โ deployer_tier.
|
|
10
|
+
*/
|
|
11
|
+
export const almostBondedAction = {
|
|
12
|
+
name: "MADEONSOL_ALMOST_BONDED",
|
|
13
|
+
description: "Find pre-bond pump.fun tokens near graduation, ranked by velocity (ฮprogress/min). Returns mint, symbol, bonding progress %, velocity, ETA-to-bond, stalled flag, and deployer tier. PRO/ULTRA only.",
|
|
14
|
+
similes: [
|
|
15
|
+
"almost bonded",
|
|
16
|
+
"about to graduate",
|
|
17
|
+
"near graduation",
|
|
18
|
+
"tokens about to bond",
|
|
19
|
+
"almost graduated",
|
|
20
|
+
"pre-bond tokens",
|
|
21
|
+
],
|
|
22
|
+
validate: async (_runtime, message) => {
|
|
23
|
+
const text = (message.content?.text || "").toLowerCase();
|
|
24
|
+
return /\b(almost bonded|about to graduate|near graduation|about to bond|pre-?bond|almost graduated)\b/.test(text);
|
|
25
|
+
},
|
|
26
|
+
handler: async (runtime, message, _state, _options, callback) => {
|
|
27
|
+
const client = getClient(runtime);
|
|
28
|
+
const text = (message.content?.text || "").toLowerCase();
|
|
29
|
+
const params = { limit: "10" };
|
|
30
|
+
if (/soon|closest|fastest to bond|eta/.test(text))
|
|
31
|
+
params.sort = "eta_asc";
|
|
32
|
+
else if (/accelerat|fast|velocity|momentum/.test(text))
|
|
33
|
+
params.sort = "velocity_desc";
|
|
34
|
+
if (/elite/.test(text))
|
|
35
|
+
params.deployer_tier = "elite";
|
|
36
|
+
const result = await client.getAlmostBonded(params);
|
|
37
|
+
if (result.error) {
|
|
38
|
+
callback?.({ text: result.status === 402
|
|
39
|
+
? "Authentication required. Set MADEONSOL_API_KEY โ free at https://madeonsol.com/pricing โ or SVM_PRIVATE_KEY."
|
|
40
|
+
: `Error: ${result.error}` });
|
|
41
|
+
return undefined;
|
|
42
|
+
}
|
|
43
|
+
const data = result.data;
|
|
44
|
+
const tokens = (data.tokens || []).slice(0, 10);
|
|
45
|
+
const lines = tokens.map((t, i) => {
|
|
46
|
+
const label = t.symbol || t.name || "?";
|
|
47
|
+
const prog = t.progress_pct != null && isFinite(t.progress_pct) ? `${t.progress_pct.toFixed(1)}%` : "?";
|
|
48
|
+
const vel = t.velocity_pct_per_min != null && isFinite(t.velocity_pct_per_min)
|
|
49
|
+
? ` @ ${t.velocity_pct_per_min >= 0 ? "+" : ""}${t.velocity_pct_per_min.toFixed(2)}%/min`
|
|
50
|
+
: "";
|
|
51
|
+
const eta = t.eta_minutes != null && isFinite(t.eta_minutes) ? ` (ETA ~${t.eta_minutes}m)` : "";
|
|
52
|
+
const tier = t.deployer_tier ? ` [${t.deployer_tier}]` : "";
|
|
53
|
+
return `${i + 1}. ${label} ${t.mint.slice(0, 8)}โฆ โ ${prog} bonded${vel}${eta}${tier}`;
|
|
54
|
+
});
|
|
55
|
+
callback?.({
|
|
56
|
+
text: tokens.length
|
|
57
|
+
? `Almost-bonded pump.fun tokens:\n${lines.join("\n")}`
|
|
58
|
+
: "No pre-bond tokens matched those filters.",
|
|
59
|
+
content: data,
|
|
60
|
+
});
|
|
61
|
+
return undefined;
|
|
62
|
+
},
|
|
63
|
+
examples: [
|
|
64
|
+
[
|
|
65
|
+
{ name: "user1", content: { text: "Show me pump.fun tokens about to graduate, fastest first" } },
|
|
66
|
+
{ name: "assistant", content: { text: "Here are the almost-bonded tokens ranked by velocity..." } },
|
|
67
|
+
],
|
|
68
|
+
],
|
|
69
|
+
};
|
package/dist/client.d.ts
CHANGED
|
@@ -34,6 +34,45 @@ export interface TokenFlow {
|
|
|
34
34
|
net_sol: number;
|
|
35
35
|
trades_per_wallet: number;
|
|
36
36
|
}
|
|
37
|
+
/** Transparent 0โ100 rug-risk/safety score (higher = riskier). Returned by `getTokenRisk`. */
|
|
38
|
+
export interface TokenRisk {
|
|
39
|
+
mint: string;
|
|
40
|
+
risk_score: number;
|
|
41
|
+
band: string;
|
|
42
|
+
factors?: Array<{
|
|
43
|
+
label: string;
|
|
44
|
+
status: string;
|
|
45
|
+
detail: string;
|
|
46
|
+
}>;
|
|
47
|
+
inputs?: Record<string, unknown>;
|
|
48
|
+
}
|
|
49
|
+
/** A per-mint entry in the batch-risk response: a risk result (with `as_of`), or an error object. */
|
|
50
|
+
export type BatchRiskEntry = (TokenRisk & {
|
|
51
|
+
as_of: string;
|
|
52
|
+
}) | {
|
|
53
|
+
mint: string;
|
|
54
|
+
error: "not_tracked" | "error";
|
|
55
|
+
};
|
|
56
|
+
/** Response of `getTokenRiskBatch`. `tokens` preserves de-duplicated input order; `count` = unique mints. */
|
|
57
|
+
export interface BatchRiskResponse {
|
|
58
|
+
tokens: BatchRiskEntry[];
|
|
59
|
+
count: number;
|
|
60
|
+
}
|
|
61
|
+
/** A live WebSocket streaming session. Returned by `getStreamSessions`. */
|
|
62
|
+
export interface StreamSession {
|
|
63
|
+
id: string;
|
|
64
|
+
service: "ws-streaming" | "dex-stream";
|
|
65
|
+
tier: string;
|
|
66
|
+
channels: string[];
|
|
67
|
+
connected_at: string;
|
|
68
|
+
remote_ip: string | null;
|
|
69
|
+
messages_sent: number;
|
|
70
|
+
}
|
|
71
|
+
/** Response of `getStreamSessions`. */
|
|
72
|
+
export interface StreamSessionsResponse {
|
|
73
|
+
sessions: StreamSession[];
|
|
74
|
+
count: number;
|
|
75
|
+
}
|
|
37
76
|
export declare class MadeOnSolClient {
|
|
38
77
|
private baseUrl;
|
|
39
78
|
private fetchFn;
|
|
@@ -205,6 +244,25 @@ export declare class MadeOnSolClient {
|
|
|
205
244
|
error?: string;
|
|
206
245
|
status: number;
|
|
207
246
|
}>;
|
|
247
|
+
/** List the caller's live WebSocket streaming sessions across ws-streaming + dex-stream. PRO+. */
|
|
248
|
+
getStreamSessions(): Promise<{
|
|
249
|
+
data?: StreamSessionsResponse | undefined;
|
|
250
|
+
error?: string;
|
|
251
|
+
status: number;
|
|
252
|
+
}>;
|
|
253
|
+
/**
|
|
254
|
+
* Force-evict (kill) a live WebSocket session by id โ frees a connection slot.
|
|
255
|
+
* Returns `{ evicted: true, id }`; 404 if no session with that id, 400 if `id` is
|
|
256
|
+
* not a positive integer. PRO+.
|
|
257
|
+
*/
|
|
258
|
+
deleteStreamSession(id: number | string): Promise<{
|
|
259
|
+
data?: {
|
|
260
|
+
evicted: true;
|
|
261
|
+
id: string;
|
|
262
|
+
} | undefined;
|
|
263
|
+
error?: string;
|
|
264
|
+
status: number;
|
|
265
|
+
}>;
|
|
208
266
|
getWalletTrackerWatchlist(): Promise<{
|
|
209
267
|
data?: unknown;
|
|
210
268
|
error?: string;
|
|
@@ -297,7 +355,7 @@ export declare class MadeOnSolClient {
|
|
|
297
355
|
}>;
|
|
298
356
|
/** Transparent 0โ100 rug-risk/safety score (higher = riskier) with band, explainable factors, and raw inputs. PRO+. */
|
|
299
357
|
getTokenRisk(mint: string): Promise<{
|
|
300
|
-
data?:
|
|
358
|
+
data?: TokenRisk | undefined;
|
|
301
359
|
error?: string;
|
|
302
360
|
status: number;
|
|
303
361
|
}>;
|
|
@@ -330,6 +388,17 @@ export declare class MadeOnSolClient {
|
|
|
330
388
|
error?: string;
|
|
331
389
|
status: number;
|
|
332
390
|
}>;
|
|
391
|
+
/**
|
|
392
|
+
* Bulk rug-risk scoring for up to 50 mints (1โ50). Each entry is the single-mint
|
|
393
|
+
* risk shape plus an `as_of` ISO timestamp, or `{ mint, error: "not_tracked" }` for
|
|
394
|
+
* untracked mints (untracked mints do NOT fail the batch). `tokens` preserves
|
|
395
|
+
* de-duplicated input order; `count` = unique mints. Counts as 1 request. PRO/ULTRA only.
|
|
396
|
+
*/
|
|
397
|
+
getTokenRiskBatch(mints: string[]): Promise<{
|
|
398
|
+
data?: BatchRiskResponse | undefined;
|
|
399
|
+
error?: string;
|
|
400
|
+
status: number;
|
|
401
|
+
}>;
|
|
333
402
|
/** Comprehensive per-mint snapshot: price, MC, volume, deployer, KOL activity, age, blacklist. */
|
|
334
403
|
getToken(mint: string): Promise<{
|
|
335
404
|
data?: unknown;
|
|
@@ -503,6 +572,28 @@ export declare class MadeOnSolClient {
|
|
|
503
572
|
error?: string;
|
|
504
573
|
status: number;
|
|
505
574
|
}>;
|
|
575
|
+
/**
|
|
576
|
+
* v1.14 โ Pre-bond pump.fun tokens approaching graduation, ranked by velocity
|
|
577
|
+
* (ฮprogress/min): "95% and accelerating" beats "92% stalled". Each token is
|
|
578
|
+
* enriched with its deployer's reputation tier. `progress_pct` is from on-chain
|
|
579
|
+
* real_token_reserves; `velocity_pct_per_min` is null until a 5m snapshot exists;
|
|
580
|
+
* `eta_minutes` is a linear projection. PRO/ULTRA only.
|
|
581
|
+
*/
|
|
582
|
+
getAlmostBonded(params?: {
|
|
583
|
+
min_progress?: string;
|
|
584
|
+
max_progress?: string;
|
|
585
|
+
min_velocity_pct_per_min?: string;
|
|
586
|
+
max_age_minutes?: string;
|
|
587
|
+
deployer_tier?: string;
|
|
588
|
+
authority_revoked?: string;
|
|
589
|
+
min_liq?: string;
|
|
590
|
+
sort?: string;
|
|
591
|
+
limit?: string;
|
|
592
|
+
}): Promise<{
|
|
593
|
+
data?: unknown;
|
|
594
|
+
error?: string;
|
|
595
|
+
status: number;
|
|
596
|
+
}>;
|
|
506
597
|
copyTradeSignals(params?: {
|
|
507
598
|
rule_id?: string;
|
|
508
599
|
limit?: string;
|
package/dist/client.js
CHANGED
|
@@ -19,7 +19,7 @@ export class MadeOnSolClient {
|
|
|
19
19
|
this.authHeaders = {};
|
|
20
20
|
if (options.apiKey) {
|
|
21
21
|
this.authMode = "madeonsol";
|
|
22
|
-
this.authHeaders = { Authorization: `Bearer ${options.apiKey}`, "User-Agent": "plugin-madeonsol/1.
|
|
22
|
+
this.authHeaders = { Authorization: `Bearer ${options.apiKey}`, "User-Agent": "plugin-madeonsol/1.15.0" };
|
|
23
23
|
}
|
|
24
24
|
else if (options.fetchFn) {
|
|
25
25
|
this.authMode = "x402";
|
|
@@ -147,6 +147,19 @@ export class MadeOnSolClient {
|
|
|
147
147
|
getStreamToken() {
|
|
148
148
|
return this.restRequest("POST", "/stream/token");
|
|
149
149
|
}
|
|
150
|
+
// โโ Live WebSocket sessions (PRO/ULTRA) โโ
|
|
151
|
+
/** List the caller's live WebSocket streaming sessions across ws-streaming + dex-stream. PRO+. */
|
|
152
|
+
getStreamSessions() {
|
|
153
|
+
return this.restRequest("GET", "/stream/sessions");
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Force-evict (kill) a live WebSocket session by id โ frees a connection slot.
|
|
157
|
+
* Returns `{ evicted: true, id }`; 404 if no session with that id, 400 if `id` is
|
|
158
|
+
* not a positive integer. PRO+.
|
|
159
|
+
*/
|
|
160
|
+
deleteStreamSession(id) {
|
|
161
|
+
return this.restRequest("DELETE", `/stream/sessions/${id}`);
|
|
162
|
+
}
|
|
150
163
|
// โโ Wallet Tracker โโ
|
|
151
164
|
getWalletTrackerWatchlist() {
|
|
152
165
|
return this.restRequest("GET", "/wallet-tracker/watchlist");
|
|
@@ -258,6 +271,15 @@ export class MadeOnSolClient {
|
|
|
258
271
|
getTokenBuyerQualityBatch(mints) {
|
|
259
272
|
return this.restRequest("POST", "/tokens/batch/buyer-quality", { mints });
|
|
260
273
|
}
|
|
274
|
+
/**
|
|
275
|
+
* Bulk rug-risk scoring for up to 50 mints (1โ50). Each entry is the single-mint
|
|
276
|
+
* risk shape plus an `as_of` ISO timestamp, or `{ mint, error: "not_tracked" }` for
|
|
277
|
+
* untracked mints (untracked mints do NOT fail the batch). `tokens` preserves
|
|
278
|
+
* de-duplicated input order; `count` = unique mints. Counts as 1 request. PRO/ULTRA only.
|
|
279
|
+
*/
|
|
280
|
+
getTokenRiskBatch(mints) {
|
|
281
|
+
return this.restRequest("POST", "/tokens/batch/risk", { mints });
|
|
282
|
+
}
|
|
261
283
|
// โโ Token intelligence (/token/{mint}) โโ
|
|
262
284
|
/** Comprehensive per-mint snapshot: price, MC, volume, deployer, KOL activity, age, blacklist. */
|
|
263
285
|
getToken(mint) {
|
|
@@ -345,6 +367,24 @@ export class MadeOnSolClient {
|
|
|
345
367
|
const query = qs.toString() ? `?${qs.toString()}` : "";
|
|
346
368
|
return this.restRequest("GET", `/tokens${query}`);
|
|
347
369
|
}
|
|
370
|
+
/**
|
|
371
|
+
* v1.14 โ Pre-bond pump.fun tokens approaching graduation, ranked by velocity
|
|
372
|
+
* (ฮprogress/min): "95% and accelerating" beats "92% stalled". Each token is
|
|
373
|
+
* enriched with its deployer's reputation tier. `progress_pct` is from on-chain
|
|
374
|
+
* real_token_reserves; `velocity_pct_per_min` is null until a 5m snapshot exists;
|
|
375
|
+
* `eta_minutes` is a linear projection. PRO/ULTRA only.
|
|
376
|
+
*/
|
|
377
|
+
getAlmostBonded(params) {
|
|
378
|
+
const qs = new URLSearchParams();
|
|
379
|
+
if (params) {
|
|
380
|
+
for (const [k, v] of Object.entries(params)) {
|
|
381
|
+
if (v !== undefined)
|
|
382
|
+
qs.set(k, v);
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
const query = qs.toString() ? `?${qs.toString()}` : "";
|
|
386
|
+
return this.restRequest("GET", `/tokens/almost-bonded${query}`);
|
|
387
|
+
}
|
|
348
388
|
copyTradeSignals(params) {
|
|
349
389
|
const qs = new URLSearchParams();
|
|
350
390
|
if (params)
|
package/dist/index.d.ts
CHANGED
|
@@ -12,6 +12,7 @@ import { tokenCandlesAction } from "./actions/token-candles.js";
|
|
|
12
12
|
import { tokenFlowAction } from "./actions/token-flow.js";
|
|
13
13
|
import { meAction } from "./actions/me.js";
|
|
14
14
|
import { tokensListAction } from "./actions/tokens-list.js";
|
|
15
|
+
import { almostBondedAction } from "./actions/almost-bonded.js";
|
|
15
16
|
import { walletStatsAction, walletPnlAction, walletPositionsAction, walletTradesAction } from "./actions/wallet.js";
|
|
16
17
|
/** Key used to store the initialized client on the runtime */
|
|
17
18
|
export declare const MADEONSOL_CLIENT_KEY = "madeonsol:client";
|
|
@@ -21,5 +22,5 @@ export { MadeOnSolClient } from "./client.js";
|
|
|
21
22
|
export { kolFeedAction, kolCoordinationAction, kolLeaderboardAction, deployerAlertsAction };
|
|
22
23
|
export { walletTrackerWatchlistAction, walletTrackerTradesAction };
|
|
23
24
|
export { kolTokenEntryOrderAction, kolCompareAction, kolAlertsRecentAction, tokenRiskAction, tokenCandlesAction, tokenFlowAction };
|
|
24
|
-
export { meAction, tokensListAction };
|
|
25
|
+
export { meAction, tokensListAction, almostBondedAction };
|
|
25
26
|
export { walletStatsAction, walletPnlAction, walletPositionsAction, walletTradesAction };
|
package/dist/index.js
CHANGED
|
@@ -11,6 +11,7 @@ import { tokenCandlesAction } from "./actions/token-candles.js";
|
|
|
11
11
|
import { tokenFlowAction } from "./actions/token-flow.js";
|
|
12
12
|
import { meAction } from "./actions/me.js";
|
|
13
13
|
import { tokensListAction } from "./actions/tokens-list.js";
|
|
14
|
+
import { almostBondedAction } from "./actions/almost-bonded.js";
|
|
14
15
|
import { walletStatsAction, walletPnlAction, walletPositionsAction, walletTradesAction } from "./actions/wallet.js";
|
|
15
16
|
import { MadeOnSolClient } from "./client.js";
|
|
16
17
|
/** Key used to store the initialized client on the runtime */
|
|
@@ -33,6 +34,7 @@ export const madeOnSolPlugin = {
|
|
|
33
34
|
tokenFlowAction,
|
|
34
35
|
meAction,
|
|
35
36
|
tokensListAction,
|
|
37
|
+
almostBondedAction,
|
|
36
38
|
walletStatsAction,
|
|
37
39
|
walletPnlAction,
|
|
38
40
|
walletPositionsAction,
|
|
@@ -85,5 +87,5 @@ export { MadeOnSolClient } from "./client.js";
|
|
|
85
87
|
export { kolFeedAction, kolCoordinationAction, kolLeaderboardAction, deployerAlertsAction };
|
|
86
88
|
export { walletTrackerWatchlistAction, walletTrackerTradesAction };
|
|
87
89
|
export { kolTokenEntryOrderAction, kolCompareAction, kolAlertsRecentAction, tokenRiskAction, tokenCandlesAction, tokenFlowAction };
|
|
88
|
-
export { meAction, tokensListAction };
|
|
90
|
+
export { meAction, tokensListAction, almostBondedAction };
|
|
89
91
|
export { walletStatsAction, walletPnlAction, walletPositionsAction, walletTradesAction };
|
package/package.json
CHANGED
|
@@ -1,74 +1,74 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@madeonsol/plugin-madeonsol",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "ElizaOS plugin for MadeOnSol โ Solana KOL intelligence and deployer analytics via x402 micropayments",
|
|
5
|
-
"repository": {
|
|
6
|
-
"type": "git",
|
|
7
|
-
"url": "https://github.com/LamboPoewert/plugin-madeonsol"
|
|
8
|
-
},
|
|
9
|
-
"homepage": "https://madeonsol.com/solana-api",
|
|
10
|
-
"type": "module",
|
|
11
|
-
"main": "dist/index.js",
|
|
12
|
-
"types": "dist/index.d.ts",
|
|
13
|
-
"files": [
|
|
14
|
-
"dist",
|
|
15
|
-
"README.md",
|
|
16
|
-
"LICENSE"
|
|
17
|
-
],
|
|
18
|
-
"scripts": {
|
|
19
|
-
"build": "tsc",
|
|
20
|
-
"dev": "tsc --watch",
|
|
21
|
-
"preflight": "bash ../../scripts/preflight-publish.sh",
|
|
22
|
-
"prepublishOnly": "npm run preflight && npm run build"
|
|
23
|
-
},
|
|
24
|
-
"peerDependencies": {
|
|
25
|
-
"@elizaos/core": ">=1.0.0",
|
|
26
|
-
"@scure/base": ">=1.0.0",
|
|
27
|
-
"@solana/kit": ">=2.0.0",
|
|
28
|
-
"@x402/core": ">=0.1.0",
|
|
29
|
-
"@x402/fetch": ">=0.1.0",
|
|
30
|
-
"@x402/svm": ">=0.1.0"
|
|
31
|
-
},
|
|
32
|
-
"agentConfig": {
|
|
33
|
-
"pluginType": "elizaos:plugin:1.0.0",
|
|
34
|
-
"pluginParameters": {
|
|
35
|
-
"MADEONSOL_API_URL": {
|
|
36
|
-
"type": "string",
|
|
37
|
-
"description": "MadeOnSol API base URL",
|
|
38
|
-
"required": false,
|
|
39
|
-
"default": "https://madeonsol.com"
|
|
40
|
-
},
|
|
41
|
-
"SVM_PRIVATE_KEY": {
|
|
42
|
-
"type": "string",
|
|
43
|
-
"description": "Solana private key (base58) for automatic x402 USDC payments",
|
|
44
|
-
"required": true,
|
|
45
|
-
"sensitive": true
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
},
|
|
49
|
-
"keywords": [
|
|
50
|
-
"elizaos",
|
|
51
|
-
"eliza",
|
|
52
|
-
"plugin",
|
|
53
|
-
"elizaos-plugin",
|
|
54
|
-
"ai-agent",
|
|
55
|
-
"solana",
|
|
56
|
-
"kol",
|
|
57
|
-
"kol-tracker",
|
|
58
|
-
"x402",
|
|
59
|
-
"memecoin",
|
|
60
|
-
"memecoin-tracker",
|
|
61
|
-
"pumpfun",
|
|
62
|
-
"deployer-hunter",
|
|
63
|
-
"alpha",
|
|
64
|
-
"alpha-bot",
|
|
65
|
-
"smart-money",
|
|
66
|
-
"copy-trading",
|
|
67
|
-
"trading",
|
|
68
|
-
"madeonsol"
|
|
69
|
-
],
|
|
70
|
-
"license": "MIT",
|
|
71
|
-
"devDependencies": {
|
|
72
|
-
"@elizaos/core": "^2.0.0-alpha.77"
|
|
73
|
-
}
|
|
74
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@madeonsol/plugin-madeonsol",
|
|
3
|
+
"version": "1.15.0",
|
|
4
|
+
"description": "ElizaOS plugin for MadeOnSol โ Solana KOL intelligence and deployer analytics via x402 micropayments",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "https://github.com/LamboPoewert/plugin-madeonsol"
|
|
8
|
+
},
|
|
9
|
+
"homepage": "https://madeonsol.com/solana-api",
|
|
10
|
+
"type": "module",
|
|
11
|
+
"main": "dist/index.js",
|
|
12
|
+
"types": "dist/index.d.ts",
|
|
13
|
+
"files": [
|
|
14
|
+
"dist",
|
|
15
|
+
"README.md",
|
|
16
|
+
"LICENSE"
|
|
17
|
+
],
|
|
18
|
+
"scripts": {
|
|
19
|
+
"build": "tsc",
|
|
20
|
+
"dev": "tsc --watch",
|
|
21
|
+
"preflight": "bash ../../scripts/preflight-publish.sh",
|
|
22
|
+
"prepublishOnly": "npm run preflight && npm run build"
|
|
23
|
+
},
|
|
24
|
+
"peerDependencies": {
|
|
25
|
+
"@elizaos/core": ">=1.0.0",
|
|
26
|
+
"@scure/base": ">=1.0.0",
|
|
27
|
+
"@solana/kit": ">=2.0.0",
|
|
28
|
+
"@x402/core": ">=0.1.0",
|
|
29
|
+
"@x402/fetch": ">=0.1.0",
|
|
30
|
+
"@x402/svm": ">=0.1.0"
|
|
31
|
+
},
|
|
32
|
+
"agentConfig": {
|
|
33
|
+
"pluginType": "elizaos:plugin:1.0.0",
|
|
34
|
+
"pluginParameters": {
|
|
35
|
+
"MADEONSOL_API_URL": {
|
|
36
|
+
"type": "string",
|
|
37
|
+
"description": "MadeOnSol API base URL",
|
|
38
|
+
"required": false,
|
|
39
|
+
"default": "https://madeonsol.com"
|
|
40
|
+
},
|
|
41
|
+
"SVM_PRIVATE_KEY": {
|
|
42
|
+
"type": "string",
|
|
43
|
+
"description": "Solana private key (base58) for automatic x402 USDC payments",
|
|
44
|
+
"required": true,
|
|
45
|
+
"sensitive": true
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"keywords": [
|
|
50
|
+
"elizaos",
|
|
51
|
+
"eliza",
|
|
52
|
+
"plugin",
|
|
53
|
+
"elizaos-plugin",
|
|
54
|
+
"ai-agent",
|
|
55
|
+
"solana",
|
|
56
|
+
"kol",
|
|
57
|
+
"kol-tracker",
|
|
58
|
+
"x402",
|
|
59
|
+
"memecoin",
|
|
60
|
+
"memecoin-tracker",
|
|
61
|
+
"pumpfun",
|
|
62
|
+
"deployer-hunter",
|
|
63
|
+
"alpha",
|
|
64
|
+
"alpha-bot",
|
|
65
|
+
"smart-money",
|
|
66
|
+
"copy-trading",
|
|
67
|
+
"trading",
|
|
68
|
+
"madeonsol"
|
|
69
|
+
],
|
|
70
|
+
"license": "MIT",
|
|
71
|
+
"devDependencies": {
|
|
72
|
+
"@elizaos/core": "^2.0.0-alpha.77"
|
|
73
|
+
}
|
|
74
|
+
}
|