relay_get_execution_status
Check the execution status of a cross-chain request using its requestId. Returns status, transaction hash, and details to monitor progress after executing a quote or swap.
Instructions
Get the current execution status of a cross-chain request. Returns status, transaction hash, and other execution details.
When to use: After executing a quote/swap, use the requestId from the response to monitor progress. Request ID format: Hex string starting with "0x" (e.g., "0x1234abcd...") Status values: "pending", "success", "failed", "insufficient-balance"
Example workflow: relay_get_quote → get requestId → relay_get_execution_status
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| requestId | Yes | The ID of the cross-chain request to check status for |
Implementation Reference
- src/tools/requests.ts:123-126 (handler)Handler function for relay_get_execution_status. Parses arguments with Zod schema and delegates to client.getExecutionStatus(requestId).
handler: async (args: unknown) => { const { requestId } = getExecutionStatusSchema.parse(args); return await client.getExecutionStatus(requestId); }, - src/tools/requests.ts:17-19 (schema)Zod input validation schema for relay_get_execution_status. Expects a single 'requestId' string parameter.
const getExecutionStatusSchema = z.object({ requestId: z.string().describe('The ID of the cross-chain request to check status for'), }); - src/tools/requests.ts:101-127 (registration)Tool registration object with name, description, inputSchema (JSON Schema), and handler. Defined inside createRequestTools() function.
relay_get_execution_status: { name: 'relay_get_execution_status', description: 'Get the current execution status of a cross-chain request. Returns status, transaction hash, and other execution details.\n\nWhen to use: After executing a quote/swap, use the requestId from the response to monitor progress.\nRequest ID format: Hex string starting with "0x" (e.g., "0x1234abcd...")\nStatus values: "pending", "success", "failed", "insufficient-balance"\n\nExample workflow: relay_get_quote → get requestId → relay_get_execution_status', inputSchema: { type: 'object', properties: { requestId: { type: 'string', description: 'The ID of the cross-chain request to check status for' } }, required: ['requestId'], additionalProperties: false }, /** * Handler function for the relay_get_execution_status tool. * * @param {unknown} args - Raw arguments from MCP client * @returns {Promise<ExecutionStatus>} Current execution status and details * @throws {ZodError} When arguments don't match the expected schema * @throws {RelayAPIError} When request ID is invalid or not found */ handler: async (args: unknown) => { const { requestId } = getExecutionStatusSchema.parse(args); return await client.getExecutionStatus(requestId); }, }, - src/client/RelayClient.ts:239-244 (helper)Client method that makes the actual HTTP GET request to /intents/status/v2 endpoint with the requestId parameter. Returns typed ExecutionStatus response.
async getExecutionStatus(requestId: string): Promise<ExecutionStatus> { const response = await this.client.get<ExecutionStatus>('/intents/status/v2', { params: { requestId } }); return response.data; } - src/types/relay.ts:362-377 (schema)TypeScript interface defining the response shape returned by getExecutionStatus. Contains status enum, transaction hashes, timestamps, and chain IDs.
export interface ExecutionStatus { /** Current status of the execution */ status: 'refund' | 'delayed' | 'waiting' | 'failure' | 'pending' | 'success'; /** Additional status details if available */ details?: string; /** Array of input transaction hashes */ inTxHashes: string[]; /** Array of output transaction hashes */ txHashes: string[]; /** Timestamp of last status update */ time: number; /** Source chain ID */ originChainId: number; /** Destination chain ID */ destinationChainId: number; }