solana-agent-kit-plugin-madeonsol 1.17.0 → 1.19.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 CHANGED
@@ -11,6 +11,10 @@
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.19.0** — **Token depth / price impact + deployer self-activity on risk.** New tool `tokenDepth()` + action `MADEONSOL_TOKEN_DEPTH_ACTION` (`GET /tokens/{mint}/depth`) — per-pool price-impact / slippage: "how much SOL moves this token's price N%", per pool (NOT router-optimal). Pass up to 8 SOL buy `sizes` (each >0 and ≤10000; default `[0.5, 1, 5, 10]`); every computable pool returns `spot_price_sol`, `fee_pct`, a `quotes[]` entry per size (`size_sol`, `tokens_out`, `avg_price_sol`, `price_impact_pct`), and `to_move_price` — the SOL required to move price **1% / 5% / 10%**. Constant-product AMMs are served from stream reserves (`source: "stream"` with `reserves_age_ms`); pump.fun/bonk bonding curves from a **live** read of the curve's virtual reserves (`source: "live_rpc"`). Pools that can't be priced honestly — concentrated CLMM/Orca/DLMM, Meteora-DBC curves, unclassified models — come back in `unsupported_pools[]` with a `reason` (e.g. `concentrated_liquidity_depth_not_supported`, `curve_graduated_use_amm_pool`) instead of a wrong number; `primary_pool` names the deepest computable pool, `found: false` means no pools tracked. PRO/ULTRA only. And `tokenRisk()` (`MADEONSOL_TOKEN_RISK_ACTION`) now returns a top-level **`dev` block** (deployer self-activity; `null` when the mint has no deployer-pipeline row): the create-tx self-buy snapshot (`buy_sol`, `buy_tokens`, `buy_supply_pct`), the post-create rollup (`bought_tokens_after` — catches the same-second-separate-tx dev buy the create snapshot reads as 0 — `sold_tokens`, `sold_sol`, `first_sell_at`/`last_sell_at`), **live on-chain holdings** (`holdings_tokens`, `holdings_supply_pct` — pump.fun 1B denominator, null elsewhere — `wallet_empty`: is the dev wallet empty NOW), and `transferred_out` (tokens left without a sell; `null` = unknown, never a guess), plus `as_of`. `deployer:alert` webhook/WS payloads gain `dev_buy_sol` + `dev_buy_supply_pct`.
15
+ >
16
+ > **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.
17
+ >
14
18
  > **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
19
  >
16
20
  > **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 +128,8 @@ const events = await agent.methods.walletTrackerTrades(agent, { limit: 50 });
124
128
  | `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
129
  | `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
130
  | `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+) |
131
+ | `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+) |
132
+ | `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
133
 
128
134
  ## Additional methods (v1.0+)
129
135
 
@@ -144,12 +150,15 @@ await agent.methods.alphaLinked(agent, { wallet: "WALLET" }); // ULTRA
144
150
  ```ts
145
151
  await agent.methods.tokenCapTable(agent, { mint: "MINT" }); // PRO=10, ULTRA=20 first non-deployer buyers
146
152
  await agent.methods.tokenBuyerQuality(agent, { mint: "MINT" }); // 0–100 buyer-quality score (5-min cached)
147
- await agent.methods.tokenRisk(agent, { mint: "MINT" }); // PRO+ 0–100 rug-risk/safety score + band + factors
153
+ await agent.methods.tokenRisk(agent, { mint: "MINT" }); // PRO+ 0–100 rug-risk/safety score + band + factors + dev block (self-buy, sells, live holdings, wallet_empty, transferred_out)
148
154
  await agent.methods.tokenRiskBatch(agent, { mints: ["MINT_A", "MINT_B"] }); // PRO+ bulk rug-risk for 1–50 mints → { tokens, count }; one request
149
155
  await agent.methods.tokenBundle(agent, { mint: "MINT" }); // PRO+ bundle-cohort holdings: held_pct_of_supply signal; ULTRA=+wallet identity
150
156
  await agent.methods.tokenPools(agent, { mint: "MINT" }); // PRO+ per-venue liquidity map: live vs parked pools, fragmentation, top-pool share
157
+ await agent.methods.tokenDepth(agent, { mint: "MINT", sizes: [1, 5] }); // PRO+ per-pool price impact: quotes per SOL size + SOL to move price 1%/5%/10%; unsupported pools flagged
151
158
  await agent.methods.tokenCandles(agent, { mint: "MINT", tf: "1h" }); // PRO+ OHLCV candles (1m–1d); ULTRA=+net flow, liquidity, full history
152
159
  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
160
+ 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
161
+ 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
162
  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
163
  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
164
  ```
@@ -0,0 +1,38 @@
1
+ import { z } from "zod";
2
+ export declare const tokenDepthAction: {
3
+ name: string;
4
+ similes: string[];
5
+ description: string;
6
+ examples: {
7
+ input: {
8
+ mint: string;
9
+ sizes: number[];
10
+ };
11
+ output: {
12
+ status: string;
13
+ };
14
+ explanation: string;
15
+ }[][];
16
+ schema: z.ZodObject<{
17
+ mint: z.ZodString;
18
+ sizes: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
19
+ }, "strip", z.ZodTypeAny, {
20
+ mint: string;
21
+ sizes?: number[] | undefined;
22
+ }, {
23
+ mint: string;
24
+ sizes?: number[] | undefined;
25
+ }>;
26
+ handler: (agent: unknown, input: {
27
+ mint: string;
28
+ sizes?: number[];
29
+ }) => Promise<{
30
+ status: string;
31
+ result: any;
32
+ message?: undefined;
33
+ } | {
34
+ status: string;
35
+ message: string;
36
+ result?: undefined;
37
+ }>;
38
+ };
@@ -0,0 +1,24 @@
1
+ import { z } from "zod";
2
+ import { tokenDepth } from "../tools/index.js";
3
+ export const tokenDepthAction = {
4
+ name: "MADEONSOL_TOKEN_DEPTH_ACTION",
5
+ similes: ["token depth", "price impact", "slippage", "market depth", "how much sol to move the price", "liquidity depth"],
6
+ description: "Get per-pool price-impact / slippage for a Solana token — how much SOL moves the price N% and the impact of each buy size, per pool (NOT router-optimal). Each computable pool returns spot_price_sol, fee_pct, quotes per SOL size (tokens_out, avg_price_sol, price_impact_pct), and to_move_price (SOL to move price 1%/5%/10%). Constant-product AMMs come from stream reserves (source=stream); pump.fun/bonk curves from a live read of virtual reserves (source=live_rpc). Unsupported pools (CLMM/Orca/DLMM, Meteora-DBC, unclassified) are returned in unsupported_pools with a reason instead of a wrong number. PRO/ULTRA only — BASIC receives HTTP 403.",
7
+ examples: [
8
+ [{ input: { mint: "7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU", sizes: [0.5, 1, 5, 10] }, output: { status: "success" }, explanation: "Get per-pool price impact and the SOL needed to move this token's price 1%/5%/10%." }],
9
+ ],
10
+ schema: z.object({
11
+ mint: z.string().describe("Token mint address (base58)"),
12
+ sizes: z.array(z.number().gt(0).max(10000)).min(1).max(8).optional()
13
+ .describe("SOL buy sizes to quote (max 8, each >0 and ≤10000). Default [0.5, 1, 5, 10]"),
14
+ }),
15
+ handler: async (agent, input) => {
16
+ try {
17
+ const data = await tokenDepth(agent, input);
18
+ return { status: "success", result: data };
19
+ }
20
+ catch (err) {
21
+ return { status: "error", message: err.message };
22
+ }
23
+ },
24
+ };
@@ -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
@@ -15,12 +15,15 @@ import { almostBondedAction } from "./actions/almostBonded.js";
15
15
  import { tokenRiskAction } from "./actions/tokenRisk.js";
16
16
  import { tokenBundleAction } from "./actions/tokenBundle.js";
17
17
  import { tokenPoolsAction } from "./actions/tokenPools.js";
18
+ import { tokenDepthAction } from "./actions/tokenDepth.js";
18
19
  import { deployerHistoryAction } from "./actions/deployerHistory.js";
19
20
  import { tokenCandlesAction } from "./actions/tokenCandles.js";
20
21
  import { tokenFlowAction } from "./actions/tokenFlow.js";
21
22
  import { tokenRiskBatchAction } from "./actions/tokenRiskBatch.js";
23
+ import { tokenTradesAction } from "./actions/tokenTrades.js";
24
+ import { walletClassifyAction } from "./actions/walletClassify.js";
22
25
  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";
26
+ 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, tokenDepth, 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
27
  import { walletStatsAction, walletPnlAction, walletPositionsAction, walletHoldingsAction, walletTradesAction } from "./actions/wallet.js";
25
28
  declare const MadeOnSolPlugin: {
26
29
  name: string;
@@ -55,8 +58,10 @@ declare const MadeOnSolPlugin: {
55
58
  tokenRiskBatch: typeof tokenRiskBatch;
56
59
  tokenBundle: typeof tokenBundle;
57
60
  tokenPools: typeof tokenPools;
61
+ tokenDepth: typeof tokenDepth;
58
62
  tokenCandles: typeof tokenCandles;
59
63
  tokenFlow: typeof tokenFlow;
64
+ tokenTrades: typeof tokenTrades;
60
65
  deployerHistory: typeof deployerHistory;
61
66
  copyTradeList: typeof copyTradeList;
62
67
  copyTradeCreate: typeof copyTradeCreate;
@@ -93,6 +98,7 @@ declare const MadeOnSolPlugin: {
93
98
  walletPositions: typeof walletPositions;
94
99
  walletHoldings: typeof walletHoldings;
95
100
  walletTrades: typeof walletTrades;
101
+ walletClassify: typeof walletClassify;
96
102
  };
97
103
  actions: ({
98
104
  name: string;
@@ -891,6 +897,42 @@ declare const MadeOnSolPlugin: {
891
897
  message: string;
892
898
  result?: undefined;
893
899
  }>;
900
+ } | {
901
+ name: string;
902
+ similes: string[];
903
+ description: string;
904
+ examples: {
905
+ input: {
906
+ mint: string;
907
+ sizes: number[];
908
+ };
909
+ output: {
910
+ status: string;
911
+ };
912
+ explanation: string;
913
+ }[][];
914
+ schema: import("zod").ZodObject<{
915
+ mint: import("zod").ZodString;
916
+ sizes: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodNumber, "many">>;
917
+ }, "strip", import("zod").ZodTypeAny, {
918
+ mint: string;
919
+ sizes?: number[] | undefined;
920
+ }, {
921
+ mint: string;
922
+ sizes?: number[] | undefined;
923
+ }>;
924
+ handler: (agent: unknown, input: {
925
+ mint: string;
926
+ sizes?: number[];
927
+ }) => Promise<{
928
+ status: string;
929
+ result: any;
930
+ message?: undefined;
931
+ } | {
932
+ status: string;
933
+ message: string;
934
+ result?: undefined;
935
+ }>;
894
936
  } | {
895
937
  name: string;
896
938
  similes: string[];
@@ -1042,6 +1084,63 @@ declare const MadeOnSolPlugin: {
1042
1084
  message: string;
1043
1085
  result?: undefined;
1044
1086
  }>;
1087
+ } | {
1088
+ name: string;
1089
+ similes: string[];
1090
+ description: string;
1091
+ examples: {
1092
+ input: {
1093
+ mint: string;
1094
+ limit: number;
1095
+ action: string;
1096
+ };
1097
+ output: {
1098
+ status: string;
1099
+ };
1100
+ explanation: string;
1101
+ }[][];
1102
+ schema: import("zod").ZodObject<{
1103
+ mint: import("zod").ZodString;
1104
+ limit: import("zod").ZodOptional<import("zod").ZodNumber>;
1105
+ cursor: import("zod").ZodOptional<import("zod").ZodString>;
1106
+ action: import("zod").ZodOptional<import("zod").ZodEnum<["buy", "sell"]>>;
1107
+ wallet: import("zod").ZodOptional<import("zod").ZodString>;
1108
+ since: import("zod").ZodOptional<import("zod").ZodNumber>;
1109
+ until: import("zod").ZodOptional<import("zod").ZodNumber>;
1110
+ }, "strip", import("zod").ZodTypeAny, {
1111
+ mint: string;
1112
+ limit?: number | undefined;
1113
+ wallet?: string | undefined;
1114
+ action?: "buy" | "sell" | undefined;
1115
+ cursor?: string | undefined;
1116
+ since?: number | undefined;
1117
+ until?: number | undefined;
1118
+ }, {
1119
+ mint: string;
1120
+ limit?: number | undefined;
1121
+ wallet?: string | undefined;
1122
+ action?: "buy" | "sell" | undefined;
1123
+ cursor?: string | undefined;
1124
+ since?: number | undefined;
1125
+ until?: number | undefined;
1126
+ }>;
1127
+ handler: (agent: unknown, input: {
1128
+ mint: string;
1129
+ limit?: number;
1130
+ cursor?: string;
1131
+ action?: "buy" | "sell";
1132
+ wallet?: string;
1133
+ since?: number;
1134
+ until?: number;
1135
+ }) => Promise<{
1136
+ status: string;
1137
+ result: any;
1138
+ message?: undefined;
1139
+ } | {
1140
+ status: string;
1141
+ message: string;
1142
+ result?: undefined;
1143
+ }>;
1045
1144
  } | {
1046
1145
  name: string;
1047
1146
  similes: string[];
@@ -1206,8 +1305,8 @@ declare const MadeOnSolPlugin: {
1206
1305
  initialize(_agent: unknown): void;
1207
1306
  };
1208
1307
  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, };
1308
+ 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, tokenDepth, 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
1309
  export { kolFeedAction, kolCoordinationAction, kolLeaderboardAction, deployerAlertsAction, kolPnlAction, kolTrendingTokensAction, kolTokenEntryOrderAction, kolCompareAction, kolAlertsRecentAction, kolFirstTouchesAction };
1211
1310
  export { walletTrackerWatchlistAction, walletTrackerAddAction, walletTrackerRemoveAction, walletTrackerTradesAction, walletTrackerSummaryAction };
1212
1311
  export { walletStatsAction, walletPnlAction, walletPositionsAction, walletHoldingsAction, walletTradesAction };
1213
- export { meAction, tokensListAction, almostBondedAction, tokenRiskAction, tokenRiskBatchAction, tokenBundleAction, tokenPoolsAction, deployerHistoryAction, tokenCandlesAction, tokenFlowAction, streamSessionsAction, streamSessionKillAction };
1312
+ export { meAction, tokensListAction, almostBondedAction, tokenRiskAction, tokenRiskBatchAction, tokenBundleAction, tokenPoolsAction, tokenDepthAction, deployerHistoryAction, tokenCandlesAction, tokenFlowAction, tokenTradesAction, walletClassifyAction, streamSessionsAction, streamSessionKillAction };
package/dist/index.js CHANGED
@@ -15,12 +15,15 @@ import { almostBondedAction } from "./actions/almostBonded.js";
15
15
  import { tokenRiskAction } from "./actions/tokenRisk.js";
16
16
  import { tokenBundleAction } from "./actions/tokenBundle.js";
17
17
  import { tokenPoolsAction } from "./actions/tokenPools.js";
18
+ import { tokenDepthAction } from "./actions/tokenDepth.js";
18
19
  import { deployerHistoryAction } from "./actions/deployerHistory.js";
19
20
  import { tokenCandlesAction } from "./actions/tokenCandles.js";
20
21
  import { tokenFlowAction } from "./actions/tokenFlow.js";
21
22
  import { tokenRiskBatchAction } from "./actions/tokenRiskBatch.js";
23
+ import { tokenTradesAction } from "./actions/tokenTrades.js";
24
+ import { walletClassifyAction } from "./actions/walletClassify.js";
22
25
  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";
26
+ 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, tokenDepth, 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
27
  import { walletStatsAction, walletPnlAction, walletPositionsAction, walletHoldingsAction, walletTradesAction } from "./actions/wallet.js";
25
28
  const MadeOnSolPlugin = {
26
29
  name: "madeonsol",
@@ -55,8 +58,10 @@ const MadeOnSolPlugin = {
55
58
  tokenRiskBatch,
56
59
  tokenBundle,
57
60
  tokenPools,
61
+ tokenDepth,
58
62
  tokenCandles,
59
63
  tokenFlow,
64
+ tokenTrades,
60
65
  deployerHistory,
61
66
  copyTradeList,
62
67
  copyTradeCreate,
@@ -93,6 +98,7 @@ const MadeOnSolPlugin = {
93
98
  walletPositions,
94
99
  walletHoldings,
95
100
  walletTrades,
101
+ walletClassify,
96
102
  },
97
103
  actions: [
98
104
  kolFeedAction,
@@ -117,9 +123,12 @@ const MadeOnSolPlugin = {
117
123
  tokenRiskBatchAction,
118
124
  tokenBundleAction,
119
125
  tokenPoolsAction,
126
+ tokenDepthAction,
120
127
  deployerHistoryAction,
121
128
  tokenCandlesAction,
122
129
  tokenFlowAction,
130
+ tokenTradesAction,
131
+ walletClassifyAction,
123
132
  streamSessionsAction,
124
133
  streamSessionKillAction,
125
134
  walletStatsAction,
@@ -133,8 +142,8 @@ const MadeOnSolPlugin = {
133
142
  },
134
143
  };
135
144
  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, };
145
+ 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, tokenDepth, 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
146
  export { kolFeedAction, kolCoordinationAction, kolLeaderboardAction, deployerAlertsAction, kolPnlAction, kolTrendingTokensAction, kolTokenEntryOrderAction, kolCompareAction, kolAlertsRecentAction, kolFirstTouchesAction };
138
147
  export { walletTrackerWatchlistAction, walletTrackerAddAction, walletTrackerRemoveAction, walletTrackerTradesAction, walletTrackerSummaryAction };
139
148
  export { walletStatsAction, walletPnlAction, walletPositionsAction, walletHoldingsAction, walletTradesAction };
140
- export { meAction, tokensListAction, almostBondedAction, tokenRiskAction, tokenRiskBatchAction, tokenBundleAction, tokenPoolsAction, deployerHistoryAction, tokenCandlesAction, tokenFlowAction, streamSessionsAction, streamSessionKillAction };
149
+ export { meAction, tokensListAction, almostBondedAction, tokenRiskAction, tokenRiskBatchAction, tokenBundleAction, tokenPoolsAction, tokenDepthAction, deployerHistoryAction, tokenCandlesAction, tokenFlowAction, tokenTradesAction, walletClassifyAction, streamSessionsAction, streamSessionKillAction };
@@ -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;
@@ -203,7 +214,16 @@ export declare function tokenCapTable(agent: Agent, params: {
203
214
  export declare function tokenBuyerQuality(agent: Agent, params: {
204
215
  mint: string;
205
216
  }): Promise<any>;
206
- /** Transparent 0–100 rug-risk/safety score (higher = riskier) with band, explainable factors, and raw inputs. PRO/ULTRA only. */
217
+ /**
218
+ * Transparent 0–100 rug-risk/safety score (higher = riskier) with band, explainable factors, and
219
+ * raw inputs. Also returns a top-level `dev` block (deployer self-activity; null when the mint has
220
+ * no deployer-pipeline row): create-tx self-buy snapshot (buy_sol/buy_tokens/buy_supply_pct),
221
+ * post-create rollup (bought_tokens_after — catches the same-second-separate-tx dev buy —
222
+ * sold_tokens, sold_sol, first_sell_at/last_sell_at), LIVE on-chain holdings (holdings_tokens,
223
+ * holdings_supply_pct — pump.fun 1B denominator, null elsewhere — wallet_empty: is the dev wallet
224
+ * empty NOW), and transferred_out (tokens left without a sell; null = unknown, never a guess),
225
+ * plus as_of. PRO/ULTRA only.
226
+ */
207
227
  export declare function tokenRisk(agent: Agent, params: {
208
228
  mint: string;
209
229
  }): Promise<any>;
@@ -215,6 +235,22 @@ export declare function tokenBundle(agent: Agent, params: {
215
235
  export declare function tokenPools(agent: Agent, params: {
216
236
  mint: string;
217
237
  }): Promise<any>;
238
+ /**
239
+ * Per-pool price-impact / slippage for a token (GET /tokens/{mint}/depth) — "how much SOL moves
240
+ * this token's price N%" and the impact of each buy size, per pool (NOT router-optimal). Each
241
+ * computable pool carries spot_price_sol, fee_pct, a quotes[] entry per requested SOL size
242
+ * (size_sol, tokens_out, avg_price_sol, price_impact_pct), and to_move_price (SOL to move price
243
+ * 1%/5%/10%). Constant-product pools are served from stream reserves (source="stream", with
244
+ * reserves_age_ms); pump.fun/bonk curves from a LIVE read of the curve's virtual reserves
245
+ * (source="live_rpc"). Pools we can't price honestly (CLMM/Orca/DLMM, Meteora-DBC, unclassified)
246
+ * land in unsupported_pools[] with a `reason` instead of a wrong number; found=false means no
247
+ * pools tracked. `sizes` — up to 8 SOL buy sizes (each >0 and ≤10000; default [0.5, 1, 5, 10]),
248
+ * sent as a CSV query param. PRO/ULTRA only.
249
+ */
250
+ export declare function tokenDepth(agent: Agent, params: {
251
+ mint: string;
252
+ sizes?: number[];
253
+ }): Promise<any>;
218
254
  /** Historical OHLCV candles (1m/5m/15m/1h/4h/1d) aggregated from the trade firehose. PRO=OHLCV 30d; ULTRA=+net flow, liquidity delta, full history. PRO/ULTRA only. */
219
255
  export declare function tokenCandles(agent: Agent, params: {
220
256
  mint: string;
@@ -231,6 +267,23 @@ export declare function tokenFlow(agent: Agent, params: {
231
267
  mint: string;
232
268
  window?: "1h" | "24h";
233
269
  }): Promise<any>;
270
+ /**
271
+ * Mint-scoped trade tape — every captured trade for a token, cursor-paginated newest first
272
+ * (GET /tokens/{mint}/trades). Each trade: tx_signature, wallet_address, action, sol_amount,
273
+ * token_amount, price_sol/price_usd, early_buyer_rank, slot, block_time, traded_at. Filter by
274
+ * `action`, `wallet`, `since`/`until` (unix sec); unlike walletTrades (90d default) the default
275
+ * window is the FULL history. Coverage honesty: the tape starts 2026-04-12 and is
276
+ * pump.fun-pipeline scoped — see the response `coverage` block (history_start, scope). PRO/ULTRA only.
277
+ */
278
+ export declare function tokenTrades(agent: Agent, params: {
279
+ mint: string;
280
+ limit?: number;
281
+ cursor?: string;
282
+ action?: "buy" | "sell";
283
+ wallet?: string;
284
+ since?: number;
285
+ until?: number;
286
+ }): Promise<any>;
234
287
  /** Bulk buyer-quality scoring for up to 50 mints. Shares the 5-min LRU cache with the single-mint endpoint. */
235
288
  export declare function tokenBuyerQualityBatch(agent: Agent, params: {
236
289
  mints: string[];
@@ -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();
@@ -303,7 +314,16 @@ export async function tokenCapTable(agent, params) {
303
314
  export async function tokenBuyerQuality(agent, params) {
304
315
  return restQuery(agent, "GET", `/tokens/${encodeURIComponent(params.mint)}/buyer-quality`);
305
316
  }
306
- /** Transparent 0–100 rug-risk/safety score (higher = riskier) with band, explainable factors, and raw inputs. PRO/ULTRA only. */
317
+ /**
318
+ * Transparent 0–100 rug-risk/safety score (higher = riskier) with band, explainable factors, and
319
+ * raw inputs. Also returns a top-level `dev` block (deployer self-activity; null when the mint has
320
+ * no deployer-pipeline row): create-tx self-buy snapshot (buy_sol/buy_tokens/buy_supply_pct),
321
+ * post-create rollup (bought_tokens_after — catches the same-second-separate-tx dev buy —
322
+ * sold_tokens, sold_sol, first_sell_at/last_sell_at), LIVE on-chain holdings (holdings_tokens,
323
+ * holdings_supply_pct — pump.fun 1B denominator, null elsewhere — wallet_empty: is the dev wallet
324
+ * empty NOW), and transferred_out (tokens left without a sell; null = unknown, never a guess),
325
+ * plus as_of. PRO/ULTRA only.
326
+ */
307
327
  export async function tokenRisk(agent, params) {
308
328
  return restQuery(agent, "GET", `/tokens/${encodeURIComponent(params.mint)}/risk`);
309
329
  }
@@ -315,6 +335,25 @@ export async function tokenBundle(agent, params) {
315
335
  export async function tokenPools(agent, params) {
316
336
  return restQuery(agent, "GET", `/tokens/${encodeURIComponent(params.mint)}/pools`);
317
337
  }
338
+ /**
339
+ * Per-pool price-impact / slippage for a token (GET /tokens/{mint}/depth) — "how much SOL moves
340
+ * this token's price N%" and the impact of each buy size, per pool (NOT router-optimal). Each
341
+ * computable pool carries spot_price_sol, fee_pct, a quotes[] entry per requested SOL size
342
+ * (size_sol, tokens_out, avg_price_sol, price_impact_pct), and to_move_price (SOL to move price
343
+ * 1%/5%/10%). Constant-product pools are served from stream reserves (source="stream", with
344
+ * reserves_age_ms); pump.fun/bonk curves from a LIVE read of the curve's virtual reserves
345
+ * (source="live_rpc"). Pools we can't price honestly (CLMM/Orca/DLMM, Meteora-DBC, unclassified)
346
+ * land in unsupported_pools[] with a `reason` instead of a wrong number; found=false means no
347
+ * pools tracked. `sizes` — up to 8 SOL buy sizes (each >0 and ≤10000; default [0.5, 1, 5, 10]),
348
+ * sent as a CSV query param. PRO/ULTRA only.
349
+ */
350
+ export async function tokenDepth(agent, params) {
351
+ const qs = new URLSearchParams();
352
+ if (params.sizes && params.sizes.length > 0)
353
+ qs.set("sizes", params.sizes.join(","));
354
+ const query = qs.toString() ? `?${qs.toString()}` : "";
355
+ return restQuery(agent, "GET", `/tokens/${encodeURIComponent(params.mint)}/depth${query}`);
356
+ }
318
357
  /** Historical OHLCV candles (1m/5m/15m/1h/4h/1d) aggregated from the trade firehose. PRO=OHLCV 30d; ULTRA=+net flow, liquidity delta, full history. PRO/ULTRA only. */
319
358
  export async function tokenCandles(agent, params) {
320
359
  const qs = new URLSearchParams();
@@ -337,6 +376,31 @@ export async function tokenFlow(agent, params) {
337
376
  const qs = params.window !== undefined ? `?window=${params.window}` : "";
338
377
  return restQuery(agent, "GET", `/tokens/${encodeURIComponent(params.mint)}/flow${qs}`);
339
378
  }
379
+ /**
380
+ * Mint-scoped trade tape — every captured trade for a token, cursor-paginated newest first
381
+ * (GET /tokens/{mint}/trades). Each trade: tx_signature, wallet_address, action, sol_amount,
382
+ * token_amount, price_sol/price_usd, early_buyer_rank, slot, block_time, traded_at. Filter by
383
+ * `action`, `wallet`, `since`/`until` (unix sec); unlike walletTrades (90d default) the default
384
+ * window is the FULL history. Coverage honesty: the tape starts 2026-04-12 and is
385
+ * pump.fun-pipeline scoped — see the response `coverage` block (history_start, scope). PRO/ULTRA only.
386
+ */
387
+ export async function tokenTrades(agent, params) {
388
+ const qs = new URLSearchParams();
389
+ if (params.limit !== undefined)
390
+ qs.set("limit", String(params.limit));
391
+ if (params.cursor)
392
+ qs.set("cursor", params.cursor);
393
+ if (params.action)
394
+ qs.set("action", params.action);
395
+ if (params.wallet)
396
+ qs.set("wallet", params.wallet);
397
+ if (params.since !== undefined)
398
+ qs.set("since", String(params.since));
399
+ if (params.until !== undefined)
400
+ qs.set("until", String(params.until));
401
+ const query = qs.toString() ? `?${qs.toString()}` : "";
402
+ return restQuery(agent, "GET", `/tokens/${encodeURIComponent(params.mint)}/trades${query}`);
403
+ }
340
404
  /** Bulk buyer-quality scoring for up to 50 mints. Shares the 5-min LRU cache with the single-mint endpoint. */
341
405
  export async function tokenBuyerQualityBatch(agent, params) {
342
406
  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.17.0";
1
+ export declare const VERSION = "1.19.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.17.0";
2
+ export const VERSION = "1.19.0";
package/package.json CHANGED
@@ -1,55 +1,55 @@
1
- {
2
- "name": "solana-agent-kit-plugin-madeonsol",
3
- "version": "1.17.0",
4
- "description": "Solana Agent Kit plugin for MadeOnSol — KOL intelligence and deployer analytics via x402 micropayments",
5
- "type": "module",
6
- "main": "dist/index.js",
7
- "types": "dist/index.d.ts",
8
- "files": [
9
- "dist",
10
- "README.md"
11
- ],
12
- "scripts": {
13
- "prebuild": "node ../gen-version.mjs",
14
- "build": "tsc",
15
- "preflight": "bash ../../scripts/preflight-publish.sh",
16
- "prepublishOnly": "npm run preflight && npm run build"
17
- },
18
- "keywords": [
19
- "solana",
20
- "agent-kit",
21
- "solana-agent-kit",
22
- "sendaifun",
23
- "plugin",
24
- "ai-agent",
25
- "x402",
26
- "kol",
27
- "kol-tracker",
28
- "trading",
29
- "memecoin",
30
- "memecoin-tracker",
31
- "pumpfun",
32
- "deployer-hunter",
33
- "alpha",
34
- "alpha-bot",
35
- "smart-money",
36
- "copy-trading",
37
- "madeonsol"
38
- ],
39
- "license": "MIT",
40
- "repository": {
41
- "type": "git",
42
- "url": "https://github.com/madeonsol/solana-agent-kit-plugin-madeonsol"
43
- },
44
- "peerDependencies": {
45
- "solana-agent-kit": ">=2.0.0",
46
- "@x402/fetch": ">=0.1.0",
47
- "@x402/core": ">=0.1.0",
48
- "@x402/svm": ">=0.1.0",
49
- "@solana/kit": ">=2.0.0",
50
- "@scure/base": ">=1.0.0"
51
- },
52
- "dependencies": {
53
- "zod": "^3.24.0"
54
- }
55
- }
1
+ {
2
+ "name": "solana-agent-kit-plugin-madeonsol",
3
+ "version": "1.19.0",
4
+ "description": "Solana Agent Kit plugin for MadeOnSol — KOL intelligence and deployer analytics via x402 micropayments",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "files": [
9
+ "dist",
10
+ "README.md"
11
+ ],
12
+ "scripts": {
13
+ "prebuild": "node ../gen-version.mjs",
14
+ "build": "tsc",
15
+ "preflight": "bash ../../scripts/preflight-publish.sh",
16
+ "prepublishOnly": "npm run preflight && npm run build"
17
+ },
18
+ "keywords": [
19
+ "solana",
20
+ "agent-kit",
21
+ "solana-agent-kit",
22
+ "sendaifun",
23
+ "plugin",
24
+ "ai-agent",
25
+ "x402",
26
+ "kol",
27
+ "kol-tracker",
28
+ "trading",
29
+ "memecoin",
30
+ "memecoin-tracker",
31
+ "pumpfun",
32
+ "deployer-hunter",
33
+ "alpha",
34
+ "alpha-bot",
35
+ "smart-money",
36
+ "copy-trading",
37
+ "madeonsol"
38
+ ],
39
+ "license": "MIT",
40
+ "repository": {
41
+ "type": "git",
42
+ "url": "https://github.com/madeonsol/solana-agent-kit-plugin-madeonsol"
43
+ },
44
+ "peerDependencies": {
45
+ "solana-agent-kit": ">=2.0.0",
46
+ "@x402/fetch": ">=0.1.0",
47
+ "@x402/core": ">=0.1.0",
48
+ "@x402/svm": ">=0.1.0",
49
+ "@solana/kit": ">=2.0.0",
50
+ "@scure/base": ">=1.0.0"
51
+ },
52
+ "dependencies": {
53
+ "zod": "^3.24.0"
54
+ }
55
+ }