solana-agent-kit-plugin-madeonsol 1.12.1 → 1.14.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, 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) — no credit card required.
13
13
 
14
+ > **New in 1.14.0** — **Almost-bonded discovery + trending sorts.** New tool `almostBonded()` + action `MADEONSOL_ALMOST_BONDED_ACTION` — 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 `tokensList({ sort })` gains four momentum sorts — `mc_change_5m_desc`, `mc_change_1h_desc`, `volume_1h_desc`, and `trending` (composite recent-volume × positive-momentum rank).
15
+ >
16
+ > **New in 1.13.0** — **Token net flow.** New tool `tokenFlow()` + action `MADEONSOL_TOKEN_FLOW_ACTION` — 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/ULTRA only. Deployer alerts now also surface `deployer_sol_balance` — the deployer wallet's SOL balance at alert time (`null` for historical rows).
17
+ >
14
18
  > **New in 1.12.0** — **Token OHLCV candles.** New tool `tokenCandles()` + action `MADEONSOL_TOKEN_CANDLES_ACTION` — 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.
15
19
  >
16
20
  > **New in 1.11.0** — **Token risk score.** New tool `tokenRisk()` + action `MADEONSOL_TOKEN_RISK_ACTION` — 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.
@@ -101,11 +105,13 @@ const events = await agent.methods.walletTrackerTrades(agent, { limit: 50 });
101
105
  | `MADEONSOL_WALLET_TRACKER_TRADES_ACTION` | "wallet tracker trades", "watchlist activity" |
102
106
  | `MADEONSOL_WALLET_TRACKER_SUMMARY_ACTION` | "wallet tracker summary", "tracked wallet stats" |
103
107
  | `MADEONSOL_ME_ACTION` | "my api account", "api quota", "remaining requests" — tier + quota introspection (new in 1.7) |
104
- | `MADEONSOL_TOKENS_LIST_ACTION` | "filter tokens", "tokens by market cap", "scan tokens" — filtered/sortable token directory, PRO+ (new in 1.7) |
108
+ | `MADEONSOL_TOKENS_LIST_ACTION` | "filter tokens", "tokens by market cap", "scan tokens" — filtered/sortable token directory + momentum/trending sorts, PRO+ (new in 1.7) |
109
+ | `MADEONSOL_ALMOST_BONDED_ACTION` | **New 1.14** · "almost bonded", "about to graduate", "near graduation" — pre-bond pump.fun tokens ranked by velocity (Δprogress/min): progress, ETA, stalled, deployer tier (PRO+) |
105
110
  | `MADEONSOL_WALLET_STATS_ACTION` | **New 1.8** · "wallet stats", "wallet info", "check wallet" — aggregate 90d stats + cross-product flags (KOL/alpha/deployer) for any Solana wallet (PRO+) |
106
111
  | `MADEONSOL_WALLET_PNL_ACTION` | **New 1.8** · "wallet pnl", "wallet profit", "wallet performance" — FIFO cost-basis PnL with profit factor, drawdown, daily curve, closed + open positions (PRO+) |
107
112
  | `MADEONSOL_WALLET_POSITIONS_ACTION` | **New 1.8** · "wallet positions", "wallet bags", "open positions" — open lots with live unrealized SOL (PRO+) |
108
113
  | `MADEONSOL_WALLET_TRADES_ACTION` | **New 1.8** · "wallet trades", "wallet history" — cursor-paginated raw trades with filters (PRO+) |
114
+ | `MADEONSOL_TOKEN_FLOW_ACTION` | **New 1.13** · "token flow", "net flow", "buy/sell pressure" — net buy/sell flow over a 1h/24h window (PRO+) |
109
115
 
110
116
  ## Additional methods (v1.0+)
111
117
 
@@ -128,8 +134,12 @@ await agent.methods.tokenCapTable(agent, { mint: "MINT" }); // PRO=1
128
134
  await agent.methods.tokenBuyerQuality(agent, { mint: "MINT" }); // 0–100 buyer-quality score (5-min cached)
129
135
  await agent.methods.tokenRisk(agent, { mint: "MINT" }); // PRO+ 0–100 rug-risk/safety score + band + factors
130
136
  await agent.methods.tokenCandles(agent, { mint: "MINT", tf: "1h" }); // PRO+ OHLCV candles (1m–1d); ULTRA=+net flow, liquidity, full history
137
+ 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
138
+ await agent.methods.almostBonded(agent, { min_progress: 90, sort: "eta_asc" }); // PRO+ pre-bond pump.fun tokens by velocity: progress, ETA, stalled, deployer tier
131
139
  ```
132
140
 
141
+ > Deployer alerts (`MADEONSOL_DEPLOYER_ALERTS_ACTION` / `agent.methods.deployerAlerts()`) now include `deployer_sol_balance` — the deployer wallet's SOL balance at alert time (`null` for historical rows).
142
+
133
143
  ### Copy-Trade Rules (PRO/ULTRA)
134
144
 
135
145
  Server-side rules that fire signals when a watched source wallet trades. Delivered via webhook (HMAC-signed) and/or WebSocket.
@@ -0,0 +1,69 @@
1
+ import { z } from "zod";
2
+ export declare const almostBondedAction: {
3
+ name: string;
4
+ similes: string[];
5
+ description: string;
6
+ examples: {
7
+ input: {
8
+ min_progress: number;
9
+ min_velocity_pct_per_min: number;
10
+ deployer_tier: string;
11
+ sort: string;
12
+ limit: number;
13
+ };
14
+ output: {
15
+ status: string;
16
+ };
17
+ explanation: string;
18
+ }[][];
19
+ schema: z.ZodObject<{
20
+ min_progress: z.ZodOptional<z.ZodNumber>;
21
+ max_progress: z.ZodOptional<z.ZodNumber>;
22
+ min_velocity_pct_per_min: z.ZodOptional<z.ZodNumber>;
23
+ max_age_minutes: z.ZodOptional<z.ZodNumber>;
24
+ deployer_tier: z.ZodOptional<z.ZodEnum<["elite", "good", "moderate", "rising", "cold", "unranked"]>>;
25
+ authority_revoked: z.ZodOptional<z.ZodBoolean>;
26
+ min_liq: z.ZodOptional<z.ZodNumber>;
27
+ sort: z.ZodOptional<z.ZodEnum<["velocity_desc", "progress_desc", "eta_asc"]>>;
28
+ limit: z.ZodDefault<z.ZodNumber>;
29
+ }, "strip", z.ZodTypeAny, {
30
+ limit: number;
31
+ sort?: "velocity_desc" | "progress_desc" | "eta_asc" | undefined;
32
+ min_liq?: number | undefined;
33
+ authority_revoked?: boolean | undefined;
34
+ deployer_tier?: "elite" | "good" | "moderate" | "rising" | "cold" | "unranked" | undefined;
35
+ min_progress?: number | undefined;
36
+ max_progress?: number | undefined;
37
+ min_velocity_pct_per_min?: number | undefined;
38
+ max_age_minutes?: number | undefined;
39
+ }, {
40
+ sort?: "velocity_desc" | "progress_desc" | "eta_asc" | undefined;
41
+ limit?: number | undefined;
42
+ min_liq?: number | undefined;
43
+ authority_revoked?: boolean | undefined;
44
+ deployer_tier?: "elite" | "good" | "moderate" | "rising" | "cold" | "unranked" | undefined;
45
+ min_progress?: number | undefined;
46
+ max_progress?: number | undefined;
47
+ min_velocity_pct_per_min?: number | undefined;
48
+ max_age_minutes?: number | undefined;
49
+ }>;
50
+ handler: (agent: unknown, input: {
51
+ min_progress?: number;
52
+ max_progress?: number;
53
+ min_velocity_pct_per_min?: number;
54
+ max_age_minutes?: number;
55
+ deployer_tier?: "elite" | "good" | "moderate" | "rising" | "cold" | "unranked";
56
+ authority_revoked?: boolean;
57
+ min_liq?: number;
58
+ sort?: "velocity_desc" | "progress_desc" | "eta_asc";
59
+ limit?: number;
60
+ }) => Promise<{
61
+ status: string;
62
+ result: any;
63
+ message?: undefined;
64
+ } | {
65
+ status: string;
66
+ message: string;
67
+ result?: undefined;
68
+ }>;
69
+ };
@@ -0,0 +1,43 @@
1
+ import { z } from "zod";
2
+ import { almostBonded } from "../tools/index.js";
3
+ export const almostBondedAction = {
4
+ name: "MADEONSOL_ALMOST_BONDED_ACTION",
5
+ similes: [
6
+ "almost bonded",
7
+ "about to graduate",
8
+ "near graduation",
9
+ "tokens about to bond",
10
+ "pre-bond tokens",
11
+ "almost graduated pumpfun",
12
+ ],
13
+ description: "Pre-bond pump.fun tokens approaching graduation (PRO+), ranked by velocity (Δprogress/min). Returns mint, symbol, progress_pct, velocity_pct_per_min, eta_minutes, stalled, deployer_tier. '95% and accelerating' beats '92% stalled'.",
14
+ examples: [
15
+ [
16
+ {
17
+ input: { min_progress: 90, min_velocity_pct_per_min: 0.5, deployer_tier: "elite", sort: "eta_asc", limit: 25 },
18
+ output: { status: "success" },
19
+ explanation: "Tokens >90% bonded, accelerating, from an elite deployer, soonest-to-bond first",
20
+ },
21
+ ],
22
+ ],
23
+ schema: z.object({
24
+ min_progress: z.number().min(0).max(100).optional().describe("Lower bound on bonding progress % (default 80)"),
25
+ max_progress: z.number().min(0).max(100).optional().describe("Upper bound on bonding progress % (default 99.99 — already-bonded excluded)"),
26
+ min_velocity_pct_per_min: z.number().optional().describe("Minimum Δprogress/min; drops tokens without a 5m snapshot"),
27
+ max_age_minutes: z.number().min(1).optional().describe("Max minutes since deploy (post-filter)"),
28
+ deployer_tier: z.enum(["elite", "good", "moderate", "rising", "cold", "unranked"]).optional().describe("Filter by deployer reputation tier"),
29
+ authority_revoked: z.boolean().optional().describe("Only tokens with mint+freeze authorities revoked"),
30
+ min_liq: z.number().min(0).optional().describe("Minimum liquidity USD"),
31
+ sort: z.enum(["velocity_desc", "progress_desc", "eta_asc"]).optional().describe("Sort axis (default velocity_desc)"),
32
+ limit: z.number().min(1).max(100).default(20).describe("Number of tokens (max 100)"),
33
+ }),
34
+ handler: async (agent, input) => {
35
+ try {
36
+ const data = await almostBonded(agent, input);
37
+ return { status: "success", result: data };
38
+ }
39
+ catch (err) {
40
+ return { status: "error", message: err.message };
41
+ }
42
+ },
43
+ };
@@ -20,13 +20,13 @@ export declare const kolAlertsRecentAction: {
20
20
  limit: z.ZodDefault<z.ZodNumber>;
21
21
  }, "strip", z.ZodTypeAny, {
22
22
  limit: number;
23
- window: "24h" | "1h" | "6h" | "5m" | "15m";
23
+ window: "1h" | "24h" | "6h" | "5m" | "15m";
24
24
  types?: ("consensus_cluster" | "fresh_token_kol_buy" | "heating_up")[] | undefined;
25
25
  min_severity?: "high" | "medium" | "low" | undefined;
26
26
  }, {
27
27
  limit?: number | undefined;
28
28
  types?: ("consensus_cluster" | "fresh_token_kol_buy" | "heating_up")[] | undefined;
29
- window?: "24h" | "1h" | "6h" | "5m" | "15m" | undefined;
29
+ window?: "1h" | "24h" | "6h" | "5m" | "15m" | undefined;
30
30
  min_severity?: "high" | "medium" | "low" | undefined;
31
31
  }>;
32
32
  handler: (agent: unknown, input: {
@@ -18,11 +18,11 @@ export declare const kolCoordinationAction: {
18
18
  min_kols: z.ZodDefault<z.ZodNumber>;
19
19
  limit: z.ZodDefault<z.ZodNumber>;
20
20
  }, "strip", z.ZodTypeAny, {
21
- period: "24h" | "1h" | "6h" | "7d";
21
+ period: "1h" | "24h" | "6h" | "7d";
22
22
  min_kols: number;
23
23
  limit: number;
24
24
  }, {
25
- period?: "24h" | "1h" | "6h" | "7d" | undefined;
25
+ period?: "1h" | "24h" | "6h" | "7d" | undefined;
26
26
  min_kols?: number | undefined;
27
27
  limit?: number | undefined;
28
28
  }>;
@@ -0,0 +1,38 @@
1
+ import { z } from "zod";
2
+ export declare const tokenFlowAction: {
3
+ name: string;
4
+ similes: string[];
5
+ description: string;
6
+ examples: {
7
+ input: {
8
+ mint: string;
9
+ window: string;
10
+ };
11
+ output: {
12
+ status: string;
13
+ };
14
+ explanation: string;
15
+ }[][];
16
+ schema: z.ZodObject<{
17
+ mint: z.ZodString;
18
+ window: z.ZodOptional<z.ZodEnum<["1h", "24h"]>>;
19
+ }, "strip", z.ZodTypeAny, {
20
+ mint: string;
21
+ window?: "1h" | "24h" | undefined;
22
+ }, {
23
+ mint: string;
24
+ window?: "1h" | "24h" | undefined;
25
+ }>;
26
+ handler: (agent: unknown, input: {
27
+ mint: string;
28
+ window?: "1h" | "24h";
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,23 @@
1
+ import { z } from "zod";
2
+ import { tokenFlow } from "../tools/index.js";
3
+ export const tokenFlowAction = {
4
+ name: "MADEONSOL_TOKEN_FLOW_ACTION",
5
+ similes: ["token flow", "net flow", "buy sell flow", "buy pressure", "sell pressure", "net sol flow"],
6
+ description: "Get net buy/sell flow for a Solana token over a rolling window (1h or 24h). Returns unique wallet/buyer/seller counts, buy/sell trade counts, buy/sell/net SOL, and trades-per-wallet. Default window is 1h. PRO/ULTRA only — BASIC receives HTTP 403.",
7
+ examples: [
8
+ [{ input: { mint: "7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU", window: "24h" }, output: { status: "success" }, explanation: "Get the 24h net buy/sell flow for this token." }],
9
+ ],
10
+ schema: z.object({
11
+ mint: z.string().describe("Token mint address (base58)"),
12
+ window: z.enum(["1h", "24h"]).optional().describe("Rolling window (default 1h)"),
13
+ }),
14
+ handler: async (agent, input) => {
15
+ try {
16
+ const data = await tokenFlow(agent, input);
17
+ return { status: "success", result: data };
18
+ }
19
+ catch (err) {
20
+ return { status: "error", message: err.message };
21
+ }
22
+ },
23
+ };
@@ -32,12 +32,12 @@ export declare const tokensListAction: {
32
32
  min_liq_mc_ratio: z.ZodOptional<z.ZodNumber>;
33
33
  max_liq_mc_ratio: z.ZodOptional<z.ZodNumber>;
34
34
  deployer_tier: z.ZodOptional<z.ZodEnum<["elite", "good", "moderate", "rising", "cold", "unranked"]>>;
35
- sort: z.ZodOptional<z.ZodEnum<["mc_desc", "mc_asc", "last_trade_desc", "liquidity_desc", "cumulative_volume_desc"]>>;
35
+ sort: z.ZodOptional<z.ZodEnum<["mc_desc", "mc_asc", "last_trade_desc", "liquidity_desc", "cumulative_volume_desc", "mc_change_5m_desc", "mc_change_1h_desc", "volume_1h_desc", "trending"]>>;
36
36
  limit: z.ZodDefault<z.ZodNumber>;
37
37
  offset: z.ZodOptional<z.ZodNumber>;
38
38
  }, "strip", z.ZodTypeAny, {
39
39
  limit: number;
40
- sort?: "mc_desc" | "mc_asc" | "last_trade_desc" | "liquidity_desc" | "cumulative_volume_desc" | undefined;
40
+ sort?: "mc_desc" | "mc_asc" | "last_trade_desc" | "liquidity_desc" | "cumulative_volume_desc" | "mc_change_5m_desc" | "mc_change_1h_desc" | "volume_1h_desc" | "trending" | undefined;
41
41
  min_mc?: number | undefined;
42
42
  max_mc?: number | undefined;
43
43
  min_liq?: number | undefined;
@@ -55,7 +55,7 @@ export declare const tokensListAction: {
55
55
  deployer_tier?: "elite" | "good" | "moderate" | "rising" | "cold" | "unranked" | undefined;
56
56
  offset?: number | undefined;
57
57
  }, {
58
- sort?: "mc_desc" | "mc_asc" | "last_trade_desc" | "liquidity_desc" | "cumulative_volume_desc" | undefined;
58
+ sort?: "mc_desc" | "mc_asc" | "last_trade_desc" | "liquidity_desc" | "cumulative_volume_desc" | "mc_change_5m_desc" | "mc_change_1h_desc" | "volume_1h_desc" | "trending" | undefined;
59
59
  limit?: number | undefined;
60
60
  min_mc?: number | undefined;
61
61
  max_mc?: number | undefined;
@@ -90,7 +90,7 @@ export declare const tokensListAction: {
90
90
  min_liq_mc_ratio?: number;
91
91
  max_liq_mc_ratio?: number;
92
92
  deployer_tier?: "elite" | "good" | "moderate" | "rising" | "cold" | "unranked";
93
- sort?: "mc_desc" | "mc_asc" | "last_trade_desc" | "liquidity_desc" | "cumulative_volume_desc";
93
+ sort?: "mc_desc" | "mc_asc" | "last_trade_desc" | "liquidity_desc" | "cumulative_volume_desc" | "mc_change_5m_desc" | "mc_change_1h_desc" | "volume_1h_desc" | "trending";
94
94
  limit?: number;
95
95
  offset?: number;
96
96
  }) => Promise<{
@@ -42,9 +42,9 @@ export const tokensListAction = {
42
42
  max_liq_mc_ratio: z.number().min(0).optional().describe("Maximum liquidity-to-MC ratio"),
43
43
  deployer_tier: z.enum(["elite", "good", "moderate", "rising", "cold", "unranked"]).optional().describe("Filter by deployer reputation tier"),
44
44
  sort: z
45
- .enum(["mc_desc", "mc_asc", "last_trade_desc", "liquidity_desc", "cumulative_volume_desc"])
45
+ .enum(["mc_desc", "mc_asc", "last_trade_desc", "liquidity_desc", "cumulative_volume_desc", "mc_change_5m_desc", "mc_change_1h_desc", "volume_1h_desc", "trending"])
46
46
  .optional()
47
- .describe("Sort order"),
47
+ .describe("Sort order. Momentum sorts: mc_change_5m_desc, mc_change_1h_desc, volume_1h_desc, trending (composite recent-volume × positive-momentum rank)"),
48
48
  limit: z.number().min(1).max(100).default(20).describe("Number of tokens (max 100)"),
49
49
  offset: z.number().min(0).optional().describe("Pagination offset"),
50
50
  }),
package/dist/index.d.ts CHANGED
@@ -11,9 +11,11 @@ import { kolAlertsRecentAction } from "./actions/kolAlertsRecent.js";
11
11
  import { kolFirstTouchesAction } from "./actions/kolFirstTouches.js";
12
12
  import { meAction } from "./actions/me.js";
13
13
  import { tokensListAction } from "./actions/tokensList.js";
14
+ import { almostBondedAction } from "./actions/almostBonded.js";
14
15
  import { tokenRiskAction } from "./actions/tokenRisk.js";
15
16
  import { tokenCandlesAction } from "./actions/tokenCandles.js";
16
- import { kolFeed, kolCoordination, kolLeaderboard, deployerAlerts, kolPnl, kolTrendingTokens, kolTokenEntryOrder, kolCompare, kolAlertsRecent, createWebhook, listWebhooks, deleteWebhook, testWebhook, getStreamToken, walletTrackerWatchlist, walletTrackerAdd, walletTrackerRemove, walletTrackerTrades, walletTrackerSummary, alphaLeaderboard, alphaWallet, alphaLinked, tokenCapTable, tokenBuyerQuality, tokenRisk, tokenCandles, 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, walletTrades, me, tokensList } from "./tools/index.js";
17
+ import { tokenFlowAction } from "./actions/tokenFlow.js";
18
+ import { kolFeed, kolCoordination, kolLeaderboard, deployerAlerts, kolPnl, kolTrendingTokens, kolTokenEntryOrder, kolCompare, kolAlertsRecent, createWebhook, listWebhooks, deleteWebhook, testWebhook, getStreamToken, walletTrackerWatchlist, walletTrackerAdd, walletTrackerRemove, walletTrackerTrades, walletTrackerSummary, alphaLeaderboard, alphaWallet, alphaLinked, tokenCapTable, tokenBuyerQuality, tokenRisk, tokenCandles, tokenFlow, 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, walletTrades, me, tokensList, almostBonded } from "./tools/index.js";
17
19
  import { walletStatsAction, walletPnlAction, walletPositionsAction, walletTradesAction } from "./actions/wallet.js";
18
20
  declare const MadeOnSolPlugin: {
19
21
  name: string;
@@ -44,6 +46,7 @@ declare const MadeOnSolPlugin: {
44
46
  tokenBuyerQuality: typeof tokenBuyerQuality;
45
47
  tokenRisk: typeof tokenRisk;
46
48
  tokenCandles: typeof tokenCandles;
49
+ tokenFlow: typeof tokenFlow;
47
50
  copyTradeList: typeof copyTradeList;
48
51
  copyTradeCreate: typeof copyTradeCreate;
49
52
  copyTradeGet: typeof copyTradeGet;
@@ -73,6 +76,7 @@ declare const MadeOnSolPlugin: {
73
76
  peakHistory: typeof peakHistory;
74
77
  me: typeof me;
75
78
  tokensList: typeof tokensList;
79
+ almostBonded: typeof almostBonded;
76
80
  walletStats: typeof walletStats;
77
81
  walletPnl: typeof walletPnl;
78
82
  walletPositions: typeof walletPositions;
@@ -137,11 +141,11 @@ declare const MadeOnSolPlugin: {
137
141
  min_kols: import("zod").ZodDefault<import("zod").ZodNumber>;
138
142
  limit: import("zod").ZodDefault<import("zod").ZodNumber>;
139
143
  }, "strip", import("zod").ZodTypeAny, {
140
- period: "24h" | "1h" | "6h" | "7d";
144
+ period: "1h" | "24h" | "6h" | "7d";
141
145
  min_kols: number;
142
146
  limit: number;
143
147
  }, {
144
- period?: "24h" | "1h" | "6h" | "7d" | undefined;
148
+ period?: "1h" | "24h" | "6h" | "7d" | undefined;
145
149
  min_kols?: number | undefined;
146
150
  limit?: number | undefined;
147
151
  }>;
@@ -550,13 +554,13 @@ declare const MadeOnSolPlugin: {
550
554
  limit: import("zod").ZodDefault<import("zod").ZodNumber>;
551
555
  }, "strip", import("zod").ZodTypeAny, {
552
556
  limit: number;
553
- window: "24h" | "1h" | "6h" | "5m" | "15m";
557
+ window: "1h" | "24h" | "6h" | "5m" | "15m";
554
558
  types?: ("consensus_cluster" | "fresh_token_kol_buy" | "heating_up")[] | undefined;
555
559
  min_severity?: "high" | "medium" | "low" | undefined;
556
560
  }, {
557
561
  limit?: number | undefined;
558
562
  types?: ("consensus_cluster" | "fresh_token_kol_buy" | "heating_up")[] | undefined;
559
- window?: "24h" | "1h" | "6h" | "5m" | "15m" | undefined;
563
+ window?: "1h" | "24h" | "6h" | "5m" | "15m" | undefined;
560
564
  min_severity?: "high" | "medium" | "low" | undefined;
561
565
  }>;
562
566
  handler: (agent: unknown, input: {
@@ -707,12 +711,12 @@ declare const MadeOnSolPlugin: {
707
711
  min_liq_mc_ratio: import("zod").ZodOptional<import("zod").ZodNumber>;
708
712
  max_liq_mc_ratio: import("zod").ZodOptional<import("zod").ZodNumber>;
709
713
  deployer_tier: import("zod").ZodOptional<import("zod").ZodEnum<["elite", "good", "moderate", "rising", "cold", "unranked"]>>;
710
- sort: import("zod").ZodOptional<import("zod").ZodEnum<["mc_desc", "mc_asc", "last_trade_desc", "liquidity_desc", "cumulative_volume_desc"]>>;
714
+ sort: import("zod").ZodOptional<import("zod").ZodEnum<["mc_desc", "mc_asc", "last_trade_desc", "liquidity_desc", "cumulative_volume_desc", "mc_change_5m_desc", "mc_change_1h_desc", "volume_1h_desc", "trending"]>>;
711
715
  limit: import("zod").ZodDefault<import("zod").ZodNumber>;
712
716
  offset: import("zod").ZodOptional<import("zod").ZodNumber>;
713
717
  }, "strip", import("zod").ZodTypeAny, {
714
718
  limit: number;
715
- sort?: "mc_desc" | "mc_asc" | "last_trade_desc" | "liquidity_desc" | "cumulative_volume_desc" | undefined;
719
+ sort?: "mc_desc" | "mc_asc" | "last_trade_desc" | "liquidity_desc" | "cumulative_volume_desc" | "mc_change_5m_desc" | "mc_change_1h_desc" | "volume_1h_desc" | "trending" | undefined;
716
720
  min_mc?: number | undefined;
717
721
  max_mc?: number | undefined;
718
722
  min_liq?: number | undefined;
@@ -730,7 +734,7 @@ declare const MadeOnSolPlugin: {
730
734
  deployer_tier?: "elite" | "good" | "moderate" | "rising" | "cold" | "unranked" | undefined;
731
735
  offset?: number | undefined;
732
736
  }, {
733
- sort?: "mc_desc" | "mc_asc" | "last_trade_desc" | "liquidity_desc" | "cumulative_volume_desc" | undefined;
737
+ sort?: "mc_desc" | "mc_asc" | "last_trade_desc" | "liquidity_desc" | "cumulative_volume_desc" | "mc_change_5m_desc" | "mc_change_1h_desc" | "volume_1h_desc" | "trending" | undefined;
734
738
  limit?: number | undefined;
735
739
  min_mc?: number | undefined;
736
740
  max_mc?: number | undefined;
@@ -765,7 +769,7 @@ declare const MadeOnSolPlugin: {
765
769
  min_liq_mc_ratio?: number;
766
770
  max_liq_mc_ratio?: number;
767
771
  deployer_tier?: "elite" | "good" | "moderate" | "rising" | "cold" | "unranked";
768
- sort?: "mc_desc" | "mc_asc" | "last_trade_desc" | "liquidity_desc" | "cumulative_volume_desc";
772
+ sort?: "mc_desc" | "mc_asc" | "last_trade_desc" | "liquidity_desc" | "cumulative_volume_desc" | "mc_change_5m_desc" | "mc_change_1h_desc" | "volume_1h_desc" | "trending";
769
773
  limit?: number;
770
774
  offset?: number;
771
775
  }) => Promise<{
@@ -777,6 +781,73 @@ declare const MadeOnSolPlugin: {
777
781
  message: string;
778
782
  result?: undefined;
779
783
  }>;
784
+ } | {
785
+ name: string;
786
+ similes: string[];
787
+ description: string;
788
+ examples: {
789
+ input: {
790
+ min_progress: number;
791
+ min_velocity_pct_per_min: number;
792
+ deployer_tier: string;
793
+ sort: string;
794
+ limit: number;
795
+ };
796
+ output: {
797
+ status: string;
798
+ };
799
+ explanation: string;
800
+ }[][];
801
+ schema: import("zod").ZodObject<{
802
+ min_progress: import("zod").ZodOptional<import("zod").ZodNumber>;
803
+ max_progress: import("zod").ZodOptional<import("zod").ZodNumber>;
804
+ min_velocity_pct_per_min: import("zod").ZodOptional<import("zod").ZodNumber>;
805
+ max_age_minutes: import("zod").ZodOptional<import("zod").ZodNumber>;
806
+ deployer_tier: import("zod").ZodOptional<import("zod").ZodEnum<["elite", "good", "moderate", "rising", "cold", "unranked"]>>;
807
+ authority_revoked: import("zod").ZodOptional<import("zod").ZodBoolean>;
808
+ min_liq: import("zod").ZodOptional<import("zod").ZodNumber>;
809
+ sort: import("zod").ZodOptional<import("zod").ZodEnum<["velocity_desc", "progress_desc", "eta_asc"]>>;
810
+ limit: import("zod").ZodDefault<import("zod").ZodNumber>;
811
+ }, "strip", import("zod").ZodTypeAny, {
812
+ limit: number;
813
+ sort?: "velocity_desc" | "progress_desc" | "eta_asc" | undefined;
814
+ min_liq?: number | undefined;
815
+ authority_revoked?: boolean | undefined;
816
+ deployer_tier?: "elite" | "good" | "moderate" | "rising" | "cold" | "unranked" | undefined;
817
+ min_progress?: number | undefined;
818
+ max_progress?: number | undefined;
819
+ min_velocity_pct_per_min?: number | undefined;
820
+ max_age_minutes?: number | undefined;
821
+ }, {
822
+ sort?: "velocity_desc" | "progress_desc" | "eta_asc" | undefined;
823
+ limit?: number | undefined;
824
+ min_liq?: number | undefined;
825
+ authority_revoked?: boolean | undefined;
826
+ deployer_tier?: "elite" | "good" | "moderate" | "rising" | "cold" | "unranked" | undefined;
827
+ min_progress?: number | undefined;
828
+ max_progress?: number | undefined;
829
+ min_velocity_pct_per_min?: number | undefined;
830
+ max_age_minutes?: number | undefined;
831
+ }>;
832
+ handler: (agent: unknown, input: {
833
+ min_progress?: number;
834
+ max_progress?: number;
835
+ min_velocity_pct_per_min?: number;
836
+ max_age_minutes?: number;
837
+ deployer_tier?: "elite" | "good" | "moderate" | "rising" | "cold" | "unranked";
838
+ authority_revoked?: boolean;
839
+ min_liq?: number;
840
+ sort?: "velocity_desc" | "progress_desc" | "eta_asc";
841
+ limit?: number;
842
+ }) => Promise<{
843
+ status: string;
844
+ result: any;
845
+ message?: undefined;
846
+ } | {
847
+ status: string;
848
+ message: string;
849
+ result?: undefined;
850
+ }>;
780
851
  } | {
781
852
  name: string;
782
853
  similes: string[];
@@ -856,6 +927,42 @@ declare const MadeOnSolPlugin: {
856
927
  message: string;
857
928
  result?: undefined;
858
929
  }>;
930
+ } | {
931
+ name: string;
932
+ similes: string[];
933
+ description: string;
934
+ examples: {
935
+ input: {
936
+ mint: string;
937
+ window: string;
938
+ };
939
+ output: {
940
+ status: string;
941
+ };
942
+ explanation: string;
943
+ }[][];
944
+ schema: import("zod").ZodObject<{
945
+ mint: import("zod").ZodString;
946
+ window: import("zod").ZodOptional<import("zod").ZodEnum<["1h", "24h"]>>;
947
+ }, "strip", import("zod").ZodTypeAny, {
948
+ mint: string;
949
+ window?: "1h" | "24h" | undefined;
950
+ }, {
951
+ mint: string;
952
+ window?: "1h" | "24h" | undefined;
953
+ }>;
954
+ handler: (agent: unknown, input: {
955
+ mint: string;
956
+ window?: "1h" | "24h";
957
+ }) => Promise<{
958
+ status: string;
959
+ result: any;
960
+ message?: undefined;
961
+ } | {
962
+ status: string;
963
+ message: string;
964
+ result?: undefined;
965
+ }>;
859
966
  } | {
860
967
  name: string;
861
968
  similes: string[];
@@ -948,8 +1055,8 @@ declare const MadeOnSolPlugin: {
948
1055
  initialize(_agent: unknown): void;
949
1056
  };
950
1057
  export default MadeOnSolPlugin;
951
- export { kolFeed, kolCoordination, kolLeaderboard, deployerAlerts, kolPnl, kolTrendingTokens, kolTokenEntryOrder, kolCompare, kolAlertsRecent, createWebhook, listWebhooks, deleteWebhook, testWebhook, getStreamToken, walletTrackerWatchlist, walletTrackerAdd, walletTrackerRemove, walletTrackerTrades, walletTrackerSummary, alphaLeaderboard, alphaWallet, alphaLinked, tokenCapTable, tokenBuyerQuality, tokenRisk, tokenCandles, 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, walletTrades, me, tokensList, };
1058
+ export { kolFeed, kolCoordination, kolLeaderboard, deployerAlerts, kolPnl, kolTrendingTokens, kolTokenEntryOrder, kolCompare, kolAlertsRecent, createWebhook, listWebhooks, deleteWebhook, testWebhook, getStreamToken, walletTrackerWatchlist, walletTrackerAdd, walletTrackerRemove, walletTrackerTrades, walletTrackerSummary, alphaLeaderboard, alphaWallet, alphaLinked, tokenCapTable, tokenBuyerQuality, tokenRisk, tokenCandles, tokenFlow, 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, walletTrades, me, tokensList, almostBonded, };
952
1059
  export { kolFeedAction, kolCoordinationAction, kolLeaderboardAction, deployerAlertsAction, kolPnlAction, kolTrendingTokensAction, kolTokenEntryOrderAction, kolCompareAction, kolAlertsRecentAction, kolFirstTouchesAction };
953
1060
  export { walletTrackerWatchlistAction, walletTrackerAddAction, walletTrackerRemoveAction, walletTrackerTradesAction, walletTrackerSummaryAction };
954
1061
  export { walletStatsAction, walletPnlAction, walletPositionsAction, walletTradesAction };
955
- export { meAction, tokensListAction, tokenRiskAction, tokenCandlesAction };
1062
+ export { meAction, tokensListAction, almostBondedAction, tokenRiskAction, tokenCandlesAction, tokenFlowAction };
package/dist/index.js CHANGED
@@ -11,9 +11,11 @@ import { kolAlertsRecentAction } from "./actions/kolAlertsRecent.js";
11
11
  import { kolFirstTouchesAction } from "./actions/kolFirstTouches.js";
12
12
  import { meAction } from "./actions/me.js";
13
13
  import { tokensListAction } from "./actions/tokensList.js";
14
+ import { almostBondedAction } from "./actions/almostBonded.js";
14
15
  import { tokenRiskAction } from "./actions/tokenRisk.js";
15
16
  import { tokenCandlesAction } from "./actions/tokenCandles.js";
16
- import { kolFeed, kolCoordination, kolLeaderboard, deployerAlerts, kolPnl, kolTrendingTokens, kolTokenEntryOrder, kolCompare, kolAlertsRecent, createWebhook, listWebhooks, deleteWebhook, testWebhook, getStreamToken, walletTrackerWatchlist, walletTrackerAdd, walletTrackerRemove, walletTrackerTrades, walletTrackerSummary, alphaLeaderboard, alphaWallet, alphaLinked, tokenCapTable, tokenBuyerQuality, tokenRisk, tokenCandles, 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, walletTrades, me, tokensList, } from "./tools/index.js";
17
+ import { tokenFlowAction } from "./actions/tokenFlow.js";
18
+ import { kolFeed, kolCoordination, kolLeaderboard, deployerAlerts, kolPnl, kolTrendingTokens, kolTokenEntryOrder, kolCompare, kolAlertsRecent, createWebhook, listWebhooks, deleteWebhook, testWebhook, getStreamToken, walletTrackerWatchlist, walletTrackerAdd, walletTrackerRemove, walletTrackerTrades, walletTrackerSummary, alphaLeaderboard, alphaWallet, alphaLinked, tokenCapTable, tokenBuyerQuality, tokenRisk, tokenCandles, tokenFlow, 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, walletTrades, me, tokensList, almostBonded, } from "./tools/index.js";
17
19
  import { walletStatsAction, walletPnlAction, walletPositionsAction, walletTradesAction } from "./actions/wallet.js";
18
20
  const MadeOnSolPlugin = {
19
21
  name: "madeonsol",
@@ -44,6 +46,7 @@ const MadeOnSolPlugin = {
44
46
  tokenBuyerQuality,
45
47
  tokenRisk,
46
48
  tokenCandles,
49
+ tokenFlow,
47
50
  copyTradeList,
48
51
  copyTradeCreate,
49
52
  copyTradeGet,
@@ -73,6 +76,7 @@ const MadeOnSolPlugin = {
73
76
  peakHistory,
74
77
  me,
75
78
  tokensList,
79
+ almostBonded,
76
80
  walletStats,
77
81
  walletPnl,
78
82
  walletPositions,
@@ -96,8 +100,10 @@ const MadeOnSolPlugin = {
96
100
  walletTrackerSummaryAction,
97
101
  meAction,
98
102
  tokensListAction,
103
+ almostBondedAction,
99
104
  tokenRiskAction,
100
105
  tokenCandlesAction,
106
+ tokenFlowAction,
101
107
  walletStatsAction,
102
108
  walletPnlAction,
103
109
  walletPositionsAction,
@@ -108,8 +114,8 @@ const MadeOnSolPlugin = {
108
114
  },
109
115
  };
110
116
  export default MadeOnSolPlugin;
111
- export { kolFeed, kolCoordination, kolLeaderboard, deployerAlerts, kolPnl, kolTrendingTokens, kolTokenEntryOrder, kolCompare, kolAlertsRecent, createWebhook, listWebhooks, deleteWebhook, testWebhook, getStreamToken, walletTrackerWatchlist, walletTrackerAdd, walletTrackerRemove, walletTrackerTrades, walletTrackerSummary, alphaLeaderboard, alphaWallet, alphaLinked, tokenCapTable, tokenBuyerQuality, tokenRisk, tokenCandles, 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, walletTrades, me, tokensList, };
117
+ export { kolFeed, kolCoordination, kolLeaderboard, deployerAlerts, kolPnl, kolTrendingTokens, kolTokenEntryOrder, kolCompare, kolAlertsRecent, createWebhook, listWebhooks, deleteWebhook, testWebhook, getStreamToken, walletTrackerWatchlist, walletTrackerAdd, walletTrackerRemove, walletTrackerTrades, walletTrackerSummary, alphaLeaderboard, alphaWallet, alphaLinked, tokenCapTable, tokenBuyerQuality, tokenRisk, tokenCandles, tokenFlow, 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, walletTrades, me, tokensList, almostBonded, };
112
118
  export { kolFeedAction, kolCoordinationAction, kolLeaderboardAction, deployerAlertsAction, kolPnlAction, kolTrendingTokensAction, kolTokenEntryOrderAction, kolCompareAction, kolAlertsRecentAction, kolFirstTouchesAction };
113
119
  export { walletTrackerWatchlistAction, walletTrackerAddAction, walletTrackerRemoveAction, walletTrackerTradesAction, walletTrackerSummaryAction };
114
120
  export { walletStatsAction, walletPnlAction, walletPositionsAction, walletTradesAction };
115
- export { meAction, tokensListAction, tokenRiskAction, tokenCandlesAction };
121
+ export { meAction, tokensListAction, almostBondedAction, tokenRiskAction, tokenCandlesAction, tokenFlowAction };
@@ -179,6 +179,14 @@ export declare function tokenCandles(agent: Agent, params: {
179
179
  from?: string;
180
180
  to?: string;
181
181
  }): Promise<any>;
182
+ /**
183
+ * Net buy/sell flow for a token over a rolling window (`1h` default, or `24h`). Returns unique
184
+ * wallet/buyer/seller counts, buy/sell trade counts, buy/sell/net SOL, and trades-per-wallet. PRO/ULTRA only.
185
+ */
186
+ export declare function tokenFlow(agent: Agent, params: {
187
+ mint: string;
188
+ window?: "1h" | "24h";
189
+ }): Promise<any>;
182
190
  /** Bulk buyer-quality scoring for up to 50 mints. Shares the 5-min LRU cache with the single-mint endpoint. */
183
191
  export declare function tokenBuyerQualityBatch(agent: Agent, params: {
184
192
  mints: string[];
@@ -303,10 +311,28 @@ export declare function tokensList(agent: Agent, params?: {
303
311
  max_liq_mc_ratio?: number;
304
312
  /** v1.10 — filter by deployer tier. */
305
313
  deployer_tier?: "elite" | "good" | "moderate" | "rising" | "cold" | "unranked";
306
- sort?: "mc_desc" | "mc_asc" | "last_trade_desc" | "liquidity_desc" | "cumulative_volume_desc";
314
+ sort?: "mc_desc" | "mc_asc" | "last_trade_desc" | "liquidity_desc" | "cumulative_volume_desc" | "mc_change_5m_desc" | "mc_change_1h_desc" | "volume_1h_desc" | "trending";
307
315
  limit?: number;
308
316
  offset?: number;
309
317
  }): Promise<any>;
318
+ /**
319
+ * Pre-bond pump.fun tokens approaching graduation, ranked by velocity
320
+ * (Δprogress/min): "95% and accelerating" beats "92% stalled". Each token is
321
+ * enriched with its deployer's reputation tier. `progress_pct` is from on-chain
322
+ * real_token_reserves; `velocity_pct_per_min` is null until a 5m snapshot exists;
323
+ * `eta_minutes` is a linear projection. PRO/ULTRA only.
324
+ */
325
+ export declare function almostBonded(agent: Agent, params?: {
326
+ min_progress?: number;
327
+ max_progress?: number;
328
+ min_velocity_pct_per_min?: number;
329
+ max_age_minutes?: number;
330
+ deployer_tier?: "elite" | "good" | "moderate" | "rising" | "cold" | "unranked";
331
+ authority_revoked?: boolean;
332
+ min_liq?: number;
333
+ sort?: "velocity_desc" | "progress_desc" | "eta_asc";
334
+ limit?: number;
335
+ }): Promise<any>;
310
336
  export declare function copyTradeSignals(agent: Agent, params?: {
311
337
  rule_id?: string;
312
338
  limit?: number;
@@ -278,6 +278,14 @@ export async function tokenCandles(agent, params) {
278
278
  const query = qs.toString() ? `?${qs.toString()}` : "";
279
279
  return restQuery(agent, "GET", `/tokens/${encodeURIComponent(params.mint)}/candles${query}`);
280
280
  }
281
+ /**
282
+ * Net buy/sell flow for a token over a rolling window (`1h` default, or `24h`). Returns unique
283
+ * wallet/buyer/seller counts, buy/sell trade counts, buy/sell/net SOL, and trades-per-wallet. PRO/ULTRA only.
284
+ */
285
+ export async function tokenFlow(agent, params) {
286
+ const qs = params.window !== undefined ? `?window=${params.window}` : "";
287
+ return restQuery(agent, "GET", `/tokens/${encodeURIComponent(params.mint)}/flow${qs}`);
288
+ }
281
289
  /** Bulk buyer-quality scoring for up to 50 mints. Shares the 5-min LRU cache with the single-mint endpoint. */
282
290
  export async function tokenBuyerQualityBatch(agent, params) {
283
291
  return restQuery(agent, "POST", "/tokens/batch/buyer-quality", { mints: params.mints });
@@ -371,6 +379,22 @@ export async function tokensList(agent, params = {}) {
371
379
  const query = qs.toString() ? `?${qs.toString()}` : "";
372
380
  return restQuery(agent, "GET", `/tokens${query}`);
373
381
  }
382
+ /**
383
+ * Pre-bond pump.fun tokens approaching graduation, ranked by velocity
384
+ * (Δprogress/min): "95% and accelerating" beats "92% stalled". Each token is
385
+ * enriched with its deployer's reputation tier. `progress_pct` is from on-chain
386
+ * real_token_reserves; `velocity_pct_per_min` is null until a 5m snapshot exists;
387
+ * `eta_minutes` is a linear projection. PRO/ULTRA only.
388
+ */
389
+ export async function almostBonded(agent, params = {}) {
390
+ const qs = new URLSearchParams();
391
+ for (const [k, v] of Object.entries(params)) {
392
+ if (v !== undefined)
393
+ qs.set(k, String(v));
394
+ }
395
+ const query = qs.toString() ? `?${qs.toString()}` : "";
396
+ return restQuery(agent, "GET", `/tokens/almost-bonded${query}`);
397
+ }
374
398
  export async function copyTradeSignals(agent, params = {}) {
375
399
  const qs = new URLSearchParams();
376
400
  for (const [k, v] of Object.entries(params)) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "solana-agent-kit-plugin-madeonsol",
3
- "version": "1.12.1",
3
+ "version": "1.14.0",
4
4
  "description": "Solana Agent Kit plugin for MadeOnSol — KOL intelligence and deployer analytics via x402 micropayments",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",