base_erc20_balance
Check a USDC or other ERC-20 token balance for a wallet on Base mainnet. Costs $0.005 USDC via x402.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | 20-byte 0x-prefixed EVM address on Base mainnet. | |
| address | Yes |
Check a USDC or other ERC-20 token balance for a wallet on Base mainnet. Costs $0.005 USDC via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | 20-byte 0x-prefixed EVM address on Base mainnet. | |
| address | Yes |
Changes observed during successful MCP inspections.
Input schema / properties / token / descriptionAdded value: +"20-byte 0x-prefixed EVM address on Base mainnet."Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds the cost detail ($0.005 USDC via x402), which is useful behavioral context beyond annotations. However, it does not disclose what happens on invalid token/address, whether the token parameter must be a known USDC address, or any rate limits. With annotations covering safety, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence with no waste. It front-loads the action and resource, then adds the cost detail. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only balance check with two parameters and no output schema, the description is mostly complete. It covers the network, the token type, and the cost. However, it doesn't mention the return format (e.g., raw integer vs. decimal-adjusted) or whether the token address must be a specific known USDC address. Given the simplicity and annotations, this is adequate but not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%: the 'token' parameter has a description, but 'address' is a $ref to token, which is confusing and lacks its own semantic description. The description clarifies that 'token' is the ERC-20 contract address and 'address' is the wallet address, adding meaning beyond the schema. However, it doesn't fully compensate for the $ref ambiguity or explain that both are on Base mainnet beyond the description's first sentence.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Check'), a specific resource ('USDC or other ERC-20 token balance'), and a specific network ('Base mainnet'). It also names the cost mechanism, which distinguishes it from generic balance tools. Among siblings like base_wallet_balance and base_total_supply, this clearly identifies the ERC-20 token balance use case.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it: when you need an ERC-20 token balance on Base mainnet. It does not explicitly state when not to use it or name alternatives like base_wallet_balance for native ETH balance or base_erc20_transfers for transfer history. The context is clear but exclusions are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.