check-balance
Check the ETH balance of an Ethereum address on chain-id 175. Enter a valid 0x format address to view current holdings.
Instructions
Check the ETH balance of an Ethereum address
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Ethereum address (0x format) |
Implementation Reference
- src/server.ts:158-172 (handler)Executes the check-balance tool: validates address input, fetches balance from service, formats and returns response.if (name === "check-balance") { try { const { address } = AddressSchema.parse(args); const balance = await etherscanService.getAddressBalance(address); const response = `Address: ${balance.address}\nBalance: ${balance.balanceInEth} ETH`; return { content: [{ type: "text", text: response }], }; } catch (error) { if (error instanceof z.ZodError) { throw new Error(`Invalid input: ${error.errors.map(e => e.message).join(", ")}`); } throw error; } }
- src/server.ts:33-35 (schema)Zod schema for validating the Ethereum address input parameter.const AddressSchema = z.object({ address: z.string().regex(/^0x[a-fA-F0-9]{40}$/, 'Invalid Ethereum address format'), });
- src/server.ts:55-69 (registration)Registers the check-balance tool in the listTools response with description and input schema.{ name: "check-balance", description: "Check the ETH balance of an Ethereum address", inputSchema: { type: "object", properties: { address: { type: "string", description: "Ethereum address (0x format)", pattern: "^0x[a-fA-F0-9]{40}$" }, }, required: ["address"], }, },
- Fetches the ETH balance for a given address using EtherscanProvider, validates address, converts wei to ETH.async getAddressBalance(address: string): Promise<{ address: string; balanceInWei: bigint; balanceInEth: string; }> { try { // Validate the address const validAddress = ethers.getAddress(address); // Get balance in Wei const balanceInWei = await this.provider.getBalance(validAddress); // Convert to ETH const balanceInEth = ethers.formatEther(balanceInWei); return { address: validAddress, balanceInWei, balanceInEth }; } catch (error) { if (error instanceof Error) { throw new Error(`Failed to get balance: ${error.message}`); } throw error; } }