Skip to main content
Glama

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
NameRequiredDescriptionDefault
addressYesEthereum address (0x format)

Implementation Reference

  • 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;
      }
    }
  • 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;
      }
    }

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/otc-ai/mcp-otc'

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