Skip to main content
Glama

whale_movements

Track large cryptocurrency wallet movements to identify significant inflows, outflows, and transfers that may signal market trends. Filter by blockchain, token, and time period for actionable insights.

Instructions

Get large balance changes across whale wallets. Shows significant inflows, outflows, and transfers that may signal market moves. Cost: $0.04 per query. Source: On-chain analytics.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
chainNoFilter by blockchain network
min_usdNoMinimum movement size in USD
tokenNoFilter by token symbol
hoursNoLookback period in hours (default 24, max 168)
limitNoMaximum results (default 25)

Implementation Reference

  • The handler implementation for the `whale_movements` tool, which fetches data from the API endpoint `/api/v1/whales/movements`.
      async ({ chain, min_usd, token, hours, limit }) => {
        const res = await apiGet<WhaleQueryResponse>("/api/v1/whales/movements", {
          chain,
          min_usd,
          token,
          hours: hours ?? 24,
          limit: limit ?? 25,
        });
    
        if (!res.ok) {
          return {
            content: [
              {
                type: "text" as const,
                text: `API error (${res.status}): ${JSON.stringify(res.data)}`,
              },
            ],
            isError: true,
          };
        }
    
        const { count, data } = res.data;
        const warn = stalenessWarning(res);
        const summary = `${warn}Found ${count} whale movement(s).`;
        const json = JSON.stringify(data, null, 2);
    
        return {
          content: [{ type: "text" as const, text: `${summary}\n\n${json}` }],
        };
      },
    );
  • The schema and tool definition for `whale_movements`.
    server.registerTool(
      "whale_movements",
      {
        title: "Whale Movements",
        description:
          "Get large balance changes across whale wallets. Shows significant inflows, " +
          "outflows, and transfers that may signal market moves. " +
          "Cost: $0.04 per query. Source: On-chain analytics.",
        inputSchema: {
          chain: z
            .enum(["ethereum", "arbitrum", "polygon", "base", "bsc"])
            .optional()
            .describe("Filter by blockchain network"),
          min_usd: z
            .number()
            .optional()
            .describe("Minimum movement size in USD"),
          token: z
            .string()
            .optional()
            .describe("Filter by token symbol"),
          hours: z
            .number()
            .int()
            .min(1)
            .max(168)
            .optional()
            .describe("Lookback period in hours (default 24, max 168)"),
          limit: z
            .number()
            .int()
            .min(1)
            .max(100)
            .optional()
            .describe("Maximum results (default 25)"),
        },
      },
  • Registration of the `whale_movements` tool within the MCP server.
    server.registerTool(
      "whale_movements",
      {
        title: "Whale Movements",
        description:
          "Get large balance changes across whale wallets. Shows significant inflows, " +
          "outflows, and transfers that may signal market moves. " +
          "Cost: $0.04 per query. Source: On-chain analytics.",
        inputSchema: {
          chain: z
            .enum(["ethereum", "arbitrum", "polygon", "base", "bsc"])
            .optional()
            .describe("Filter by blockchain network"),
          min_usd: z
            .number()
            .optional()
            .describe("Minimum movement size in USD"),
          token: z
            .string()
            .optional()
            .describe("Filter by token symbol"),
          hours: z
            .number()
            .int()
            .min(1)
            .max(168)
            .optional()
            .describe("Lookback period in hours (default 24, max 168)"),
          limit: z
            .number()
            .int()
            .min(1)
            .max(100)
            .optional()
            .describe("Maximum results (default 25)"),
        },
      },
      async ({ chain, min_usd, token, hours, limit }) => {
        const res = await apiGet<WhaleQueryResponse>("/api/v1/whales/movements", {
          chain,
          min_usd,
          token,
          hours: hours ?? 24,
          limit: limit ?? 25,
        });
    
        if (!res.ok) {
          return {
            content: [
              {
                type: "text" as const,
                text: `API error (${res.status}): ${JSON.stringify(res.data)}`,
              },
            ],
            isError: true,
          };
        }
    
        const { count, data } = res.data;
        const warn = stalenessWarning(res);
        const summary = `${warn}Found ${count} whale movement(s).`;
        const json = JSON.stringify(data, null, 2);
    
        return {
          content: [{ type: "text" as const, text: `${summary}\n\n${json}` }],
        };
      },
    );

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/carrierone/verilexdata-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server