madeonsol_wallet_tracker_summary
Summarize wallet activity with swap counts and SOL volumes. Filter by time period or specific wallet address.
Instructions
Per-wallet stats: swap counts, SOL bought/sold, and last activity time across your watchlist.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | Time window for stats | 7d |
| wallet | No | Filter to a specific wallet address |
Implementation Reference
- src/index.ts:423-439 (handler)The main handler for madeonsol_wallet_tracker_summary — makes a GET request to /api/v1/wallet-tracker/summary with period and optional wallet filter, returns per-wallet stats (swap counts, SOL bought/sold, last activity time). Only enabled when MADEONSOL_API_KEY auth mode is active.
server.tool( "madeonsol_wallet_tracker_summary", "Per-wallet stats: swap counts, SOL bought/sold, and last activity time across your watchlist.", { period: z.enum(["24h", "7d", "30d"]).default("7d").describe("Time window for stats"), wallet: z.string().optional().describe("Filter to a specific wallet address"), }, { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }, async ({ period, wallet }) => { const url = new URL(`${BASE_URL}/api/v1/wallet-tracker/summary`); url.searchParams.set("period", period); if (wallet) url.searchParams.set("wallet", wallet); const res = await fetch(url.toString(), { headers: { "Content-Type": "application/json", ...apiKeyHeaders() } }); const text = res.ok ? JSON.stringify(await res.json(), null, 2) : `Error ${res.status}: ${await res.text().catch(() => "")}`; return { content: [{ type: "text" as const, text }] }; } ); - src/index.ts:426-429 (schema)Input schema for madeonsol_wallet_tracker_summary using Zod: accepts period (24h/7d/30d, default 7d) and optional wallet filter.
{ period: z.enum(["24h", "7d", "30d"]).default("7d").describe("Time window for stats"), wallet: z.string().optional().describe("Filter to a specific wallet address"), }, - src/index.ts:423-439 (registration)Registration of the tool via server.tool() inside registerTools(). Guarded by hasRestAuth (authMode === 'madeonsol'), so only available when MADEONSOL_API_KEY is set.
server.tool( "madeonsol_wallet_tracker_summary", "Per-wallet stats: swap counts, SOL bought/sold, and last activity time across your watchlist.", { period: z.enum(["24h", "7d", "30d"]).default("7d").describe("Time window for stats"), wallet: z.string().optional().describe("Filter to a specific wallet address"), }, { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }, async ({ period, wallet }) => { const url = new URL(`${BASE_URL}/api/v1/wallet-tracker/summary`); url.searchParams.set("period", period); if (wallet) url.searchParams.set("wallet", wallet); const res = await fetch(url.toString(), { headers: { "Content-Type": "application/json", ...apiKeyHeaders() } }); const text = res.ok ? JSON.stringify(await res.json(), null, 2) : `Error ${res.status}: ${await res.text().catch(() => "")}`; return { content: [{ type: "text" as const, text }] }; } );