solana-agent-kit-plugin-madeonsol 1.16.2 → 1.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -1
- package/dist/actions/tokenTrades.d.ts +59 -0
- package/dist/actions/tokenTrades.js +34 -0
- package/dist/actions/wallet.d.ts +42 -0
- package/dist/actions/wallet.js +36 -1
- package/dist/actions/walletClassify.d.ts +33 -0
- package/dist/actions/walletClassify.js +28 -0
- package/dist/index.d.ts +108 -5
- package/dist/index.js +13 -5
- package/dist/tools/index.d.ts +41 -0
- package/dist/tools/index.js +53 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -9,8 +9,12 @@
|
|
|
9
9
|
|
|
10
10
|
[Solana Agent Kit](https://github.com/sendaifun/solana-agent-kit) plugin for [MadeOnSol](https://madeonsol.com) — Solana KOL intelligence, deployer analytics, bundle-cohort held-% signals, and wallet tracking.
|
|
11
11
|
|
|
12
|
-
> Real-time Solana trading intelligence: track 1,069 KOL wallets with <3s latency, score 23,000+ Pump.fun deployers, surface deshred deploy signals ~500ms before on-chain confirmation, detect multi-KOL coordination, and stream every DEX trade. Free tier: 200 requests/day, every endpoint — no signup payment. Get a key at [madeonsol.com/pricing](https://madeonsol.com/pricing).
|
|
12
|
+
> Real-time Solana trading intelligence: track 1,069 KOL wallets with <3s latency, score 23,000+ Pump.fun deployers, verify any wallet's CURRENT on-chain holdings straight from its token accounts, surface deshred deploy signals ~500ms before on-chain confirmation, detect multi-KOL coordination, and stream every DEX trade. Free tier: 200 requests/day, every endpoint — no signup payment. Get a key at [madeonsol.com/pricing](https://madeonsol.com/pricing).
|
|
13
13
|
|
|
14
|
+
> **New in 1.18.0** — **Wallet batch classify + token trade tape.** New tool `walletClassify()` + action `MADEONSOL_WALLET_CLASSIFY_ACTION` — bulk reputation flags for 1–100 wallets in one call (`POST /wallet/batch/classify`): per wallet `is_sniper`, `is_bundler` (lifetime flag), `is_dumper` (rolling 42-day window), `is_kol` + `kol_name`, `bot_confidence` (string enum `"none"`/`"low"`/`"medium"`/`"high"` | null — never a number), and `dump_cluster` cohort stats (`dump_cohorts`, `runner_cohorts`, `total_cohorts`, `as_of`). Flags are pump.fun-pipeline scoped — `false` = not observed, NOT verified clean. New tool `tokenTrades()` + action `MADEONSOL_TOKEN_TRADES_ACTION` — the mint-scoped trade tape (`GET /tokens/{mint}/trades`): cursor-paginated raw trades with `price_sol`/`price_usd`, `early_buyer_rank`, and `slot`, filterable by `action`/`wallet`/`since`/`until`; the default window is the **full history** (tape starts 2026-04-12; the response `coverage` block carries `history_start` + `scope`). `walletStats` `flags` gain the same `is_sniper`/`is_bundler`/`is_dumper` + `dump_cluster` fields, and `flags.bot_confidence` is confirmed as a string enum (the old numeric reading never matched a real value — the API returned `null` unconditionally due to a bug, now fixed server-side). Both PRO/ULTRA only.
|
|
15
|
+
>
|
|
16
|
+
> **New in 1.17.0** — **Verified on-chain wallet holdings.** New tool `walletHoldings()` + action `MADEONSOL_WALLET_HOLDINGS_ACTION` — the wallet's CURRENT holdings read straight from chain: its actual SPL + Token-2022 token accounts and SOL balance, each enriched with `price_usd` / `value_usd` / `market_cap_usd` / `name` / `symbol` / `is_bonded`, plus `transfer_delta` (on-chain amount − trade-derived net position — exposes non-swap flows like airdrops, insider funding, wallet-hopping). Distinct from `walletPositions()` (trade-derived FIFO): this is what the wallet *actually* holds right now. Params: `limit` (1–500, default 200), `min_value_usd` (default 0). Returns `{ address, sol_balance, holdings[], summary, verified_at, trade_window_days, cache_hit, ttl_seconds }`. ULTRA only.
|
|
17
|
+
>
|
|
14
18
|
> **New in 1.16.2** — **Per-venue liquidity map + deployer reputation history.** New tool `tokenPools()` + action `MADEONSOL_TOKEN_POOLS_ACTION` — every DEX pool a token trades in (live vs parked), with fragmentation and top-pool share. Returns a `pools[]` list (`pool_address`, `dex`, `quote_mint`, `liquidity_usd`, `last_price_sol`, `last_swap_at`, `amm_id`, `is_active`) and a `summary` (`pool_count`, `active_pool_count`, `dex_count`, `dexes`, `total_liquidity_usd`, `primary_pool`, `primary_dex`, `top_pool_share_pct`). New tool `deployerHistory()` + action `MADEONSOL_DEPLOYER_HISTORY_ACTION` — a deployer's daily reputation time-series to backtest "was this deployer elite when it launched token X?" without look-ahead bias. Returns `{ is_deployer, wallet, snapshots[] }` where each snapshot has `date`, `tier`, `is_tracked`, `total_deployed`, `total_bonded`, `bonding_rate`, `recent_bond_rate`, `avg_peak_mc`, `best_token_peak_mc` (`limit` = 1–365 days, default 90). Both PRO/ULTRA only.
|
|
15
19
|
>
|
|
16
20
|
> **New in 1.16.0** — **Bundle-cohort holdings.** New tool `tokenBundle()` + action `MADEONSOL_TOKEN_BUNDLE_ACTION` — which same-slot "bundle" wallets (≥3 buying in one slot) bought a token and how much of supply they STILL hold, from confirmed on-chain data. Returns a `bundle` summary (`wallet_count`, `bundle_kind` [`atomic_tx`/`same_slot`/`none`], `held_ratio`, **`held_pct_of_supply`** [the headline rug/insider signal], `fully_exited`, `buy_volume`, `tokens_held`) plus a `wallets[]` list (`rank`, `wallet`, `held_ratio`, `has_sold`, `atomic`, `is_kol`). BASIC get the `bundle` block only (`wallets: []`); PRO gets top-10 flags-only; ULTRA adds full holdings + wallet identity (`kol_name`, `win_rate`, `bot_confidence`, `tokens_held`). PRO/ULTRA only.
|
|
@@ -114,6 +118,7 @@ const events = await agent.methods.walletTrackerTrades(agent, { limit: 50 });
|
|
|
114
118
|
| `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+) |
|
|
115
119
|
| `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+) |
|
|
116
120
|
| `MADEONSOL_WALLET_POSITIONS_ACTION` | **New 1.8** · "wallet positions", "wallet bags", "open positions" — open lots with live unrealized SOL (PRO+) |
|
|
121
|
+
| `MADEONSOL_WALLET_HOLDINGS_ACTION` | **New 1.17** · "wallet holdings", "current holdings", "what does wallet actually hold" — verified CURRENT on-chain holdings (real SPL + Token-2022 accounts + SOL) enriched with price/MC/name, plus `transfer_delta` vs trade-derived position (ULTRA only) |
|
|
117
122
|
| `MADEONSOL_WALLET_TRADES_ACTION` | **New 1.8** · "wallet trades", "wallet history" — cursor-paginated raw trades with filters (PRO+) |
|
|
118
123
|
| `MADEONSOL_TOKEN_FLOW_ACTION` | **New 1.13** · "token flow", "net flow", "buy/sell pressure" — net buy/sell flow over a 1h/24h window (PRO+) |
|
|
119
124
|
| `MADEONSOL_TOKEN_RISK_BATCH_ACTION` | **New 1.15** · "batch token risk", "bulk rug risk", "score many tokens" — rug-risk scoring for 1–50 mints in one call; untracked mints don't fail the batch (PRO+) |
|
|
@@ -121,6 +126,8 @@ const events = await agent.methods.walletTrackerTrades(agent, { limit: 50 });
|
|
|
121
126
|
| `MADEONSOL_STREAM_SESSION_KILL_ACTION` | **New 1.15** · "kill stream session", "evict session", "free a connection slot" — evict a live streaming session by id (PRO+) |
|
|
122
127
|
| `MADEONSOL_TOKEN_POOLS_ACTION` | **New 1.16.2** · "token pools", "liquidity map", "which dex pools", "pool fragmentation" — per-venue liquidity map (live vs parked pools) + top-pool share (PRO+) |
|
|
123
128
|
| `MADEONSOL_DEPLOYER_HISTORY_ACTION` | **New 1.16.2** · "deployer history", "deployer reputation over time", "was this deployer elite" — a deployer's daily reputation time-series, backtest without look-ahead bias (PRO+) |
|
|
129
|
+
| `MADEONSOL_TOKEN_TRADES_ACTION` | **New 1.18** · "token trades", "trade tape", "who bought this token" — cursor-paginated raw trade tape with price + early-buyer rank, full history (starts 2026-04-12, pump.fun-pipeline scoped) (PRO+) |
|
|
130
|
+
| `MADEONSOL_WALLET_CLASSIFY_ACTION` | **New 1.18** · "classify wallets", "check wallets for snipers", "are these wallets bots" — bulk reputation flags (sniper/bundler lifetime/dumper 42d/KOL/bot confidence/dump cluster) for 1–100 wallets; false = not observed, NOT verified clean (PRO+) |
|
|
124
131
|
|
|
125
132
|
## Additional methods (v1.0+)
|
|
126
133
|
|
|
@@ -147,6 +154,8 @@ await agent.methods.tokenBundle(agent, { mint: "MINT" }); // PRO+
|
|
|
147
154
|
await agent.methods.tokenPools(agent, { mint: "MINT" }); // PRO+ per-venue liquidity map: live vs parked pools, fragmentation, top-pool share
|
|
148
155
|
await agent.methods.tokenCandles(agent, { mint: "MINT", tf: "1h" }); // PRO+ OHLCV candles (1m–1d); ULTRA=+net flow, liquidity, full history
|
|
149
156
|
await agent.methods.tokenFlow(agent, { mint: "MINT", window: "24h" }); // PRO+ net buy/sell flow (1h/24h): unique wallets, buy/sell/net SOL, trades-per-wallet
|
|
157
|
+
await agent.methods.tokenTrades(agent, { mint: "MINT", action: "buy", limit: 100 }); // PRO+ mint-scoped trade tape (full history from 2026-04-12, pump.fun-pipeline scoped); cursor-paginated
|
|
158
|
+
await agent.methods.walletClassify(agent, { wallets: ["W1", "W2"] }); // PRO+ bulk reputation flags for 1–100 wallets: sniper/bundler(lifetime)/dumper(42d)/KOL/bot_confidence/dump_cluster
|
|
150
159
|
await agent.methods.almostBonded(agent, { min_progress: 90, sort: "eta_asc" }); // PRO+ pre-bond pump.fun tokens by velocity: progress, ETA, stalled, deployer tier
|
|
151
160
|
await agent.methods.deployerHistory(agent, { wallet: "WALLET", limit: 90 }); // PRO+ deployer daily reputation time-series (1–365d): tier, bonding_rate, peak MC — no look-ahead
|
|
152
161
|
```
|
|
@@ -310,6 +319,8 @@ console.log(lastRateLimit); // { limit: "10000", remaining: "9999", reset: "..."
|
|
|
310
319
|
|
|
311
320
|
Free tier returns the full REST response shape on every endpoint — real wallets, TX signatures, full precision. Paid tiers unlock webhooks, WebSockets, rule engines, and ULTRA-only data depth. Get a key at [madeonsol.com/pricing](https://madeonsol.com/pricing).
|
|
312
321
|
|
|
322
|
+
New customers get a 5-day free trial of Pro or Ultra when you pay by card — full access, nothing charged during the trial, cancel anytime. Start at https://madeonsol.com/pricing
|
|
323
|
+
|
|
313
324
|
## Also Available
|
|
314
325
|
|
|
315
326
|
| Platform | Package |
|
|
@@ -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
|
+
};
|
package/dist/actions/wallet.d.ts
CHANGED
|
@@ -95,6 +95,48 @@ export declare const walletPositionsAction: {
|
|
|
95
95
|
result?: undefined;
|
|
96
96
|
}>;
|
|
97
97
|
};
|
|
98
|
+
export declare const walletHoldingsAction: {
|
|
99
|
+
name: string;
|
|
100
|
+
similes: string[];
|
|
101
|
+
description: string;
|
|
102
|
+
examples: {
|
|
103
|
+
input: {
|
|
104
|
+
address: string;
|
|
105
|
+
limit: number;
|
|
106
|
+
min_value_usd: number;
|
|
107
|
+
};
|
|
108
|
+
output: {
|
|
109
|
+
status: string;
|
|
110
|
+
};
|
|
111
|
+
explanation: string;
|
|
112
|
+
}[][];
|
|
113
|
+
schema: z.ZodObject<{
|
|
114
|
+
address: z.ZodString;
|
|
115
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
116
|
+
min_value_usd: z.ZodOptional<z.ZodNumber>;
|
|
117
|
+
}, "strip", z.ZodTypeAny, {
|
|
118
|
+
address: string;
|
|
119
|
+
limit?: number | undefined;
|
|
120
|
+
min_value_usd?: number | undefined;
|
|
121
|
+
}, {
|
|
122
|
+
address: string;
|
|
123
|
+
limit?: number | undefined;
|
|
124
|
+
min_value_usd?: number | undefined;
|
|
125
|
+
}>;
|
|
126
|
+
handler: (agent: unknown, input: {
|
|
127
|
+
address: string;
|
|
128
|
+
limit?: number;
|
|
129
|
+
min_value_usd?: number;
|
|
130
|
+
}) => Promise<{
|
|
131
|
+
status: string;
|
|
132
|
+
result: any;
|
|
133
|
+
message?: undefined;
|
|
134
|
+
} | {
|
|
135
|
+
status: string;
|
|
136
|
+
message: string;
|
|
137
|
+
result?: undefined;
|
|
138
|
+
}>;
|
|
139
|
+
};
|
|
98
140
|
export declare const walletTradesAction: {
|
|
99
141
|
name: string;
|
|
100
142
|
similes: string[];
|
package/dist/actions/wallet.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import { walletStats, walletPnl, walletPositions, walletTrades } from "../tools/index.js";
|
|
2
|
+
import { walletStats, walletPnl, walletPositions, walletHoldings, walletTrades } from "../tools/index.js";
|
|
3
3
|
export const walletStatsAction = {
|
|
4
4
|
name: "MADEONSOL_WALLET_STATS_ACTION",
|
|
5
5
|
similes: [
|
|
@@ -100,6 +100,41 @@ export const walletPositionsAction = {
|
|
|
100
100
|
}
|
|
101
101
|
},
|
|
102
102
|
};
|
|
103
|
+
export const walletHoldingsAction = {
|
|
104
|
+
name: "MADEONSOL_WALLET_HOLDINGS_ACTION",
|
|
105
|
+
similes: [
|
|
106
|
+
"wallet holdings",
|
|
107
|
+
"current holdings",
|
|
108
|
+
"on-chain holdings",
|
|
109
|
+
"what does wallet actually hold",
|
|
110
|
+
"verified holdings",
|
|
111
|
+
"wallet token balances",
|
|
112
|
+
],
|
|
113
|
+
description: "Verified CURRENT on-chain holdings for any Solana wallet — the wallet's actual SPL + Token-2022 token accounts and SOL balance read straight from chain, enriched with price_usd, value_usd, market_cap_usd, name, symbol, is_bonded, plus transfer_delta (on-chain amount − trade-derived net position, which exposes non-swap flows: airdrops, insider funding, wallet-hopping). Distinct from MADEONSOL_WALLET_POSITIONS_ACTION (trade-derived FIFO) — this is what the wallet actually holds right now. Returns { address, sol_balance, holdings[], summary, verified_at, trade_window_days, cache_hit, ttl_seconds }. ULTRA only.",
|
|
114
|
+
examples: [
|
|
115
|
+
[
|
|
116
|
+
{
|
|
117
|
+
input: { address: "ASVzakePP6GNg9r95d4LPZHJDMXun6L6E4um4pu5ybJk", limit: 50, min_value_usd: 10 },
|
|
118
|
+
output: { status: "success" },
|
|
119
|
+
explanation: "List the wallet's verified on-chain holdings worth at least $10",
|
|
120
|
+
},
|
|
121
|
+
],
|
|
122
|
+
],
|
|
123
|
+
schema: z.object({
|
|
124
|
+
address: z.string().describe("Solana wallet address"),
|
|
125
|
+
limit: z.number().min(1).max(500).optional().describe("Max holdings to return (1-500, default 200)"),
|
|
126
|
+
min_value_usd: z.number().min(0).optional().describe("Only return holdings worth at least this many USD (default 0)"),
|
|
127
|
+
}),
|
|
128
|
+
handler: async (agent, input) => {
|
|
129
|
+
try {
|
|
130
|
+
const data = await walletHoldings(agent, input);
|
|
131
|
+
return { status: "success", result: data };
|
|
132
|
+
}
|
|
133
|
+
catch (err) {
|
|
134
|
+
return { status: "error", message: err.message };
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
};
|
|
103
138
|
export const walletTradesAction = {
|
|
104
139
|
name: "MADEONSOL_WALLET_TRADES_ACTION",
|
|
105
140
|
similes: [
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const walletClassifyAction: {
|
|
3
|
+
name: string;
|
|
4
|
+
similes: string[];
|
|
5
|
+
description: string;
|
|
6
|
+
examples: {
|
|
7
|
+
input: {
|
|
8
|
+
wallets: string[];
|
|
9
|
+
};
|
|
10
|
+
output: {
|
|
11
|
+
status: string;
|
|
12
|
+
};
|
|
13
|
+
explanation: string;
|
|
14
|
+
}[][];
|
|
15
|
+
schema: z.ZodObject<{
|
|
16
|
+
wallets: z.ZodArray<z.ZodString, "many">;
|
|
17
|
+
}, "strip", z.ZodTypeAny, {
|
|
18
|
+
wallets: string[];
|
|
19
|
+
}, {
|
|
20
|
+
wallets: string[];
|
|
21
|
+
}>;
|
|
22
|
+
handler: (agent: unknown, input: {
|
|
23
|
+
wallets: string[];
|
|
24
|
+
}) => Promise<{
|
|
25
|
+
status: string;
|
|
26
|
+
result: any;
|
|
27
|
+
message?: undefined;
|
|
28
|
+
} | {
|
|
29
|
+
status: string;
|
|
30
|
+
message: string;
|
|
31
|
+
result?: undefined;
|
|
32
|
+
}>;
|
|
33
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { walletClassify } from "../tools/index.js";
|
|
3
|
+
export const walletClassifyAction = {
|
|
4
|
+
name: "MADEONSOL_WALLET_CLASSIFY_ACTION",
|
|
5
|
+
similes: ["classify wallets", "batch wallet flags", "check wallets for snipers", "are these wallets bots", "wallet reputation batch", "screen wallet list"],
|
|
6
|
+
description: "Bulk wallet reputation flags for 1-100 Solana wallet addresses in one call. Per wallet: is_sniper, is_bundler (lifetime flag), is_dumper (rolling 42-day window), is_kol + kol_name, bot_confidence (\"none\"|\"low\"|\"medium\"|\"high\"|null), and dump_cluster cohort stats. Flags are pump.fun-pipeline scoped — false means \"not observed by our pipeline\", NOT verified clean. Returns { wallets, count, as_of }. PRO/ULTRA only — BASIC receives HTTP 403.",
|
|
7
|
+
examples: [
|
|
8
|
+
[
|
|
9
|
+
{
|
|
10
|
+
input: { wallets: ["ASVzakePP6GNg9r95d4LPZHJDMXun6L6E4um4pu5ybJk", "7dExkKzy4K3rC4YCVXQrPXtvmBBTnf3AjEHUUE4Kkzy8"] },
|
|
11
|
+
output: { status: "success" },
|
|
12
|
+
explanation: "Screen a list of wallets for sniper/bundler/dumper/KOL/bot reputation flags",
|
|
13
|
+
},
|
|
14
|
+
],
|
|
15
|
+
],
|
|
16
|
+
schema: z.object({
|
|
17
|
+
wallets: z.array(z.string()).min(1).max(100).describe("1-100 wallet addresses (base58)"),
|
|
18
|
+
}),
|
|
19
|
+
handler: async (agent, input) => {
|
|
20
|
+
try {
|
|
21
|
+
const data = await walletClassify(agent, input);
|
|
22
|
+
return { status: "success", result: data };
|
|
23
|
+
}
|
|
24
|
+
catch (err) {
|
|
25
|
+
return { status: "error", message: err.message };
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
};
|
package/dist/index.d.ts
CHANGED
|
@@ -19,9 +19,11 @@ import { deployerHistoryAction } from "./actions/deployerHistory.js";
|
|
|
19
19
|
import { tokenCandlesAction } from "./actions/tokenCandles.js";
|
|
20
20
|
import { tokenFlowAction } from "./actions/tokenFlow.js";
|
|
21
21
|
import { tokenRiskBatchAction } from "./actions/tokenRiskBatch.js";
|
|
22
|
+
import { tokenTradesAction } from "./actions/tokenTrades.js";
|
|
23
|
+
import { walletClassifyAction } from "./actions/walletClassify.js";
|
|
22
24
|
import { streamSessionsAction, streamSessionKillAction } from "./actions/streamSessions.js";
|
|
23
|
-
import { kolFeed, kolCoordination, kolLeaderboard, deployerAlerts, kolPnl, kolTrendingTokens, kolTokenEntryOrder, kolCompare, kolAlertsRecent, createWebhook, listWebhooks, deleteWebhook, testWebhook, getStreamToken, streamSessions, streamSessionKill, walletTrackerWatchlist, walletTrackerAdd, walletTrackerRemove, walletTrackerTrades, walletTrackerSummary, alphaLeaderboard, alphaWallet, alphaLinked, tokenCapTable, tokenBuyerQuality, tokenRisk, tokenRiskBatch, tokenBundle, tokenPools, tokenCandles, tokenFlow, deployerHistory, copyTradeList, copyTradeCreate, copyTradeGet, copyTradeUpdate, copyTradeDelete, copyTradeSignals, coordinationAlertsList, coordinationAlertsCreate, coordinationAlertsGet, coordinationAlertsUpdate, coordinationAlertsDelete, kolFirstTouches, firstTouchSubscriptionsList, firstTouchSubscriptionsCreate, firstTouchSubscriptionsGet, firstTouchSubscriptionsUpdate, firstTouchSubscriptionsDelete, priceAlertsList, priceAlertsCreate, priceAlertsGet, priceAlertsUpdate, priceAlertsDelete, priceAlertsEvents, scoutLeaderboard, coordinationHistory, kolConsensus, peakHistory, walletStats, walletPnl, walletPositions, walletTrades, me, tokensList, almostBonded } from "./tools/index.js";
|
|
24
|
-
import { walletStatsAction, walletPnlAction, walletPositionsAction, walletTradesAction } from "./actions/wallet.js";
|
|
25
|
+
import { kolFeed, kolCoordination, kolLeaderboard, deployerAlerts, kolPnl, kolTrendingTokens, kolTokenEntryOrder, kolCompare, kolAlertsRecent, createWebhook, listWebhooks, deleteWebhook, testWebhook, getStreamToken, streamSessions, streamSessionKill, walletTrackerWatchlist, walletTrackerAdd, walletTrackerRemove, walletTrackerTrades, walletTrackerSummary, alphaLeaderboard, alphaWallet, alphaLinked, tokenCapTable, tokenBuyerQuality, tokenRisk, tokenRiskBatch, tokenBundle, tokenPools, tokenCandles, tokenFlow, tokenTrades, deployerHistory, copyTradeList, copyTradeCreate, copyTradeGet, copyTradeUpdate, copyTradeDelete, copyTradeSignals, coordinationAlertsList, coordinationAlertsCreate, coordinationAlertsGet, coordinationAlertsUpdate, coordinationAlertsDelete, kolFirstTouches, firstTouchSubscriptionsList, firstTouchSubscriptionsCreate, firstTouchSubscriptionsGet, firstTouchSubscriptionsUpdate, firstTouchSubscriptionsDelete, priceAlertsList, priceAlertsCreate, priceAlertsGet, priceAlertsUpdate, priceAlertsDelete, priceAlertsEvents, scoutLeaderboard, coordinationHistory, kolConsensus, peakHistory, walletStats, walletPnl, walletPositions, walletHoldings, walletTrades, walletClassify, me, tokensList, almostBonded } from "./tools/index.js";
|
|
26
|
+
import { walletStatsAction, walletPnlAction, walletPositionsAction, walletHoldingsAction, walletTradesAction } from "./actions/wallet.js";
|
|
25
27
|
declare const MadeOnSolPlugin: {
|
|
26
28
|
name: string;
|
|
27
29
|
methods: {
|
|
@@ -57,6 +59,7 @@ declare const MadeOnSolPlugin: {
|
|
|
57
59
|
tokenPools: typeof tokenPools;
|
|
58
60
|
tokenCandles: typeof tokenCandles;
|
|
59
61
|
tokenFlow: typeof tokenFlow;
|
|
62
|
+
tokenTrades: typeof tokenTrades;
|
|
60
63
|
deployerHistory: typeof deployerHistory;
|
|
61
64
|
copyTradeList: typeof copyTradeList;
|
|
62
65
|
copyTradeCreate: typeof copyTradeCreate;
|
|
@@ -91,7 +94,9 @@ declare const MadeOnSolPlugin: {
|
|
|
91
94
|
walletStats: typeof walletStats;
|
|
92
95
|
walletPnl: typeof walletPnl;
|
|
93
96
|
walletPositions: typeof walletPositions;
|
|
97
|
+
walletHoldings: typeof walletHoldings;
|
|
94
98
|
walletTrades: typeof walletTrades;
|
|
99
|
+
walletClassify: typeof walletClassify;
|
|
95
100
|
};
|
|
96
101
|
actions: ({
|
|
97
102
|
name: string;
|
|
@@ -1041,6 +1046,63 @@ declare const MadeOnSolPlugin: {
|
|
|
1041
1046
|
message: string;
|
|
1042
1047
|
result?: undefined;
|
|
1043
1048
|
}>;
|
|
1049
|
+
} | {
|
|
1050
|
+
name: string;
|
|
1051
|
+
similes: string[];
|
|
1052
|
+
description: string;
|
|
1053
|
+
examples: {
|
|
1054
|
+
input: {
|
|
1055
|
+
mint: string;
|
|
1056
|
+
limit: number;
|
|
1057
|
+
action: string;
|
|
1058
|
+
};
|
|
1059
|
+
output: {
|
|
1060
|
+
status: string;
|
|
1061
|
+
};
|
|
1062
|
+
explanation: string;
|
|
1063
|
+
}[][];
|
|
1064
|
+
schema: import("zod").ZodObject<{
|
|
1065
|
+
mint: import("zod").ZodString;
|
|
1066
|
+
limit: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
1067
|
+
cursor: import("zod").ZodOptional<import("zod").ZodString>;
|
|
1068
|
+
action: import("zod").ZodOptional<import("zod").ZodEnum<["buy", "sell"]>>;
|
|
1069
|
+
wallet: import("zod").ZodOptional<import("zod").ZodString>;
|
|
1070
|
+
since: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
1071
|
+
until: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
1072
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
1073
|
+
mint: string;
|
|
1074
|
+
limit?: number | undefined;
|
|
1075
|
+
wallet?: string | undefined;
|
|
1076
|
+
action?: "buy" | "sell" | undefined;
|
|
1077
|
+
cursor?: string | undefined;
|
|
1078
|
+
since?: number | undefined;
|
|
1079
|
+
until?: number | undefined;
|
|
1080
|
+
}, {
|
|
1081
|
+
mint: string;
|
|
1082
|
+
limit?: number | undefined;
|
|
1083
|
+
wallet?: string | undefined;
|
|
1084
|
+
action?: "buy" | "sell" | undefined;
|
|
1085
|
+
cursor?: string | undefined;
|
|
1086
|
+
since?: number | undefined;
|
|
1087
|
+
until?: number | undefined;
|
|
1088
|
+
}>;
|
|
1089
|
+
handler: (agent: unknown, input: {
|
|
1090
|
+
mint: string;
|
|
1091
|
+
limit?: number;
|
|
1092
|
+
cursor?: string;
|
|
1093
|
+
action?: "buy" | "sell";
|
|
1094
|
+
wallet?: string;
|
|
1095
|
+
since?: number;
|
|
1096
|
+
until?: number;
|
|
1097
|
+
}) => Promise<{
|
|
1098
|
+
status: string;
|
|
1099
|
+
result: any;
|
|
1100
|
+
message?: undefined;
|
|
1101
|
+
} | {
|
|
1102
|
+
status: string;
|
|
1103
|
+
message: string;
|
|
1104
|
+
result?: undefined;
|
|
1105
|
+
}>;
|
|
1044
1106
|
} | {
|
|
1045
1107
|
name: string;
|
|
1046
1108
|
similes: string[];
|
|
@@ -1103,6 +1165,47 @@ declare const MadeOnSolPlugin: {
|
|
|
1103
1165
|
message: string;
|
|
1104
1166
|
result?: undefined;
|
|
1105
1167
|
}>;
|
|
1168
|
+
} | {
|
|
1169
|
+
name: string;
|
|
1170
|
+
similes: string[];
|
|
1171
|
+
description: string;
|
|
1172
|
+
examples: {
|
|
1173
|
+
input: {
|
|
1174
|
+
address: string;
|
|
1175
|
+
limit: number;
|
|
1176
|
+
min_value_usd: number;
|
|
1177
|
+
};
|
|
1178
|
+
output: {
|
|
1179
|
+
status: string;
|
|
1180
|
+
};
|
|
1181
|
+
explanation: string;
|
|
1182
|
+
}[][];
|
|
1183
|
+
schema: import("zod").ZodObject<{
|
|
1184
|
+
address: import("zod").ZodString;
|
|
1185
|
+
limit: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
1186
|
+
min_value_usd: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
1187
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
1188
|
+
address: string;
|
|
1189
|
+
limit?: number | undefined;
|
|
1190
|
+
min_value_usd?: number | undefined;
|
|
1191
|
+
}, {
|
|
1192
|
+
address: string;
|
|
1193
|
+
limit?: number | undefined;
|
|
1194
|
+
min_value_usd?: number | undefined;
|
|
1195
|
+
}>;
|
|
1196
|
+
handler: (agent: unknown, input: {
|
|
1197
|
+
address: string;
|
|
1198
|
+
limit?: number;
|
|
1199
|
+
min_value_usd?: number;
|
|
1200
|
+
}) => Promise<{
|
|
1201
|
+
status: string;
|
|
1202
|
+
result: any;
|
|
1203
|
+
message?: undefined;
|
|
1204
|
+
} | {
|
|
1205
|
+
status: string;
|
|
1206
|
+
message: string;
|
|
1207
|
+
result?: undefined;
|
|
1208
|
+
}>;
|
|
1106
1209
|
} | {
|
|
1107
1210
|
name: string;
|
|
1108
1211
|
similes: string[];
|
|
@@ -1164,8 +1267,8 @@ declare const MadeOnSolPlugin: {
|
|
|
1164
1267
|
initialize(_agent: unknown): void;
|
|
1165
1268
|
};
|
|
1166
1269
|
export default MadeOnSolPlugin;
|
|
1167
|
-
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, walletTrades, me, tokensList, almostBonded, };
|
|
1270
|
+
export { kolFeed, kolCoordination, kolLeaderboard, deployerAlerts, kolPnl, kolTrendingTokens, kolTokenEntryOrder, kolCompare, kolAlertsRecent, createWebhook, listWebhooks, deleteWebhook, testWebhook, getStreamToken, streamSessions, streamSessionKill, walletTrackerWatchlist, walletTrackerAdd, walletTrackerRemove, walletTrackerTrades, walletTrackerSummary, alphaLeaderboard, alphaWallet, alphaLinked, tokenCapTable, tokenBuyerQuality, tokenRisk, tokenRiskBatch, tokenBundle, tokenPools, tokenCandles, tokenFlow, tokenTrades, deployerHistory, copyTradeList, copyTradeCreate, copyTradeGet, copyTradeUpdate, copyTradeDelete, copyTradeSignals, coordinationAlertsList, coordinationAlertsCreate, coordinationAlertsGet, coordinationAlertsUpdate, coordinationAlertsDelete, kolFirstTouches, firstTouchSubscriptionsList, firstTouchSubscriptionsCreate, firstTouchSubscriptionsGet, firstTouchSubscriptionsUpdate, firstTouchSubscriptionsDelete, priceAlertsList, priceAlertsCreate, priceAlertsGet, priceAlertsUpdate, priceAlertsDelete, priceAlertsEvents, scoutLeaderboard, coordinationHistory, kolConsensus, peakHistory, walletStats, walletPnl, walletPositions, walletHoldings, walletTrades, walletClassify, me, tokensList, almostBonded, };
|
|
1168
1271
|
export { kolFeedAction, kolCoordinationAction, kolLeaderboardAction, deployerAlertsAction, kolPnlAction, kolTrendingTokensAction, kolTokenEntryOrderAction, kolCompareAction, kolAlertsRecentAction, kolFirstTouchesAction };
|
|
1169
1272
|
export { walletTrackerWatchlistAction, walletTrackerAddAction, walletTrackerRemoveAction, walletTrackerTradesAction, walletTrackerSummaryAction };
|
|
1170
|
-
export { walletStatsAction, walletPnlAction, walletPositionsAction, walletTradesAction };
|
|
1171
|
-
export { meAction, tokensListAction, almostBondedAction, tokenRiskAction, tokenRiskBatchAction, tokenBundleAction, tokenPoolsAction, deployerHistoryAction, tokenCandlesAction, tokenFlowAction, streamSessionsAction, streamSessionKillAction };
|
|
1273
|
+
export { walletStatsAction, walletPnlAction, walletPositionsAction, walletHoldingsAction, walletTradesAction };
|
|
1274
|
+
export { meAction, tokensListAction, almostBondedAction, tokenRiskAction, tokenRiskBatchAction, tokenBundleAction, tokenPoolsAction, deployerHistoryAction, tokenCandlesAction, tokenFlowAction, tokenTradesAction, walletClassifyAction, streamSessionsAction, streamSessionKillAction };
|
package/dist/index.js
CHANGED
|
@@ -19,9 +19,11 @@ import { deployerHistoryAction } from "./actions/deployerHistory.js";
|
|
|
19
19
|
import { tokenCandlesAction } from "./actions/tokenCandles.js";
|
|
20
20
|
import { tokenFlowAction } from "./actions/tokenFlow.js";
|
|
21
21
|
import { tokenRiskBatchAction } from "./actions/tokenRiskBatch.js";
|
|
22
|
+
import { tokenTradesAction } from "./actions/tokenTrades.js";
|
|
23
|
+
import { walletClassifyAction } from "./actions/walletClassify.js";
|
|
22
24
|
import { streamSessionsAction, streamSessionKillAction } from "./actions/streamSessions.js";
|
|
23
|
-
import { kolFeed, kolCoordination, kolLeaderboard, deployerAlerts, kolPnl, kolTrendingTokens, kolTokenEntryOrder, kolCompare, kolAlertsRecent, createWebhook, listWebhooks, deleteWebhook, testWebhook, getStreamToken, streamSessions, streamSessionKill, walletTrackerWatchlist, walletTrackerAdd, walletTrackerRemove, walletTrackerTrades, walletTrackerSummary, alphaLeaderboard, alphaWallet, alphaLinked, tokenCapTable, tokenBuyerQuality, tokenRisk, tokenRiskBatch, tokenBundle, tokenPools, tokenCandles, tokenFlow, deployerHistory, copyTradeList, copyTradeCreate, copyTradeGet, copyTradeUpdate, copyTradeDelete, copyTradeSignals, coordinationAlertsList, coordinationAlertsCreate, coordinationAlertsGet, coordinationAlertsUpdate, coordinationAlertsDelete, kolFirstTouches, firstTouchSubscriptionsList, firstTouchSubscriptionsCreate, firstTouchSubscriptionsGet, firstTouchSubscriptionsUpdate, firstTouchSubscriptionsDelete, priceAlertsList, priceAlertsCreate, priceAlertsGet, priceAlertsUpdate, priceAlertsDelete, priceAlertsEvents, scoutLeaderboard, coordinationHistory, kolConsensus, peakHistory, walletStats, walletPnl, walletPositions, walletTrades, me, tokensList, almostBonded, } from "./tools/index.js";
|
|
24
|
-
import { walletStatsAction, walletPnlAction, walletPositionsAction, walletTradesAction } from "./actions/wallet.js";
|
|
25
|
+
import { kolFeed, kolCoordination, kolLeaderboard, deployerAlerts, kolPnl, kolTrendingTokens, kolTokenEntryOrder, kolCompare, kolAlertsRecent, createWebhook, listWebhooks, deleteWebhook, testWebhook, getStreamToken, streamSessions, streamSessionKill, walletTrackerWatchlist, walletTrackerAdd, walletTrackerRemove, walletTrackerTrades, walletTrackerSummary, alphaLeaderboard, alphaWallet, alphaLinked, tokenCapTable, tokenBuyerQuality, tokenRisk, tokenRiskBatch, tokenBundle, tokenPools, tokenCandles, tokenFlow, tokenTrades, deployerHistory, copyTradeList, copyTradeCreate, copyTradeGet, copyTradeUpdate, copyTradeDelete, copyTradeSignals, coordinationAlertsList, coordinationAlertsCreate, coordinationAlertsGet, coordinationAlertsUpdate, coordinationAlertsDelete, kolFirstTouches, firstTouchSubscriptionsList, firstTouchSubscriptionsCreate, firstTouchSubscriptionsGet, firstTouchSubscriptionsUpdate, firstTouchSubscriptionsDelete, priceAlertsList, priceAlertsCreate, priceAlertsGet, priceAlertsUpdate, priceAlertsDelete, priceAlertsEvents, scoutLeaderboard, coordinationHistory, kolConsensus, peakHistory, walletStats, walletPnl, walletPositions, walletHoldings, walletTrades, walletClassify, me, tokensList, almostBonded, } from "./tools/index.js";
|
|
26
|
+
import { walletStatsAction, walletPnlAction, walletPositionsAction, walletHoldingsAction, walletTradesAction } from "./actions/wallet.js";
|
|
25
27
|
const MadeOnSolPlugin = {
|
|
26
28
|
name: "madeonsol",
|
|
27
29
|
methods: {
|
|
@@ -57,6 +59,7 @@ const MadeOnSolPlugin = {
|
|
|
57
59
|
tokenPools,
|
|
58
60
|
tokenCandles,
|
|
59
61
|
tokenFlow,
|
|
62
|
+
tokenTrades,
|
|
60
63
|
deployerHistory,
|
|
61
64
|
copyTradeList,
|
|
62
65
|
copyTradeCreate,
|
|
@@ -91,7 +94,9 @@ const MadeOnSolPlugin = {
|
|
|
91
94
|
walletStats,
|
|
92
95
|
walletPnl,
|
|
93
96
|
walletPositions,
|
|
97
|
+
walletHoldings,
|
|
94
98
|
walletTrades,
|
|
99
|
+
walletClassify,
|
|
95
100
|
},
|
|
96
101
|
actions: [
|
|
97
102
|
kolFeedAction,
|
|
@@ -119,11 +124,14 @@ const MadeOnSolPlugin = {
|
|
|
119
124
|
deployerHistoryAction,
|
|
120
125
|
tokenCandlesAction,
|
|
121
126
|
tokenFlowAction,
|
|
127
|
+
tokenTradesAction,
|
|
128
|
+
walletClassifyAction,
|
|
122
129
|
streamSessionsAction,
|
|
123
130
|
streamSessionKillAction,
|
|
124
131
|
walletStatsAction,
|
|
125
132
|
walletPnlAction,
|
|
126
133
|
walletPositionsAction,
|
|
134
|
+
walletHoldingsAction,
|
|
127
135
|
walletTradesAction,
|
|
128
136
|
],
|
|
129
137
|
initialize(_agent) {
|
|
@@ -131,8 +139,8 @@ const MadeOnSolPlugin = {
|
|
|
131
139
|
},
|
|
132
140
|
};
|
|
133
141
|
export default MadeOnSolPlugin;
|
|
134
|
-
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, walletTrades, me, tokensList, almostBonded, };
|
|
142
|
+
export { kolFeed, kolCoordination, kolLeaderboard, deployerAlerts, kolPnl, kolTrendingTokens, kolTokenEntryOrder, kolCompare, kolAlertsRecent, createWebhook, listWebhooks, deleteWebhook, testWebhook, getStreamToken, streamSessions, streamSessionKill, walletTrackerWatchlist, walletTrackerAdd, walletTrackerRemove, walletTrackerTrades, walletTrackerSummary, alphaLeaderboard, alphaWallet, alphaLinked, tokenCapTable, tokenBuyerQuality, tokenRisk, tokenRiskBatch, tokenBundle, tokenPools, tokenCandles, tokenFlow, tokenTrades, deployerHistory, copyTradeList, copyTradeCreate, copyTradeGet, copyTradeUpdate, copyTradeDelete, copyTradeSignals, coordinationAlertsList, coordinationAlertsCreate, coordinationAlertsGet, coordinationAlertsUpdate, coordinationAlertsDelete, kolFirstTouches, firstTouchSubscriptionsList, firstTouchSubscriptionsCreate, firstTouchSubscriptionsGet, firstTouchSubscriptionsUpdate, firstTouchSubscriptionsDelete, priceAlertsList, priceAlertsCreate, priceAlertsGet, priceAlertsUpdate, priceAlertsDelete, priceAlertsEvents, scoutLeaderboard, coordinationHistory, kolConsensus, peakHistory, walletStats, walletPnl, walletPositions, walletHoldings, walletTrades, walletClassify, me, tokensList, almostBonded, };
|
|
135
143
|
export { kolFeedAction, kolCoordinationAction, kolLeaderboardAction, deployerAlertsAction, kolPnlAction, kolTrendingTokensAction, kolTokenEntryOrderAction, kolCompareAction, kolAlertsRecentAction, kolFirstTouchesAction };
|
|
136
144
|
export { walletTrackerWatchlistAction, walletTrackerAddAction, walletTrackerRemoveAction, walletTrackerTradesAction, walletTrackerSummaryAction };
|
|
137
|
-
export { walletStatsAction, walletPnlAction, walletPositionsAction, walletTradesAction };
|
|
138
|
-
export { meAction, tokensListAction, almostBondedAction, tokenRiskAction, tokenRiskBatchAction, tokenBundleAction, tokenPoolsAction, deployerHistoryAction, tokenCandlesAction, tokenFlowAction, streamSessionsAction, streamSessionKillAction };
|
|
145
|
+
export { walletStatsAction, walletPnlAction, walletPositionsAction, walletHoldingsAction, walletTradesAction };
|
|
146
|
+
export { meAction, tokensListAction, almostBondedAction, tokenRiskAction, tokenRiskBatchAction, tokenBundleAction, tokenPoolsAction, deployerHistoryAction, tokenCandlesAction, tokenFlowAction, tokenTradesAction, walletClassifyAction, streamSessionsAction, streamSessionKillAction };
|
package/dist/tools/index.d.ts
CHANGED
|
@@ -164,6 +164,19 @@ export declare function walletPnl(agent: Agent, params: {
|
|
|
164
164
|
export declare function walletPositions(agent: Agent, params: {
|
|
165
165
|
address: string;
|
|
166
166
|
}): Promise<any>;
|
|
167
|
+
/**
|
|
168
|
+
* Verified CURRENT on-chain holdings for any wallet — the wallet's actual SPL + Token-2022 token
|
|
169
|
+
* accounts and SOL balance read straight from chain, enriched with price/MC/name/symbol, plus
|
|
170
|
+
* `transfer_delta` (on-chain amount − trade-derived net position, exposing non-swap flows like
|
|
171
|
+
* airdrops, insider funding, wallet-hopping). Distinct from `walletPositions` (trade-derived FIFO):
|
|
172
|
+
* holdings = what the wallet actually holds right now. `limit` 1–500 (default 200); `min_value_usd`
|
|
173
|
+
* ≥0 (default 0). ULTRA only.
|
|
174
|
+
*/
|
|
175
|
+
export declare function walletHoldings(agent: Agent, params: {
|
|
176
|
+
address: string;
|
|
177
|
+
limit?: number;
|
|
178
|
+
min_value_usd?: number;
|
|
179
|
+
}): Promise<any>;
|
|
167
180
|
export declare function walletTrades(agent: Agent, params: {
|
|
168
181
|
address: string;
|
|
169
182
|
limit?: number;
|
|
@@ -173,6 +186,17 @@ export declare function walletTrades(agent: Agent, params: {
|
|
|
173
186
|
since?: number;
|
|
174
187
|
until?: number;
|
|
175
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>;
|
|
176
200
|
export declare function alphaLeaderboard(agent: Agent, params?: {
|
|
177
201
|
limit?: number;
|
|
178
202
|
min_tokens?: number;
|
|
@@ -218,6 +242,23 @@ export declare function tokenFlow(agent: Agent, params: {
|
|
|
218
242
|
mint: string;
|
|
219
243
|
window?: "1h" | "24h";
|
|
220
244
|
}): Promise<any>;
|
|
245
|
+
/**
|
|
246
|
+
* Mint-scoped trade tape — every captured trade for a token, cursor-paginated newest first
|
|
247
|
+
* (GET /tokens/{mint}/trades). Each trade: tx_signature, wallet_address, action, sol_amount,
|
|
248
|
+
* token_amount, price_sol/price_usd, early_buyer_rank, slot, block_time, traded_at. Filter by
|
|
249
|
+
* `action`, `wallet`, `since`/`until` (unix sec); unlike walletTrades (90d default) the default
|
|
250
|
+
* window is the FULL history. Coverage honesty: the tape starts 2026-04-12 and is
|
|
251
|
+
* pump.fun-pipeline scoped — see the response `coverage` block (history_start, scope). PRO/ULTRA only.
|
|
252
|
+
*/
|
|
253
|
+
export declare function tokenTrades(agent: Agent, params: {
|
|
254
|
+
mint: string;
|
|
255
|
+
limit?: number;
|
|
256
|
+
cursor?: string;
|
|
257
|
+
action?: "buy" | "sell";
|
|
258
|
+
wallet?: string;
|
|
259
|
+
since?: number;
|
|
260
|
+
until?: number;
|
|
261
|
+
}): Promise<any>;
|
|
221
262
|
/** Bulk buyer-quality scoring for up to 50 mints. Shares the 5-min LRU cache with the single-mint endpoint. */
|
|
222
263
|
export declare function tokenBuyerQualityBatch(agent: Agent, params: {
|
|
223
264
|
mints: string[];
|
package/dist/tools/index.js
CHANGED
|
@@ -246,6 +246,23 @@ export async function walletPnl(agent, params) {
|
|
|
246
246
|
export async function walletPositions(agent, params) {
|
|
247
247
|
return restQuery(agent, "GET", `/wallet/${encodeURIComponent(params.address)}/positions`);
|
|
248
248
|
}
|
|
249
|
+
/**
|
|
250
|
+
* Verified CURRENT on-chain holdings for any wallet — the wallet's actual SPL + Token-2022 token
|
|
251
|
+
* accounts and SOL balance read straight from chain, enriched with price/MC/name/symbol, plus
|
|
252
|
+
* `transfer_delta` (on-chain amount − trade-derived net position, exposing non-swap flows like
|
|
253
|
+
* airdrops, insider funding, wallet-hopping). Distinct from `walletPositions` (trade-derived FIFO):
|
|
254
|
+
* holdings = what the wallet actually holds right now. `limit` 1–500 (default 200); `min_value_usd`
|
|
255
|
+
* ≥0 (default 0). ULTRA only.
|
|
256
|
+
*/
|
|
257
|
+
export async function walletHoldings(agent, params) {
|
|
258
|
+
const qs = new URLSearchParams();
|
|
259
|
+
if (params.limit !== undefined)
|
|
260
|
+
qs.set("limit", String(params.limit));
|
|
261
|
+
if (params.min_value_usd !== undefined)
|
|
262
|
+
qs.set("min_value_usd", String(params.min_value_usd));
|
|
263
|
+
const query = qs.toString() ? `?${qs.toString()}` : "";
|
|
264
|
+
return restQuery(agent, "GET", `/wallet/${encodeURIComponent(params.address)}/holdings${query}`);
|
|
265
|
+
}
|
|
249
266
|
export async function walletTrades(agent, params) {
|
|
250
267
|
const qs = new URLSearchParams();
|
|
251
268
|
if (params.limit !== undefined)
|
|
@@ -263,6 +280,17 @@ export async function walletTrades(agent, params) {
|
|
|
263
280
|
const query = qs.toString() ? `?${qs.toString()}` : "";
|
|
264
281
|
return restQuery(agent, "GET", `/wallet/${encodeURIComponent(params.address)}/trades${query}`);
|
|
265
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
|
+
}
|
|
266
294
|
// ── Alpha Wallet Intelligence ──
|
|
267
295
|
export async function alphaLeaderboard(agent, params = {}) {
|
|
268
296
|
const qs = new URLSearchParams();
|
|
@@ -320,6 +348,31 @@ export async function tokenFlow(agent, params) {
|
|
|
320
348
|
const qs = params.window !== undefined ? `?window=${params.window}` : "";
|
|
321
349
|
return restQuery(agent, "GET", `/tokens/${encodeURIComponent(params.mint)}/flow${qs}`);
|
|
322
350
|
}
|
|
351
|
+
/**
|
|
352
|
+
* Mint-scoped trade tape — every captured trade for a token, cursor-paginated newest first
|
|
353
|
+
* (GET /tokens/{mint}/trades). Each trade: tx_signature, wallet_address, action, sol_amount,
|
|
354
|
+
* token_amount, price_sol/price_usd, early_buyer_rank, slot, block_time, traded_at. Filter by
|
|
355
|
+
* `action`, `wallet`, `since`/`until` (unix sec); unlike walletTrades (90d default) the default
|
|
356
|
+
* window is the FULL history. Coverage honesty: the tape starts 2026-04-12 and is
|
|
357
|
+
* pump.fun-pipeline scoped — see the response `coverage` block (history_start, scope). PRO/ULTRA only.
|
|
358
|
+
*/
|
|
359
|
+
export async function tokenTrades(agent, params) {
|
|
360
|
+
const qs = new URLSearchParams();
|
|
361
|
+
if (params.limit !== undefined)
|
|
362
|
+
qs.set("limit", String(params.limit));
|
|
363
|
+
if (params.cursor)
|
|
364
|
+
qs.set("cursor", params.cursor);
|
|
365
|
+
if (params.action)
|
|
366
|
+
qs.set("action", params.action);
|
|
367
|
+
if (params.wallet)
|
|
368
|
+
qs.set("wallet", params.wallet);
|
|
369
|
+
if (params.since !== undefined)
|
|
370
|
+
qs.set("since", String(params.since));
|
|
371
|
+
if (params.until !== undefined)
|
|
372
|
+
qs.set("until", String(params.until));
|
|
373
|
+
const query = qs.toString() ? `?${qs.toString()}` : "";
|
|
374
|
+
return restQuery(agent, "GET", `/tokens/${encodeURIComponent(params.mint)}/trades${query}`);
|
|
375
|
+
}
|
|
323
376
|
/** Bulk buyer-quality scoring for up to 50 mints. Shares the 5-min LRU cache with the single-mint endpoint. */
|
|
324
377
|
export async function tokenBuyerQualityBatch(agent, params) {
|
|
325
378
|
return restQuery(agent, "POST", "/tokens/batch/buyer-quality", { mints: params.mints });
|
package/dist/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const VERSION = "1.
|
|
1
|
+
export declare const VERSION = "1.18.0";
|
package/dist/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// AUTO-GENERATED by ../gen-version.mjs (npm prebuild) from package.json. Do not edit.
|
|
2
|
-
export const VERSION = "1.
|
|
2
|
+
export const VERSION = "1.18.0";
|
package/package.json
CHANGED