erc1155_balanceOf
Check the balance of a specific ERC1155 token for a given owner address on the Ethereum blockchain. Query token holdings by providing contract address, owner address, and token ID.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| contractAddress | Yes | The address of the ERC1155 contract | |
| tokenAddress | No | DEPRECATED: Use contractAddress instead. The address of the ERC1155 contract | |
| ownerAddress | Yes | The address to check balance for | |
| tokenId | Yes | The ID of the token to query | |
| provider | No | Optional. Either a network name or custom RPC URL. Use getAllNetworks to see available networks and their details, or getNetwork to get info about a specific network. You can use any network name returned by these tools as a provider value. | |
| chainId | No | Optional. The chain ID to use. |
Implementation Reference
- src/tools/erc1155.ts:55-87 (handler)The handler function that implements the core logic for the erc1155_balanceOf tool. It maps deprecated parameters, fetches the balance using ethersService, and returns a formatted response or error.async (params) => { // Map deprecated parameters const mapped = mapParameters(params); try { const contractAddr = mapped.contractAddress || params.tokenAddress; if (!contractAddr) { throw new Error('Either contractAddress or tokenAddress must be provided'); } const balance = await ethersService.getERC1155Balance( contractAddr, mapped.ownerAddress, params.tokenId, mapped.provider, mapped.chainId ); return { content: [{ type: "text", text: `Balance of token ${params.tokenId} for ${mapped.ownerAddress} is ${balance}` }] }; } catch (error) { return { isError: true, content: [{ type: "text", text: `Error getting ERC1155 balance: ${error instanceof Error ? error.message : String(error)}` }] }; } }
- src/tools/erc1155.ts:47-54 (schema)Zod input schema for the erc1155_balanceOf tool parameters, including contract address, owner, token ID, provider, and chain ID.{ contractAddress: contractAddressSchema, tokenAddress: tokenAddressSchema.optional(), // Deprecated ownerAddress: addressSchema.describe("The address to check balance for"), tokenId: tokenIdSchema, provider: providerSchema, chainId: chainIdSchema },
- src/tools/erc1155.ts:46-88 (registration)Registration of the erc1155_balanceOf tool on the MCP server within the registerERC1155Tools function."erc1155_balanceOf", { contractAddress: contractAddressSchema, tokenAddress: tokenAddressSchema.optional(), // Deprecated ownerAddress: addressSchema.describe("The address to check balance for"), tokenId: tokenIdSchema, provider: providerSchema, chainId: chainIdSchema }, async (params) => { // Map deprecated parameters const mapped = mapParameters(params); try { const contractAddr = mapped.contractAddress || params.tokenAddress; if (!contractAddr) { throw new Error('Either contractAddress or tokenAddress must be provided'); } const balance = await ethersService.getERC1155Balance( contractAddr, mapped.ownerAddress, params.tokenId, mapped.provider, mapped.chainId ); return { content: [{ type: "text", text: `Balance of token ${params.tokenId} for ${mapped.ownerAddress} is ${balance}` }] }; } catch (error) { return { isError: true, content: [{ type: "text", text: `Error getting ERC1155 balance: ${error instanceof Error ? error.message : String(error)}` }] }; } } );