solana-agent-kit-plugin-madeonsol 1.13.0 → 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,8 @@
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
+ >
14
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).
15
17
  >
16
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.
@@ -103,7 +105,8 @@ const events = await agent.methods.walletTrackerTrades(agent, { limit: 50 });
103
105
  | `MADEONSOL_WALLET_TRACKER_TRADES_ACTION` | "wallet tracker trades", "watchlist activity" |
104
106
  | `MADEONSOL_WALLET_TRACKER_SUMMARY_ACTION` | "wallet tracker summary", "tracked wallet stats" |
105
107
  | `MADEONSOL_ME_ACTION` | "my api account", "api quota", "remaining requests" — tier + quota introspection (new in 1.7) |
106
- | `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+) |
107
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+) |
108
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+) |
109
112
  | `MADEONSOL_WALLET_POSITIONS_ACTION` | **New 1.8** · "wallet positions", "wallet bags", "open positions" — open lots with live unrealized SOL (PRO+) |
@@ -132,6 +135,7 @@ await agent.methods.tokenBuyerQuality(agent, { mint: "MINT" }); // 0–1
132
135
  await agent.methods.tokenRisk(agent, { mint: "MINT" }); // PRO+ 0–100 rug-risk/safety score + band + factors
133
136
  await agent.methods.tokenCandles(agent, { mint: "MINT", tf: "1h" }); // PRO+ OHLCV candles (1m–1d); ULTRA=+net flow, liquidity, full history
134
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
135
139
  ```
136
140
 
137
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).
@@ -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
+ };
@@ -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,10 +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
17
  import { tokenFlowAction } from "./actions/tokenFlow.js";
17
- 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 } from "./tools/index.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";
18
19
  import { walletStatsAction, walletPnlAction, walletPositionsAction, walletTradesAction } from "./actions/wallet.js";
19
20
  declare const MadeOnSolPlugin: {
20
21
  name: string;
@@ -75,6 +76,7 @@ declare const MadeOnSolPlugin: {
75
76
  peakHistory: typeof peakHistory;
76
77
  me: typeof me;
77
78
  tokensList: typeof tokensList;
79
+ almostBonded: typeof almostBonded;
78
80
  walletStats: typeof walletStats;
79
81
  walletPnl: typeof walletPnl;
80
82
  walletPositions: typeof walletPositions;
@@ -709,12 +711,12 @@ declare const MadeOnSolPlugin: {
709
711
  min_liq_mc_ratio: import("zod").ZodOptional<import("zod").ZodNumber>;
710
712
  max_liq_mc_ratio: import("zod").ZodOptional<import("zod").ZodNumber>;
711
713
  deployer_tier: import("zod").ZodOptional<import("zod").ZodEnum<["elite", "good", "moderate", "rising", "cold", "unranked"]>>;
712
- 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"]>>;
713
715
  limit: import("zod").ZodDefault<import("zod").ZodNumber>;
714
716
  offset: import("zod").ZodOptional<import("zod").ZodNumber>;
715
717
  }, "strip", import("zod").ZodTypeAny, {
716
718
  limit: number;
717
- 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;
718
720
  min_mc?: number | undefined;
719
721
  max_mc?: number | undefined;
720
722
  min_liq?: number | undefined;
@@ -732,7 +734,7 @@ declare const MadeOnSolPlugin: {
732
734
  deployer_tier?: "elite" | "good" | "moderate" | "rising" | "cold" | "unranked" | undefined;
733
735
  offset?: number | undefined;
734
736
  }, {
735
- 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;
736
738
  limit?: number | undefined;
737
739
  min_mc?: number | undefined;
738
740
  max_mc?: number | undefined;
@@ -767,7 +769,7 @@ declare const MadeOnSolPlugin: {
767
769
  min_liq_mc_ratio?: number;
768
770
  max_liq_mc_ratio?: number;
769
771
  deployer_tier?: "elite" | "good" | "moderate" | "rising" | "cold" | "unranked";
770
- 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";
771
773
  limit?: number;
772
774
  offset?: number;
773
775
  }) => Promise<{
@@ -779,6 +781,73 @@ declare const MadeOnSolPlugin: {
779
781
  message: string;
780
782
  result?: undefined;
781
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
+ }>;
782
851
  } | {
783
852
  name: string;
784
853
  similes: string[];
@@ -986,8 +1055,8 @@ declare const MadeOnSolPlugin: {
986
1055
  initialize(_agent: unknown): void;
987
1056
  };
988
1057
  export default MadeOnSolPlugin;
989
- 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, };
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, };
990
1059
  export { kolFeedAction, kolCoordinationAction, kolLeaderboardAction, deployerAlertsAction, kolPnlAction, kolTrendingTokensAction, kolTokenEntryOrderAction, kolCompareAction, kolAlertsRecentAction, kolFirstTouchesAction };
991
1060
  export { walletTrackerWatchlistAction, walletTrackerAddAction, walletTrackerRemoveAction, walletTrackerTradesAction, walletTrackerSummaryAction };
992
1061
  export { walletStatsAction, walletPnlAction, walletPositionsAction, walletTradesAction };
993
- export { meAction, tokensListAction, tokenRiskAction, tokenCandlesAction, tokenFlowAction };
1062
+ export { meAction, tokensListAction, almostBondedAction, tokenRiskAction, tokenCandlesAction, tokenFlowAction };
package/dist/index.js CHANGED
@@ -11,10 +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
17
  import { tokenFlowAction } from "./actions/tokenFlow.js";
17
- 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, } from "./tools/index.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";
18
19
  import { walletStatsAction, walletPnlAction, walletPositionsAction, walletTradesAction } from "./actions/wallet.js";
19
20
  const MadeOnSolPlugin = {
20
21
  name: "madeonsol",
@@ -75,6 +76,7 @@ const MadeOnSolPlugin = {
75
76
  peakHistory,
76
77
  me,
77
78
  tokensList,
79
+ almostBonded,
78
80
  walletStats,
79
81
  walletPnl,
80
82
  walletPositions,
@@ -98,6 +100,7 @@ const MadeOnSolPlugin = {
98
100
  walletTrackerSummaryAction,
99
101
  meAction,
100
102
  tokensListAction,
103
+ almostBondedAction,
101
104
  tokenRiskAction,
102
105
  tokenCandlesAction,
103
106
  tokenFlowAction,
@@ -111,8 +114,8 @@ const MadeOnSolPlugin = {
111
114
  },
112
115
  };
113
116
  export default MadeOnSolPlugin;
114
- 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, };
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, };
115
118
  export { kolFeedAction, kolCoordinationAction, kolLeaderboardAction, deployerAlertsAction, kolPnlAction, kolTrendingTokensAction, kolTokenEntryOrderAction, kolCompareAction, kolAlertsRecentAction, kolFirstTouchesAction };
116
119
  export { walletTrackerWatchlistAction, walletTrackerAddAction, walletTrackerRemoveAction, walletTrackerTradesAction, walletTrackerSummaryAction };
117
120
  export { walletStatsAction, walletPnlAction, walletPositionsAction, walletTradesAction };
118
- export { meAction, tokensListAction, tokenRiskAction, tokenCandlesAction, tokenFlowAction };
121
+ export { meAction, tokensListAction, almostBondedAction, tokenRiskAction, tokenCandlesAction, tokenFlowAction };
@@ -311,10 +311,28 @@ export declare function tokensList(agent: Agent, params?: {
311
311
  max_liq_mc_ratio?: number;
312
312
  /** v1.10 — filter by deployer tier. */
313
313
  deployer_tier?: "elite" | "good" | "moderate" | "rising" | "cold" | "unranked";
314
- 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";
315
315
  limit?: number;
316
316
  offset?: number;
317
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>;
318
336
  export declare function copyTradeSignals(agent: Agent, params?: {
319
337
  rule_id?: string;
320
338
  limit?: number;
@@ -379,6 +379,22 @@ export async function tokensList(agent, params = {}) {
379
379
  const query = qs.toString() ? `?${qs.toString()}` : "";
380
380
  return restQuery(agent, "GET", `/tokens${query}`);
381
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
+ }
382
398
  export async function copyTradeSignals(agent, params = {}) {
383
399
  const qs = new URLSearchParams();
384
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.13.0",
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",