sendTransaction
Send blockchain transactions from a smart contract account using specified signer, recipient, value, and data parameters.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ownerScaAccountAddress | Yes | The owner SCA account address. | |
| signerAddress | Yes | The signer address to send the transaction from. | |
| toAddress | Yes | The address to send the transaction to. | |
| value | No | The value of the transaction in ETH. | |
| callData | No | The data of the transaction. |
Implementation Reference
- api/alchemyApi.ts:153-181 (handler)The core handler function that sends a transaction by posting to the agent wallet server endpoint with the provided parameters.async sendTransaction(params: SendTransactionParams) { const { ownerScaAccountAddress, signerAddress, toAddress, value, callData } = params; try { const response = await fetch(`${AGENT_WALLET_SERVER}/transactions/send`, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ ownerScaAccountAddress, signerAddress, toAddress, value, callData }) }); if (!response.ok) { const errorData = await response.json(); throw new Error(errorData.error || `HTTP ${response.status}: ${response.statusText}`); } const result = await response.json(); return result.data; } catch (error) { console.error('Error sending transaction:', error); throw error; } },
- types/types.d.ts:73-79 (schema)TypeScript interface defining the input parameters for the sendTransaction tool.export interface SendTransactionParams { ownerScaAccountAddress: string; signerAddress: string; toAddress: string; value?: string; callData?: string; }
- index.ts:317-342 (registration)Registers the sendTransaction tool with the MCP server, providing Zod input schema validation and a wrapper handler that calls the alchemyApi implementation.server.tool('sendTransaction', { ownerScaAccountAddress: z.string().describe('The owner SCA account address.'), signerAddress: z.string().describe('The signer address to send the transaction from.'), toAddress: z.string().describe('The address to send the transaction to.'), value: z.string().optional().describe('The value of the transaction in ETH.'), callData: z.string().optional().describe('The data of the transaction.'), }, async (params) => { try { const result = await alchemyApi.sendTransaction(params); return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }], }; } catch (error) { if (error instanceof Error) { console.error('Error in sendTransaction:', error); return { content: [{ type: "text", text: `Error: ${error.message}` }], isError: true }; } return { content: [{ type: "text", text: 'Unknown error occurred' }], isError: true }; } })