Skip to main content
Glama

list_incoming_transactions

Retrieve received transaction history with pagination and filtering options for monitoring wallet activity across supported chains.

Instructions

List incoming (received) transaction history with cursor-based pagination. Returns confirmed incoming transfers by default.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of transactions to return (1-100, default 20)
cursorNoPagination cursor from previous response
chainNoFilter by chain (solana or ethereum)
networkNoFilter by network (e.g., "polygon-mainnet" or CAIP-2 "eip155:137").
statusNoFilter by status: DETECTED or CONFIRMED (default: CONFIRMED)
tokenNoFilter by token address (null for native transfers)
from_addressNoFilter by sender address
sinceNoFilter: only transactions detected after this epoch (seconds)
untilNoFilter: only transactions detected before this epoch (seconds)
wallet_idNoTarget wallet ID. Required for multi-wallet sessions; auto-resolved when session has a single wallet.

Implementation Reference

  • The handler function for list_incoming_transactions which processes the tool arguments and makes the API call to the backend.
      async (args) => {
        const params = new URLSearchParams();
        if (args.limit !== undefined) params.set('limit', String(args.limit));
        if (args.cursor !== undefined) params.set('cursor', args.cursor);
        if (args.chain !== undefined) params.set('chain', args.chain);
        if (args.network !== undefined) params.set('network', args.network);
        if (args.status !== undefined) params.set('status', args.status);
        if (args.token !== undefined) params.set('token', args.token);
        if (args.from_address !== undefined) params.set('from_address', args.from_address);
        if (args.since !== undefined) params.set('since', String(args.since));
        if (args.until !== undefined) params.set('until', String(args.until));
        if (args.wallet_id) params.set('wallet_id', args.wallet_id);
        const qs = params.toString();
        const result = await apiClient.get(`/v1/wallet/incoming${qs ? `?${qs}` : ''}`);
        return toToolResult(result);
      },
    );
  • The registration function that registers the 'list_incoming_transactions' tool with the MCP server and defines its input schema.
    export function registerListIncomingTransactions(
      server: McpServer,
      apiClient: ApiClient,
      walletContext?: WalletContext,
    ): void {
      server.tool(
        'list_incoming_transactions',
        withWalletPrefix(
          'List incoming (received) transaction history with cursor-based pagination. Returns confirmed incoming transfers by default.',
          walletContext?.walletName,
        ),
        {
          limit: z.number().optional().describe('Maximum number of transactions to return (1-100, default 20)'),
          cursor: z.string().optional().describe('Pagination cursor from previous response'),
          chain: z.string().optional().describe('Filter by chain (solana or ethereum)'),
          network: z.string().optional().describe('Filter by network (e.g., "polygon-mainnet" or CAIP-2 "eip155:137").'),
          status: z.string().optional().describe('Filter by status: DETECTED or CONFIRMED (default: CONFIRMED)'),
          token: z.string().optional().describe('Filter by token address (null for native transfers)'),
          from_address: z.string().optional().describe('Filter by sender address'),
          since: z.number().optional().describe('Filter: only transactions detected after this epoch (seconds)'),
          until: z.number().optional().describe('Filter: only transactions detected before this epoch (seconds)'),
          wallet_id: z.string().optional().describe('Target wallet ID. Required for multi-wallet sessions; auto-resolved when session has a single wallet.'),
        },
        async (args) => {
          const params = new URLSearchParams();
          if (args.limit !== undefined) params.set('limit', String(args.limit));
          if (args.cursor !== undefined) params.set('cursor', args.cursor);
          if (args.chain !== undefined) params.set('chain', args.chain);
          if (args.network !== undefined) params.set('network', args.network);
          if (args.status !== undefined) params.set('status', args.status);
          if (args.token !== undefined) params.set('token', args.token);
          if (args.from_address !== undefined) params.set('from_address', args.from_address);
          if (args.since !== undefined) params.set('since', String(args.since));
          if (args.until !== undefined) params.set('until', String(args.until));
          if (args.wallet_id) params.set('wallet_id', args.wallet_id);
          const qs = params.toString();
          const result = await apiClient.get(`/v1/wallet/incoming${qs ? `?${qs}` : ''}`);
          return toToolResult(result);
        },
      );
    }

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/minhoyoo-iotrust/WAIaaS'

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