solana-agent-kit-plugin-madeonsol 1.17.0 → 1.18.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 +6 -0
- package/dist/actions/tokenTrades.d.ts +59 -0
- package/dist/actions/tokenTrades.js +34 -0
- package/dist/actions/walletClassify.d.ts +33 -0
- package/dist/actions/walletClassify.js +28 -0
- package/dist/index.d.ts +64 -3
- package/dist/index.js +9 -3
- package/dist/tools/index.d.ts +28 -0
- package/dist/tools/index.js +36 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -11,6 +11,8 @@
|
|
|
11
11
|
|
|
12
12
|
> Real-time Solana trading intelligence: track 1,069 KOL wallets with <3s latency, score 23,000+ Pump.fun deployers, verify any wallet's CURRENT on-chain holdings straight from its token accounts, 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
13
|
|
|
14
|
+
> **New in 1.18.0** — **Wallet batch classify + token trade tape.** New tool `walletClassify()` + action `MADEONSOL_WALLET_CLASSIFY_ACTION` — bulk reputation flags for 1–100 wallets in one call (`POST /wallet/batch/classify`): per wallet `is_sniper`, `is_bundler` (lifetime flag), `is_dumper` (rolling 42-day window), `is_kol` + `kol_name`, `bot_confidence` (string enum `"none"`/`"low"`/`"medium"`/`"high"` | null — never a number), and `dump_cluster` cohort stats (`dump_cohorts`, `runner_cohorts`, `total_cohorts`, `as_of`). Flags are pump.fun-pipeline scoped — `false` = not observed, NOT verified clean. New tool `tokenTrades()` + action `MADEONSOL_TOKEN_TRADES_ACTION` — the mint-scoped trade tape (`GET /tokens/{mint}/trades`): cursor-paginated raw trades with `price_sol`/`price_usd`, `early_buyer_rank`, and `slot`, filterable by `action`/`wallet`/`since`/`until`; the default window is the **full history** (tape starts 2026-04-12; the response `coverage` block carries `history_start` + `scope`). `walletStats` `flags` gain the same `is_sniper`/`is_bundler`/`is_dumper` + `dump_cluster` fields, and `flags.bot_confidence` is confirmed as a string enum (the old numeric reading never matched a real value — the API returned `null` unconditionally due to a bug, now fixed server-side). Both PRO/ULTRA only.
|
|
15
|
+
>
|
|
14
16
|
> **New in 1.17.0** — **Verified on-chain wallet holdings.** New tool `walletHoldings()` + action `MADEONSOL_WALLET_HOLDINGS_ACTION` — the wallet's CURRENT holdings read straight from chain: its actual SPL + Token-2022 token accounts and SOL balance, each enriched with `price_usd` / `value_usd` / `market_cap_usd` / `name` / `symbol` / `is_bonded`, plus `transfer_delta` (on-chain amount − trade-derived net position — exposes non-swap flows like airdrops, insider funding, wallet-hopping). Distinct from `walletPositions()` (trade-derived FIFO): this is what the wallet *actually* holds right now. Params: `limit` (1–500, default 200), `min_value_usd` (default 0). Returns `{ address, sol_balance, holdings[], summary, verified_at, trade_window_days, cache_hit, ttl_seconds }`. ULTRA only.
|
|
15
17
|
>
|
|
16
18
|
> **New in 1.16.2** — **Per-venue liquidity map + deployer reputation history.** New tool `tokenPools()` + action `MADEONSOL_TOKEN_POOLS_ACTION` — every DEX pool a token trades in (live vs parked), with fragmentation and top-pool share. Returns a `pools[]` list (`pool_address`, `dex`, `quote_mint`, `liquidity_usd`, `last_price_sol`, `last_swap_at`, `amm_id`, `is_active`) and a `summary` (`pool_count`, `active_pool_count`, `dex_count`, `dexes`, `total_liquidity_usd`, `primary_pool`, `primary_dex`, `top_pool_share_pct`). New tool `deployerHistory()` + action `MADEONSOL_DEPLOYER_HISTORY_ACTION` — a deployer's daily reputation time-series to backtest "was this deployer elite when it launched token X?" without look-ahead bias. Returns `{ is_deployer, wallet, snapshots[] }` where each snapshot has `date`, `tier`, `is_tracked`, `total_deployed`, `total_bonded`, `bonding_rate`, `recent_bond_rate`, `avg_peak_mc`, `best_token_peak_mc` (`limit` = 1–365 days, default 90). Both PRO/ULTRA only.
|
|
@@ -124,6 +126,8 @@ const events = await agent.methods.walletTrackerTrades(agent, { limit: 50 });
|
|
|
124
126
|
| `MADEONSOL_STREAM_SESSION_KILL_ACTION` | **New 1.15** · "kill stream session", "evict session", "free a connection slot" — evict a live streaming session by id (PRO+) |
|
|
125
127
|
| `MADEONSOL_TOKEN_POOLS_ACTION` | **New 1.16.2** · "token pools", "liquidity map", "which dex pools", "pool fragmentation" — per-venue liquidity map (live vs parked pools) + top-pool share (PRO+) |
|
|
126
128
|
| `MADEONSOL_DEPLOYER_HISTORY_ACTION` | **New 1.16.2** · "deployer history", "deployer reputation over time", "was this deployer elite" — a deployer's daily reputation time-series, backtest without look-ahead bias (PRO+) |
|
|
129
|
+
| `MADEONSOL_TOKEN_TRADES_ACTION` | **New 1.18** · "token trades", "trade tape", "who bought this token" — cursor-paginated raw trade tape with price + early-buyer rank, full history (starts 2026-04-12, pump.fun-pipeline scoped) (PRO+) |
|
|
130
|
+
| `MADEONSOL_WALLET_CLASSIFY_ACTION` | **New 1.18** · "classify wallets", "check wallets for snipers", "are these wallets bots" — bulk reputation flags (sniper/bundler lifetime/dumper 42d/KOL/bot confidence/dump cluster) for 1–100 wallets; false = not observed, NOT verified clean (PRO+) |
|
|
127
131
|
|
|
128
132
|
## Additional methods (v1.0+)
|
|
129
133
|
|
|
@@ -150,6 +154,8 @@ await agent.methods.tokenBundle(agent, { mint: "MINT" }); // PRO+
|
|
|
150
154
|
await agent.methods.tokenPools(agent, { mint: "MINT" }); // PRO+ per-venue liquidity map: live vs parked pools, fragmentation, top-pool share
|
|
151
155
|
await agent.methods.tokenCandles(agent, { mint: "MINT", tf: "1h" }); // PRO+ OHLCV candles (1m–1d); ULTRA=+net flow, liquidity, full history
|
|
152
156
|
await agent.methods.tokenFlow(agent, { mint: "MINT", window: "24h" }); // PRO+ net buy/sell flow (1h/24h): unique wallets, buy/sell/net SOL, trades-per-wallet
|
|
157
|
+
await agent.methods.tokenTrades(agent, { mint: "MINT", action: "buy", limit: 100 }); // PRO+ mint-scoped trade tape (full history from 2026-04-12, pump.fun-pipeline scoped); cursor-paginated
|
|
158
|
+
await agent.methods.walletClassify(agent, { wallets: ["W1", "W2"] }); // PRO+ bulk reputation flags for 1–100 wallets: sniper/bundler(lifetime)/dumper(42d)/KOL/bot_confidence/dump_cluster
|
|
153
159
|
await agent.methods.almostBonded(agent, { min_progress: 90, sort: "eta_asc" }); // PRO+ pre-bond pump.fun tokens by velocity: progress, ETA, stalled, deployer tier
|
|
154
160
|
await agent.methods.deployerHistory(agent, { wallet: "WALLET", limit: 90 }); // PRO+ deployer daily reputation time-series (1–365d): tier, bonding_rate, peak MC — no look-ahead
|
|
155
161
|
```
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const tokenTradesAction: {
|
|
3
|
+
name: string;
|
|
4
|
+
similes: string[];
|
|
5
|
+
description: string;
|
|
6
|
+
examples: {
|
|
7
|
+
input: {
|
|
8
|
+
mint: string;
|
|
9
|
+
limit: number;
|
|
10
|
+
action: string;
|
|
11
|
+
};
|
|
12
|
+
output: {
|
|
13
|
+
status: string;
|
|
14
|
+
};
|
|
15
|
+
explanation: string;
|
|
16
|
+
}[][];
|
|
17
|
+
schema: z.ZodObject<{
|
|
18
|
+
mint: z.ZodString;
|
|
19
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
20
|
+
cursor: z.ZodOptional<z.ZodString>;
|
|
21
|
+
action: z.ZodOptional<z.ZodEnum<["buy", "sell"]>>;
|
|
22
|
+
wallet: z.ZodOptional<z.ZodString>;
|
|
23
|
+
since: z.ZodOptional<z.ZodNumber>;
|
|
24
|
+
until: z.ZodOptional<z.ZodNumber>;
|
|
25
|
+
}, "strip", z.ZodTypeAny, {
|
|
26
|
+
mint: string;
|
|
27
|
+
limit?: number | undefined;
|
|
28
|
+
wallet?: string | undefined;
|
|
29
|
+
action?: "buy" | "sell" | undefined;
|
|
30
|
+
cursor?: string | undefined;
|
|
31
|
+
since?: number | undefined;
|
|
32
|
+
until?: number | undefined;
|
|
33
|
+
}, {
|
|
34
|
+
mint: string;
|
|
35
|
+
limit?: number | undefined;
|
|
36
|
+
wallet?: string | undefined;
|
|
37
|
+
action?: "buy" | "sell" | undefined;
|
|
38
|
+
cursor?: string | undefined;
|
|
39
|
+
since?: number | undefined;
|
|
40
|
+
until?: number | undefined;
|
|
41
|
+
}>;
|
|
42
|
+
handler: (agent: unknown, input: {
|
|
43
|
+
mint: string;
|
|
44
|
+
limit?: number;
|
|
45
|
+
cursor?: string;
|
|
46
|
+
action?: "buy" | "sell";
|
|
47
|
+
wallet?: string;
|
|
48
|
+
since?: number;
|
|
49
|
+
until?: number;
|
|
50
|
+
}) => Promise<{
|
|
51
|
+
status: string;
|
|
52
|
+
result: any;
|
|
53
|
+
message?: undefined;
|
|
54
|
+
} | {
|
|
55
|
+
status: string;
|
|
56
|
+
message: string;
|
|
57
|
+
result?: undefined;
|
|
58
|
+
}>;
|
|
59
|
+
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { tokenTrades } from "../tools/index.js";
|
|
3
|
+
export const tokenTradesAction = {
|
|
4
|
+
name: "MADEONSOL_TOKEN_TRADES_ACTION",
|
|
5
|
+
similes: ["token trades", "trade tape", "trade history for token", "who bought this token", "who sold this token", "token transactions"],
|
|
6
|
+
description: "Get the raw trade tape for a Solana token — every captured trade, cursor-paginated newest first. Each trade carries tx_signature, wallet_address, action (buy/sell), sol_amount, token_amount, price_sol/price_usd, early_buyer_rank, slot, block_time. Filter by action, wallet, and since/until (unix seconds); the default window is the FULL history. Coverage honesty: the tape starts 2026-04-12 and is pump.fun-pipeline scoped (see the response coverage block) — trades outside that pipeline are not on the tape. PRO/ULTRA only — BASIC receives HTTP 403.",
|
|
7
|
+
examples: [
|
|
8
|
+
[
|
|
9
|
+
{
|
|
10
|
+
input: { mint: "7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU", limit: 100, action: "buy" },
|
|
11
|
+
output: { status: "success" },
|
|
12
|
+
explanation: "Fetch the most recent 100 buys on a token's trade tape",
|
|
13
|
+
},
|
|
14
|
+
],
|
|
15
|
+
],
|
|
16
|
+
schema: z.object({
|
|
17
|
+
mint: z.string().describe("Token mint address (base58)"),
|
|
18
|
+
limit: z.number().min(1).max(500).optional().describe("Trades per page (1-500, default 100)"),
|
|
19
|
+
cursor: z.string().optional().describe("Opaque cursor from next_cursor of a previous page"),
|
|
20
|
+
action: z.enum(["buy", "sell"]).optional().describe("Filter by trade direction"),
|
|
21
|
+
wallet: z.string().optional().describe("Filter to a single wallet address"),
|
|
22
|
+
since: z.number().optional().describe("Unix epoch seconds lower bound (default: full history)"),
|
|
23
|
+
until: z.number().optional().describe("Unix epoch seconds upper bound (default: now)"),
|
|
24
|
+
}),
|
|
25
|
+
handler: async (agent, input) => {
|
|
26
|
+
try {
|
|
27
|
+
const data = await tokenTrades(agent, input);
|
|
28
|
+
return { status: "success", result: data };
|
|
29
|
+
}
|
|
30
|
+
catch (err) {
|
|
31
|
+
return { status: "error", message: err.message };
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const walletClassifyAction: {
|
|
3
|
+
name: string;
|
|
4
|
+
similes: string[];
|
|
5
|
+
description: string;
|
|
6
|
+
examples: {
|
|
7
|
+
input: {
|
|
8
|
+
wallets: string[];
|
|
9
|
+
};
|
|
10
|
+
output: {
|
|
11
|
+
status: string;
|
|
12
|
+
};
|
|
13
|
+
explanation: string;
|
|
14
|
+
}[][];
|
|
15
|
+
schema: z.ZodObject<{
|
|
16
|
+
wallets: z.ZodArray<z.ZodString, "many">;
|
|
17
|
+
}, "strip", z.ZodTypeAny, {
|
|
18
|
+
wallets: string[];
|
|
19
|
+
}, {
|
|
20
|
+
wallets: string[];
|
|
21
|
+
}>;
|
|
22
|
+
handler: (agent: unknown, input: {
|
|
23
|
+
wallets: string[];
|
|
24
|
+
}) => Promise<{
|
|
25
|
+
status: string;
|
|
26
|
+
result: any;
|
|
27
|
+
message?: undefined;
|
|
28
|
+
} | {
|
|
29
|
+
status: string;
|
|
30
|
+
message: string;
|
|
31
|
+
result?: undefined;
|
|
32
|
+
}>;
|
|
33
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { walletClassify } from "../tools/index.js";
|
|
3
|
+
export const walletClassifyAction = {
|
|
4
|
+
name: "MADEONSOL_WALLET_CLASSIFY_ACTION",
|
|
5
|
+
similes: ["classify wallets", "batch wallet flags", "check wallets for snipers", "are these wallets bots", "wallet reputation batch", "screen wallet list"],
|
|
6
|
+
description: "Bulk wallet reputation flags for 1-100 Solana wallet addresses in one call. Per wallet: is_sniper, is_bundler (lifetime flag), is_dumper (rolling 42-day window), is_kol + kol_name, bot_confidence (\"none\"|\"low\"|\"medium\"|\"high\"|null), and dump_cluster cohort stats. Flags are pump.fun-pipeline scoped — false means \"not observed by our pipeline\", NOT verified clean. Returns { wallets, count, as_of }. PRO/ULTRA only — BASIC receives HTTP 403.",
|
|
7
|
+
examples: [
|
|
8
|
+
[
|
|
9
|
+
{
|
|
10
|
+
input: { wallets: ["ASVzakePP6GNg9r95d4LPZHJDMXun6L6E4um4pu5ybJk", "7dExkKzy4K3rC4YCVXQrPXtvmBBTnf3AjEHUUE4Kkzy8"] },
|
|
11
|
+
output: { status: "success" },
|
|
12
|
+
explanation: "Screen a list of wallets for sniper/bundler/dumper/KOL/bot reputation flags",
|
|
13
|
+
},
|
|
14
|
+
],
|
|
15
|
+
],
|
|
16
|
+
schema: z.object({
|
|
17
|
+
wallets: z.array(z.string()).min(1).max(100).describe("1-100 wallet addresses (base58)"),
|
|
18
|
+
}),
|
|
19
|
+
handler: async (agent, input) => {
|
|
20
|
+
try {
|
|
21
|
+
const data = await walletClassify(agent, input);
|
|
22
|
+
return { status: "success", result: data };
|
|
23
|
+
}
|
|
24
|
+
catch (err) {
|
|
25
|
+
return { status: "error", message: err.message };
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
};
|
package/dist/index.d.ts
CHANGED
|
@@ -19,8 +19,10 @@ import { deployerHistoryAction } from "./actions/deployerHistory.js";
|
|
|
19
19
|
import { tokenCandlesAction } from "./actions/tokenCandles.js";
|
|
20
20
|
import { tokenFlowAction } from "./actions/tokenFlow.js";
|
|
21
21
|
import { tokenRiskBatchAction } from "./actions/tokenRiskBatch.js";
|
|
22
|
+
import { tokenTradesAction } from "./actions/tokenTrades.js";
|
|
23
|
+
import { walletClassifyAction } from "./actions/walletClassify.js";
|
|
22
24
|
import { streamSessionsAction, streamSessionKillAction } from "./actions/streamSessions.js";
|
|
23
|
-
import { kolFeed, kolCoordination, kolLeaderboard, deployerAlerts, kolPnl, kolTrendingTokens, kolTokenEntryOrder, kolCompare, kolAlertsRecent, createWebhook, listWebhooks, deleteWebhook, testWebhook, getStreamToken, streamSessions, streamSessionKill, walletTrackerWatchlist, walletTrackerAdd, walletTrackerRemove, walletTrackerTrades, walletTrackerSummary, alphaLeaderboard, alphaWallet, alphaLinked, tokenCapTable, tokenBuyerQuality, tokenRisk, tokenRiskBatch, tokenBundle, tokenPools, tokenCandles, tokenFlow, deployerHistory, copyTradeList, copyTradeCreate, copyTradeGet, copyTradeUpdate, copyTradeDelete, copyTradeSignals, coordinationAlertsList, coordinationAlertsCreate, coordinationAlertsGet, coordinationAlertsUpdate, coordinationAlertsDelete, kolFirstTouches, firstTouchSubscriptionsList, firstTouchSubscriptionsCreate, firstTouchSubscriptionsGet, firstTouchSubscriptionsUpdate, firstTouchSubscriptionsDelete, priceAlertsList, priceAlertsCreate, priceAlertsGet, priceAlertsUpdate, priceAlertsDelete, priceAlertsEvents, scoutLeaderboard, coordinationHistory, kolConsensus, peakHistory, walletStats, walletPnl, walletPositions, walletHoldings, walletTrades, me, tokensList, almostBonded } from "./tools/index.js";
|
|
25
|
+
import { kolFeed, kolCoordination, kolLeaderboard, deployerAlerts, kolPnl, kolTrendingTokens, kolTokenEntryOrder, kolCompare, kolAlertsRecent, createWebhook, listWebhooks, deleteWebhook, testWebhook, getStreamToken, streamSessions, streamSessionKill, walletTrackerWatchlist, walletTrackerAdd, walletTrackerRemove, walletTrackerTrades, walletTrackerSummary, alphaLeaderboard, alphaWallet, alphaLinked, tokenCapTable, tokenBuyerQuality, tokenRisk, tokenRiskBatch, tokenBundle, tokenPools, tokenCandles, tokenFlow, tokenTrades, deployerHistory, copyTradeList, copyTradeCreate, copyTradeGet, copyTradeUpdate, copyTradeDelete, copyTradeSignals, coordinationAlertsList, coordinationAlertsCreate, coordinationAlertsGet, coordinationAlertsUpdate, coordinationAlertsDelete, kolFirstTouches, firstTouchSubscriptionsList, firstTouchSubscriptionsCreate, firstTouchSubscriptionsGet, firstTouchSubscriptionsUpdate, firstTouchSubscriptionsDelete, priceAlertsList, priceAlertsCreate, priceAlertsGet, priceAlertsUpdate, priceAlertsDelete, priceAlertsEvents, scoutLeaderboard, coordinationHistory, kolConsensus, peakHistory, walletStats, walletPnl, walletPositions, walletHoldings, walletTrades, walletClassify, me, tokensList, almostBonded } from "./tools/index.js";
|
|
24
26
|
import { walletStatsAction, walletPnlAction, walletPositionsAction, walletHoldingsAction, walletTradesAction } from "./actions/wallet.js";
|
|
25
27
|
declare const MadeOnSolPlugin: {
|
|
26
28
|
name: string;
|
|
@@ -57,6 +59,7 @@ declare const MadeOnSolPlugin: {
|
|
|
57
59
|
tokenPools: typeof tokenPools;
|
|
58
60
|
tokenCandles: typeof tokenCandles;
|
|
59
61
|
tokenFlow: typeof tokenFlow;
|
|
62
|
+
tokenTrades: typeof tokenTrades;
|
|
60
63
|
deployerHistory: typeof deployerHistory;
|
|
61
64
|
copyTradeList: typeof copyTradeList;
|
|
62
65
|
copyTradeCreate: typeof copyTradeCreate;
|
|
@@ -93,6 +96,7 @@ declare const MadeOnSolPlugin: {
|
|
|
93
96
|
walletPositions: typeof walletPositions;
|
|
94
97
|
walletHoldings: typeof walletHoldings;
|
|
95
98
|
walletTrades: typeof walletTrades;
|
|
99
|
+
walletClassify: typeof walletClassify;
|
|
96
100
|
};
|
|
97
101
|
actions: ({
|
|
98
102
|
name: string;
|
|
@@ -1042,6 +1046,63 @@ declare const MadeOnSolPlugin: {
|
|
|
1042
1046
|
message: string;
|
|
1043
1047
|
result?: undefined;
|
|
1044
1048
|
}>;
|
|
1049
|
+
} | {
|
|
1050
|
+
name: string;
|
|
1051
|
+
similes: string[];
|
|
1052
|
+
description: string;
|
|
1053
|
+
examples: {
|
|
1054
|
+
input: {
|
|
1055
|
+
mint: string;
|
|
1056
|
+
limit: number;
|
|
1057
|
+
action: string;
|
|
1058
|
+
};
|
|
1059
|
+
output: {
|
|
1060
|
+
status: string;
|
|
1061
|
+
};
|
|
1062
|
+
explanation: string;
|
|
1063
|
+
}[][];
|
|
1064
|
+
schema: import("zod").ZodObject<{
|
|
1065
|
+
mint: import("zod").ZodString;
|
|
1066
|
+
limit: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
1067
|
+
cursor: import("zod").ZodOptional<import("zod").ZodString>;
|
|
1068
|
+
action: import("zod").ZodOptional<import("zod").ZodEnum<["buy", "sell"]>>;
|
|
1069
|
+
wallet: import("zod").ZodOptional<import("zod").ZodString>;
|
|
1070
|
+
since: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
1071
|
+
until: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
1072
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
1073
|
+
mint: string;
|
|
1074
|
+
limit?: number | undefined;
|
|
1075
|
+
wallet?: string | undefined;
|
|
1076
|
+
action?: "buy" | "sell" | undefined;
|
|
1077
|
+
cursor?: string | undefined;
|
|
1078
|
+
since?: number | undefined;
|
|
1079
|
+
until?: number | undefined;
|
|
1080
|
+
}, {
|
|
1081
|
+
mint: string;
|
|
1082
|
+
limit?: number | undefined;
|
|
1083
|
+
wallet?: string | undefined;
|
|
1084
|
+
action?: "buy" | "sell" | undefined;
|
|
1085
|
+
cursor?: string | undefined;
|
|
1086
|
+
since?: number | undefined;
|
|
1087
|
+
until?: number | undefined;
|
|
1088
|
+
}>;
|
|
1089
|
+
handler: (agent: unknown, input: {
|
|
1090
|
+
mint: string;
|
|
1091
|
+
limit?: number;
|
|
1092
|
+
cursor?: string;
|
|
1093
|
+
action?: "buy" | "sell";
|
|
1094
|
+
wallet?: string;
|
|
1095
|
+
since?: number;
|
|
1096
|
+
until?: number;
|
|
1097
|
+
}) => Promise<{
|
|
1098
|
+
status: string;
|
|
1099
|
+
result: any;
|
|
1100
|
+
message?: undefined;
|
|
1101
|
+
} | {
|
|
1102
|
+
status: string;
|
|
1103
|
+
message: string;
|
|
1104
|
+
result?: undefined;
|
|
1105
|
+
}>;
|
|
1045
1106
|
} | {
|
|
1046
1107
|
name: string;
|
|
1047
1108
|
similes: string[];
|
|
@@ -1206,8 +1267,8 @@ declare const MadeOnSolPlugin: {
|
|
|
1206
1267
|
initialize(_agent: unknown): void;
|
|
1207
1268
|
};
|
|
1208
1269
|
export default MadeOnSolPlugin;
|
|
1209
|
-
export { kolFeed, kolCoordination, kolLeaderboard, deployerAlerts, kolPnl, kolTrendingTokens, kolTokenEntryOrder, kolCompare, kolAlertsRecent, createWebhook, listWebhooks, deleteWebhook, testWebhook, getStreamToken, streamSessions, streamSessionKill, walletTrackerWatchlist, walletTrackerAdd, walletTrackerRemove, walletTrackerTrades, walletTrackerSummary, alphaLeaderboard, alphaWallet, alphaLinked, tokenCapTable, tokenBuyerQuality, tokenRisk, tokenRiskBatch, tokenBundle, tokenPools, tokenCandles, tokenFlow, deployerHistory, copyTradeList, copyTradeCreate, copyTradeGet, copyTradeUpdate, copyTradeDelete, copyTradeSignals, coordinationAlertsList, coordinationAlertsCreate, coordinationAlertsGet, coordinationAlertsUpdate, coordinationAlertsDelete, kolFirstTouches, firstTouchSubscriptionsList, firstTouchSubscriptionsCreate, firstTouchSubscriptionsGet, firstTouchSubscriptionsUpdate, firstTouchSubscriptionsDelete, priceAlertsList, priceAlertsCreate, priceAlertsGet, priceAlertsUpdate, priceAlertsDelete, priceAlertsEvents, scoutLeaderboard, coordinationHistory, kolConsensus, peakHistory, walletStats, walletPnl, walletPositions, walletHoldings, walletTrades, me, tokensList, almostBonded, };
|
|
1270
|
+
export { kolFeed, kolCoordination, kolLeaderboard, deployerAlerts, kolPnl, kolTrendingTokens, kolTokenEntryOrder, kolCompare, kolAlertsRecent, createWebhook, listWebhooks, deleteWebhook, testWebhook, getStreamToken, streamSessions, streamSessionKill, walletTrackerWatchlist, walletTrackerAdd, walletTrackerRemove, walletTrackerTrades, walletTrackerSummary, alphaLeaderboard, alphaWallet, alphaLinked, tokenCapTable, tokenBuyerQuality, tokenRisk, tokenRiskBatch, tokenBundle, tokenPools, tokenCandles, tokenFlow, tokenTrades, deployerHistory, copyTradeList, copyTradeCreate, copyTradeGet, copyTradeUpdate, copyTradeDelete, copyTradeSignals, coordinationAlertsList, coordinationAlertsCreate, coordinationAlertsGet, coordinationAlertsUpdate, coordinationAlertsDelete, kolFirstTouches, firstTouchSubscriptionsList, firstTouchSubscriptionsCreate, firstTouchSubscriptionsGet, firstTouchSubscriptionsUpdate, firstTouchSubscriptionsDelete, priceAlertsList, priceAlertsCreate, priceAlertsGet, priceAlertsUpdate, priceAlertsDelete, priceAlertsEvents, scoutLeaderboard, coordinationHistory, kolConsensus, peakHistory, walletStats, walletPnl, walletPositions, walletHoldings, walletTrades, walletClassify, me, tokensList, almostBonded, };
|
|
1210
1271
|
export { kolFeedAction, kolCoordinationAction, kolLeaderboardAction, deployerAlertsAction, kolPnlAction, kolTrendingTokensAction, kolTokenEntryOrderAction, kolCompareAction, kolAlertsRecentAction, kolFirstTouchesAction };
|
|
1211
1272
|
export { walletTrackerWatchlistAction, walletTrackerAddAction, walletTrackerRemoveAction, walletTrackerTradesAction, walletTrackerSummaryAction };
|
|
1212
1273
|
export { walletStatsAction, walletPnlAction, walletPositionsAction, walletHoldingsAction, walletTradesAction };
|
|
1213
|
-
export { meAction, tokensListAction, almostBondedAction, tokenRiskAction, tokenRiskBatchAction, tokenBundleAction, tokenPoolsAction, deployerHistoryAction, tokenCandlesAction, tokenFlowAction, streamSessionsAction, streamSessionKillAction };
|
|
1274
|
+
export { meAction, tokensListAction, almostBondedAction, tokenRiskAction, tokenRiskBatchAction, tokenBundleAction, tokenPoolsAction, deployerHistoryAction, tokenCandlesAction, tokenFlowAction, tokenTradesAction, walletClassifyAction, streamSessionsAction, streamSessionKillAction };
|
package/dist/index.js
CHANGED
|
@@ -19,8 +19,10 @@ import { deployerHistoryAction } from "./actions/deployerHistory.js";
|
|
|
19
19
|
import { tokenCandlesAction } from "./actions/tokenCandles.js";
|
|
20
20
|
import { tokenFlowAction } from "./actions/tokenFlow.js";
|
|
21
21
|
import { tokenRiskBatchAction } from "./actions/tokenRiskBatch.js";
|
|
22
|
+
import { tokenTradesAction } from "./actions/tokenTrades.js";
|
|
23
|
+
import { walletClassifyAction } from "./actions/walletClassify.js";
|
|
22
24
|
import { streamSessionsAction, streamSessionKillAction } from "./actions/streamSessions.js";
|
|
23
|
-
import { kolFeed, kolCoordination, kolLeaderboard, deployerAlerts, kolPnl, kolTrendingTokens, kolTokenEntryOrder, kolCompare, kolAlertsRecent, createWebhook, listWebhooks, deleteWebhook, testWebhook, getStreamToken, streamSessions, streamSessionKill, walletTrackerWatchlist, walletTrackerAdd, walletTrackerRemove, walletTrackerTrades, walletTrackerSummary, alphaLeaderboard, alphaWallet, alphaLinked, tokenCapTable, tokenBuyerQuality, tokenRisk, tokenRiskBatch, tokenBundle, tokenPools, tokenCandles, tokenFlow, deployerHistory, copyTradeList, copyTradeCreate, copyTradeGet, copyTradeUpdate, copyTradeDelete, copyTradeSignals, coordinationAlertsList, coordinationAlertsCreate, coordinationAlertsGet, coordinationAlertsUpdate, coordinationAlertsDelete, kolFirstTouches, firstTouchSubscriptionsList, firstTouchSubscriptionsCreate, firstTouchSubscriptionsGet, firstTouchSubscriptionsUpdate, firstTouchSubscriptionsDelete, priceAlertsList, priceAlertsCreate, priceAlertsGet, priceAlertsUpdate, priceAlertsDelete, priceAlertsEvents, scoutLeaderboard, coordinationHistory, kolConsensus, peakHistory, walletStats, walletPnl, walletPositions, walletHoldings, walletTrades, me, tokensList, almostBonded, } from "./tools/index.js";
|
|
25
|
+
import { kolFeed, kolCoordination, kolLeaderboard, deployerAlerts, kolPnl, kolTrendingTokens, kolTokenEntryOrder, kolCompare, kolAlertsRecent, createWebhook, listWebhooks, deleteWebhook, testWebhook, getStreamToken, streamSessions, streamSessionKill, walletTrackerWatchlist, walletTrackerAdd, walletTrackerRemove, walletTrackerTrades, walletTrackerSummary, alphaLeaderboard, alphaWallet, alphaLinked, tokenCapTable, tokenBuyerQuality, tokenRisk, tokenRiskBatch, tokenBundle, tokenPools, tokenCandles, tokenFlow, tokenTrades, deployerHistory, copyTradeList, copyTradeCreate, copyTradeGet, copyTradeUpdate, copyTradeDelete, copyTradeSignals, coordinationAlertsList, coordinationAlertsCreate, coordinationAlertsGet, coordinationAlertsUpdate, coordinationAlertsDelete, kolFirstTouches, firstTouchSubscriptionsList, firstTouchSubscriptionsCreate, firstTouchSubscriptionsGet, firstTouchSubscriptionsUpdate, firstTouchSubscriptionsDelete, priceAlertsList, priceAlertsCreate, priceAlertsGet, priceAlertsUpdate, priceAlertsDelete, priceAlertsEvents, scoutLeaderboard, coordinationHistory, kolConsensus, peakHistory, walletStats, walletPnl, walletPositions, walletHoldings, walletTrades, walletClassify, me, tokensList, almostBonded, } from "./tools/index.js";
|
|
24
26
|
import { walletStatsAction, walletPnlAction, walletPositionsAction, walletHoldingsAction, walletTradesAction } from "./actions/wallet.js";
|
|
25
27
|
const MadeOnSolPlugin = {
|
|
26
28
|
name: "madeonsol",
|
|
@@ -57,6 +59,7 @@ const MadeOnSolPlugin = {
|
|
|
57
59
|
tokenPools,
|
|
58
60
|
tokenCandles,
|
|
59
61
|
tokenFlow,
|
|
62
|
+
tokenTrades,
|
|
60
63
|
deployerHistory,
|
|
61
64
|
copyTradeList,
|
|
62
65
|
copyTradeCreate,
|
|
@@ -93,6 +96,7 @@ const MadeOnSolPlugin = {
|
|
|
93
96
|
walletPositions,
|
|
94
97
|
walletHoldings,
|
|
95
98
|
walletTrades,
|
|
99
|
+
walletClassify,
|
|
96
100
|
},
|
|
97
101
|
actions: [
|
|
98
102
|
kolFeedAction,
|
|
@@ -120,6 +124,8 @@ const MadeOnSolPlugin = {
|
|
|
120
124
|
deployerHistoryAction,
|
|
121
125
|
tokenCandlesAction,
|
|
122
126
|
tokenFlowAction,
|
|
127
|
+
tokenTradesAction,
|
|
128
|
+
walletClassifyAction,
|
|
123
129
|
streamSessionsAction,
|
|
124
130
|
streamSessionKillAction,
|
|
125
131
|
walletStatsAction,
|
|
@@ -133,8 +139,8 @@ const MadeOnSolPlugin = {
|
|
|
133
139
|
},
|
|
134
140
|
};
|
|
135
141
|
export default MadeOnSolPlugin;
|
|
136
|
-
export { kolFeed, kolCoordination, kolLeaderboard, deployerAlerts, kolPnl, kolTrendingTokens, kolTokenEntryOrder, kolCompare, kolAlertsRecent, createWebhook, listWebhooks, deleteWebhook, testWebhook, getStreamToken, streamSessions, streamSessionKill, walletTrackerWatchlist, walletTrackerAdd, walletTrackerRemove, walletTrackerTrades, walletTrackerSummary, alphaLeaderboard, alphaWallet, alphaLinked, tokenCapTable, tokenBuyerQuality, tokenRisk, tokenRiskBatch, tokenBundle, tokenPools, tokenCandles, tokenFlow, deployerHistory, copyTradeList, copyTradeCreate, copyTradeGet, copyTradeUpdate, copyTradeDelete, copyTradeSignals, coordinationAlertsList, coordinationAlertsCreate, coordinationAlertsGet, coordinationAlertsUpdate, coordinationAlertsDelete, kolFirstTouches, firstTouchSubscriptionsList, firstTouchSubscriptionsCreate, firstTouchSubscriptionsGet, firstTouchSubscriptionsUpdate, firstTouchSubscriptionsDelete, priceAlertsList, priceAlertsCreate, priceAlertsGet, priceAlertsUpdate, priceAlertsDelete, priceAlertsEvents, scoutLeaderboard, coordinationHistory, kolConsensus, peakHistory, walletStats, walletPnl, walletPositions, walletHoldings, walletTrades, me, tokensList, almostBonded, };
|
|
142
|
+
export { kolFeed, kolCoordination, kolLeaderboard, deployerAlerts, kolPnl, kolTrendingTokens, kolTokenEntryOrder, kolCompare, kolAlertsRecent, createWebhook, listWebhooks, deleteWebhook, testWebhook, getStreamToken, streamSessions, streamSessionKill, walletTrackerWatchlist, walletTrackerAdd, walletTrackerRemove, walletTrackerTrades, walletTrackerSummary, alphaLeaderboard, alphaWallet, alphaLinked, tokenCapTable, tokenBuyerQuality, tokenRisk, tokenRiskBatch, tokenBundle, tokenPools, tokenCandles, tokenFlow, tokenTrades, deployerHistory, copyTradeList, copyTradeCreate, copyTradeGet, copyTradeUpdate, copyTradeDelete, copyTradeSignals, coordinationAlertsList, coordinationAlertsCreate, coordinationAlertsGet, coordinationAlertsUpdate, coordinationAlertsDelete, kolFirstTouches, firstTouchSubscriptionsList, firstTouchSubscriptionsCreate, firstTouchSubscriptionsGet, firstTouchSubscriptionsUpdate, firstTouchSubscriptionsDelete, priceAlertsList, priceAlertsCreate, priceAlertsGet, priceAlertsUpdate, priceAlertsDelete, priceAlertsEvents, scoutLeaderboard, coordinationHistory, kolConsensus, peakHistory, walletStats, walletPnl, walletPositions, walletHoldings, walletTrades, walletClassify, me, tokensList, almostBonded, };
|
|
137
143
|
export { kolFeedAction, kolCoordinationAction, kolLeaderboardAction, deployerAlertsAction, kolPnlAction, kolTrendingTokensAction, kolTokenEntryOrderAction, kolCompareAction, kolAlertsRecentAction, kolFirstTouchesAction };
|
|
138
144
|
export { walletTrackerWatchlistAction, walletTrackerAddAction, walletTrackerRemoveAction, walletTrackerTradesAction, walletTrackerSummaryAction };
|
|
139
145
|
export { walletStatsAction, walletPnlAction, walletPositionsAction, walletHoldingsAction, walletTradesAction };
|
|
140
|
-
export { meAction, tokensListAction, almostBondedAction, tokenRiskAction, tokenRiskBatchAction, tokenBundleAction, tokenPoolsAction, deployerHistoryAction, tokenCandlesAction, tokenFlowAction, streamSessionsAction, streamSessionKillAction };
|
|
146
|
+
export { meAction, tokensListAction, almostBondedAction, tokenRiskAction, tokenRiskBatchAction, tokenBundleAction, tokenPoolsAction, deployerHistoryAction, tokenCandlesAction, tokenFlowAction, tokenTradesAction, walletClassifyAction, streamSessionsAction, streamSessionKillAction };
|
package/dist/tools/index.d.ts
CHANGED
|
@@ -186,6 +186,17 @@ export declare function walletTrades(agent: Agent, params: {
|
|
|
186
186
|
since?: number;
|
|
187
187
|
until?: number;
|
|
188
188
|
}): Promise<any>;
|
|
189
|
+
/**
|
|
190
|
+
* Bulk wallet reputation flags for 1–100 addresses in one request (POST /wallet/batch/classify).
|
|
191
|
+
* Each entry matches the `flags` block of walletStats(): `is_sniper`, `is_bundler` (lifetime flag),
|
|
192
|
+
* `is_dumper` (rolling 42-day window), `is_kol` + `kol_name`, `bot_confidence` (STRING enum
|
|
193
|
+
* "none"/"low"/"medium"/"high" | null — never a number), and `dump_cluster` cohort stats
|
|
194
|
+
* ({ dump_cohorts, runner_cohorts, total_cohorts, as_of } | null). Flags are pump.fun-pipeline
|
|
195
|
+
* scoped — `false` means "not observed", NOT verified clean. PRO/ULTRA only.
|
|
196
|
+
*/
|
|
197
|
+
export declare function walletClassify(agent: Agent, params: {
|
|
198
|
+
wallets: string[];
|
|
199
|
+
}): Promise<any>;
|
|
189
200
|
export declare function alphaLeaderboard(agent: Agent, params?: {
|
|
190
201
|
limit?: number;
|
|
191
202
|
min_tokens?: number;
|
|
@@ -231,6 +242,23 @@ export declare function tokenFlow(agent: Agent, params: {
|
|
|
231
242
|
mint: string;
|
|
232
243
|
window?: "1h" | "24h";
|
|
233
244
|
}): Promise<any>;
|
|
245
|
+
/**
|
|
246
|
+
* Mint-scoped trade tape — every captured trade for a token, cursor-paginated newest first
|
|
247
|
+
* (GET /tokens/{mint}/trades). Each trade: tx_signature, wallet_address, action, sol_amount,
|
|
248
|
+
* token_amount, price_sol/price_usd, early_buyer_rank, slot, block_time, traded_at. Filter by
|
|
249
|
+
* `action`, `wallet`, `since`/`until` (unix sec); unlike walletTrades (90d default) the default
|
|
250
|
+
* window is the FULL history. Coverage honesty: the tape starts 2026-04-12 and is
|
|
251
|
+
* pump.fun-pipeline scoped — see the response `coverage` block (history_start, scope). PRO/ULTRA only.
|
|
252
|
+
*/
|
|
253
|
+
export declare function tokenTrades(agent: Agent, params: {
|
|
254
|
+
mint: string;
|
|
255
|
+
limit?: number;
|
|
256
|
+
cursor?: string;
|
|
257
|
+
action?: "buy" | "sell";
|
|
258
|
+
wallet?: string;
|
|
259
|
+
since?: number;
|
|
260
|
+
until?: number;
|
|
261
|
+
}): Promise<any>;
|
|
234
262
|
/** Bulk buyer-quality scoring for up to 50 mints. Shares the 5-min LRU cache with the single-mint endpoint. */
|
|
235
263
|
export declare function tokenBuyerQualityBatch(agent: Agent, params: {
|
|
236
264
|
mints: string[];
|
package/dist/tools/index.js
CHANGED
|
@@ -280,6 +280,17 @@ export async function walletTrades(agent, params) {
|
|
|
280
280
|
const query = qs.toString() ? `?${qs.toString()}` : "";
|
|
281
281
|
return restQuery(agent, "GET", `/wallet/${encodeURIComponent(params.address)}/trades${query}`);
|
|
282
282
|
}
|
|
283
|
+
/**
|
|
284
|
+
* Bulk wallet reputation flags for 1–100 addresses in one request (POST /wallet/batch/classify).
|
|
285
|
+
* Each entry matches the `flags` block of walletStats(): `is_sniper`, `is_bundler` (lifetime flag),
|
|
286
|
+
* `is_dumper` (rolling 42-day window), `is_kol` + `kol_name`, `bot_confidence` (STRING enum
|
|
287
|
+
* "none"/"low"/"medium"/"high" | null — never a number), and `dump_cluster` cohort stats
|
|
288
|
+
* ({ dump_cohorts, runner_cohorts, total_cohorts, as_of } | null). Flags are pump.fun-pipeline
|
|
289
|
+
* scoped — `false` means "not observed", NOT verified clean. PRO/ULTRA only.
|
|
290
|
+
*/
|
|
291
|
+
export async function walletClassify(agent, params) {
|
|
292
|
+
return restQuery(agent, "POST", "/wallet/batch/classify", { wallets: params.wallets });
|
|
293
|
+
}
|
|
283
294
|
// ── Alpha Wallet Intelligence ──
|
|
284
295
|
export async function alphaLeaderboard(agent, params = {}) {
|
|
285
296
|
const qs = new URLSearchParams();
|
|
@@ -337,6 +348,31 @@ export async function tokenFlow(agent, params) {
|
|
|
337
348
|
const qs = params.window !== undefined ? `?window=${params.window}` : "";
|
|
338
349
|
return restQuery(agent, "GET", `/tokens/${encodeURIComponent(params.mint)}/flow${qs}`);
|
|
339
350
|
}
|
|
351
|
+
/**
|
|
352
|
+
* Mint-scoped trade tape — every captured trade for a token, cursor-paginated newest first
|
|
353
|
+
* (GET /tokens/{mint}/trades). Each trade: tx_signature, wallet_address, action, sol_amount,
|
|
354
|
+
* token_amount, price_sol/price_usd, early_buyer_rank, slot, block_time, traded_at. Filter by
|
|
355
|
+
* `action`, `wallet`, `since`/`until` (unix sec); unlike walletTrades (90d default) the default
|
|
356
|
+
* window is the FULL history. Coverage honesty: the tape starts 2026-04-12 and is
|
|
357
|
+
* pump.fun-pipeline scoped — see the response `coverage` block (history_start, scope). PRO/ULTRA only.
|
|
358
|
+
*/
|
|
359
|
+
export async function tokenTrades(agent, params) {
|
|
360
|
+
const qs = new URLSearchParams();
|
|
361
|
+
if (params.limit !== undefined)
|
|
362
|
+
qs.set("limit", String(params.limit));
|
|
363
|
+
if (params.cursor)
|
|
364
|
+
qs.set("cursor", params.cursor);
|
|
365
|
+
if (params.action)
|
|
366
|
+
qs.set("action", params.action);
|
|
367
|
+
if (params.wallet)
|
|
368
|
+
qs.set("wallet", params.wallet);
|
|
369
|
+
if (params.since !== undefined)
|
|
370
|
+
qs.set("since", String(params.since));
|
|
371
|
+
if (params.until !== undefined)
|
|
372
|
+
qs.set("until", String(params.until));
|
|
373
|
+
const query = qs.toString() ? `?${qs.toString()}` : "";
|
|
374
|
+
return restQuery(agent, "GET", `/tokens/${encodeURIComponent(params.mint)}/trades${query}`);
|
|
375
|
+
}
|
|
340
376
|
/** Bulk buyer-quality scoring for up to 50 mints. Shares the 5-min LRU cache with the single-mint endpoint. */
|
|
341
377
|
export async function tokenBuyerQualityBatch(agent, params) {
|
|
342
378
|
return restQuery(agent, "POST", "/tokens/batch/buyer-quality", { mints: params.mints });
|
package/dist/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const VERSION = "1.
|
|
1
|
+
export declare const VERSION = "1.18.0";
|
package/dist/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// AUTO-GENERATED by ../gen-version.mjs (npm prebuild) from package.json. Do not edit.
|
|
2
|
-
export const VERSION = "1.
|
|
2
|
+
export const VERSION = "1.18.0";
|
package/package.json
CHANGED