Skip to main content
Glama

zetrix_ws_submit_transaction

Submit blockchain transactions via WebSocket to receive real-time status updates for monitoring and verification.

Instructions

Submit transaction via WebSocket and get real-time status updates

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
transactionYesTransaction object
signaturesYesArray of signature objects with public_key and sign_data
triggerNoOptional trigger object

Implementation Reference

  • src/index.ts:368-388 (registration)
    Tool registration in the tools array, defining name, description, and inputSchema for MCP tool listing.
    { name: "zetrix_ws_submit_transaction", description: "Submit transaction via WebSocket and get real-time status updates", inputSchema: { type: "object", properties: { transaction: { type: "object", description: "Transaction object", }, signatures: { type: "array", description: "Array of signature objects with public_key and sign_data", }, trigger: { type: "object", description: "Optional trigger object", }, }, required: ["transaction", "signatures"], },
  • MCP server request handler switch case that validates arguments, retrieves WebSocket client, calls submitTransaction, and returns the result.
    case "zetrix_ws_submit_transaction": { if (!args) { throw new Error("Missing arguments"); } const wsClient = getWebSocketClient(); const result = await wsClient.submitTransaction( args.transaction, args.signatures as Array<{ public_key: string; sign_data: string }>, args.trigger ); return { content: [ { type: "text", text: JSON.stringify(result, null, 2), }, ], };
  • Core tool logic implementation in ZetrixWebSocketClient: validates registration, constructs ChainSubmitTransactionRequest message, sends via WebSocket, sets up listener for tx_status response with timeout, resolves with ChainTxStatusResponse.
    submitTransaction( transaction: any, signatures: Array<{ public_key: string; sign_data: string }>, trigger?: any ): Promise<ChainTxStatusResponse> { return new Promise((resolve, reject) => { if (!this.isRegistered) { reject(new Error("WebSocket not registered. Call registerAndConnect first.")); return; } const request: ChainSubmitTransactionRequest = { type: ChainMessageType.CHAIN_SUBMITTRANSACTION, transaction, signatures, trigger, }; const timeout = setTimeout(() => { this.off("tx_status", onTxStatus); reject(new Error("Transaction submission timeout")); }, 30000); const onTxStatus = (response: ChainTxStatusResponse) => { clearTimeout(timeout); resolve(response); }; this.once("tx_status", onTxStatus); this.sendMessage(request); }); }

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/Zetrix-Chain/zetrix-mcp-server'

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