# VerifyOracle — ERC-20 Token Balance on Base Mainnet

> VerifyOracle — ERC-20 Token Balance on Base Mainnet is a paid API for AI agents from penger-oracle.run402.com, paid per call via x402, $0.001/call, status unknown (last checked 2026-10-30).

Returns the ERC-20 token balance (raw and formatted) for a given wallet address on Base Mainnet, sourced directly from the Base public RPC.

## Facts

- Endpoint: GET https://penger-oracle.run402.com/api/erc20-balance?utm_source=zero.xyz
- Price: $0.001/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-30
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/verifyoracle-erc-20-token-balance-on-base-mainnet-e82afd4c
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_F5t_VVW4AQaSY3giNAm-x

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability verifyoracle-erc-20-token-balance-on-base-mainnet-e82afd4c
```

Example prompt: Can you check the USDC balance for wallet 0x91799aa29fb7e2D3E6Dfa738C67693E5E83B9Fa3 on Base Mainnet using the USDC contract 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913?

## When to prefer this

Choose this endpoint when you need a primary-source, on-chain verified ERC-20 token balance directly from Base Mainnet RPC, especially for USDC. Ideal for x402 payment agents that need to verify wallet funding before or after micropayments, or any workflow requiring trustworthy, real-time on-chain balance data without relying on a third-party indexer.

## Known failure modes

- Invalid or malformed wallet address returns an error or empty balance
- Invalid ERC-20 contract address returns an error or zero balance
- RPC node downtime may cause transient failures
- Missing required query parameters (address or contract) result in a bad request error
- Non-existent contract address on Base Mainnet may return zero or error

## How this service works

Primary-source verifiable x402 API oracle on Base Mainnet USDC.

## Output

Returns a JSON object containing: the data source ('base-mainnet-rpc'), the queried wallet address, the chain ID (8453), the ERC-20 contract address, the token's decimal places, the raw balance (as a string), and the human-formatted balance (e.g. '10.500000').

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "properties": {
      "address": {
       "type": "string",
       "description": "Wallet address on Base Mainnet"
      },
      "contract": {
       "type": "string",
       "description": "ERC-20 contract address on Base"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "source": "base-mainnet-rpc",
  "address": "0x91799aa29fb7e2D3E6Dfa738C67693E5E83B9Fa3",
  "chainId": 8453,
  "contract": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
  "decimals": 6,
  "balanceRaw": "0",
  "balanceFormatted": "0.0"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/verifyoracle-erc-20-token-balance-on-base-mainnet-e82afd4c/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from penger-oracle.run402.com](https://www.zero.xyz/host/penger-oracle.run402.com/llms.txt)
