list_offchain_actions
Retrieve and filter signed off-chain transaction history by venue and status with pagination controls for wallet management.
Instructions
List off-chain action history (signedData/signedHttp) with venue/status filter and pagination.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| venue | No | Filter by venue name (e.g. polymarket, hyperliquid) | |
| status | No | Filter by status (e.g. PENDING, FILLED, CANCELED, EXPIRED) | |
| limit | No | Maximum number of results to return | |
| offset | No | Pagination offset | |
| wallet_id | No | Wallet ID. Auto-resolved for single-wallet sessions. |
Implementation Reference
- The handler function that executes the logic to list offchain actions by calling the API.
async (args) => { const walletId = args.wallet_id || 'default'; const params = new URLSearchParams(); if (args.venue !== undefined) params.set('venue', args.venue); if (args.status !== undefined) params.set('status', args.status); if (args.limit !== undefined) params.set('limit', String(args.limit)); if (args.offset !== undefined) params.set('offset', String(args.offset)); const qs = params.toString(); const result = await apiClient.get(`/v1/wallets/${walletId}/actions${qs ? `?${qs}` : ''}`); return toToolResult(result); }, - The Zod schema validation for the list_offchain_actions tool.
{ venue: z.string().optional().describe('Filter by venue name (e.g. polymarket, hyperliquid)'), status: z.string().optional().describe('Filter by status (e.g. PENDING, FILLED, CANCELED, EXPIRED)'), limit: z.number().optional().describe('Maximum number of results to return'), offset: z.number().optional().describe('Pagination offset'), wallet_id: z.string().optional().describe('Wallet ID. Auto-resolved for single-wallet sessions.'), }, - packages/mcp/src/tools/list-offchain-actions.ts:14-44 (registration)The registration function for the list_offchain_actions tool.
export function registerListOffchainActions( server: McpServer, apiClient: ApiClient, walletContext?: WalletContext, ): void { server.tool( 'list_offchain_actions', withWalletPrefix( 'List off-chain action history (signedData/signedHttp) with venue/status filter and pagination.', walletContext?.walletName, ), { venue: z.string().optional().describe('Filter by venue name (e.g. polymarket, hyperliquid)'), status: z.string().optional().describe('Filter by status (e.g. PENDING, FILLED, CANCELED, EXPIRED)'), limit: z.number().optional().describe('Maximum number of results to return'), offset: z.number().optional().describe('Pagination offset'), wallet_id: z.string().optional().describe('Wallet ID. Auto-resolved for single-wallet sessions.'), }, async (args) => { const walletId = args.wallet_id || 'default'; const params = new URLSearchParams(); if (args.venue !== undefined) params.set('venue', args.venue); if (args.status !== undefined) params.set('status', args.status); if (args.limit !== undefined) params.set('limit', String(args.limit)); if (args.offset !== undefined) params.set('offset', String(args.offset)); const qs = params.toString(); const result = await apiClient.get(`/v1/wallets/${walletId}/actions${qs ? `?${qs}` : ''}`); return toToolResult(result); }, ); }