# Token Oracle – Token Contract Verifier

> Token Oracle – Token Contract Verifier is a paid API for AI agents from token-oracle.fly.dev, paid per call via x402, $0.003/call, status unknown (last checked 2026-10-30).

Verifies a token contract address on a given chain by checking it's real, matches the claimed symbol, and that supply figures match CoinGecko — catching hallucinated addresses, impersonation, and tokenomics errors.

## Facts

- Endpoint: POST https://token-oracle.fly.dev/verify?utm_source=zero.xyz
- Price: $0.003/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-30
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/token-oracle-token-contract-verifier-23e4872a
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_GgRIRcfv8hjbBPL95UneX

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 token-oracle-token-contract-verifier-23e4872a -d '<json body>'
```

Example prompt: Before I trade against it, can you verify that the contract address 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 on Ethereum is actually USDC and that its supply figures match CoinGecko?

## When to prefer this

Choose this endpoint when an agent needs to confirm a token contract address is legitimate before executing a trade, writing code against a contract, or publishing tokenomics data — especially when the address came from an LLM output, user input, or an untrusted third party. It uniquely combines on-chain symbol matching with an independent CoinGecko supply cross-check in a single call, making it superior to a plain on-chain lookup when detecting impersonation or hallucination is the primary concern. Supports Ethereum, Base, Arbitrum, Polygon, Optimism, Avalanche, and BSC.

## Known failure modes

- Contract address does not exist on the specified chain — returns invalid/not found
- Symbol mismatch detected — address exists but on-chain symbol differs from expectedSymbol
- CoinGecko has no record of the token — cannot cross-validate supply figures
- Unsupported chain passed — returns validation error for chain not in enum
- Malformed address format — returns parse error before any on-chain lookup
- CoinGecko API unavailable — partial result returned without supply cross-check
- Rate limit or payment failure — 402 or 429 response with no verification data

## How this service works

Checks whether a token contract address is real, matches its claimed symbol, and whether its supply figures match an independent source (CoinGecko) — before trading, coding, or reporting against it. Catches hallucinated/wrong addresses, address-poisoning impersonation, and tokenomics hallucination.

## Output

Returns whether the contract address exists and is active on the specified chain, whether its on-chain symbol matches the expected symbol provided, and whether its supply figures are consistent with CoinGecko's independent data — plus flags for hallucinated/wrong addresses, address-poisoning impersonation attempts, and tokenomics discrepancies.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "chain": {
   "enum": [
    "ethereum",
    "base",
    "arbitrum",
    "polygon",
    "optimism",
    "avalanche",
    "bsc"
   ],
   "type": "string"
  },
  "address": {
   "type": "string"
  },
  "expectedSymbol": {
   "type": "string"
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/token-oracle-token-contract-verifier-23e4872a/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from token-oracle.fly.dev](https://www.zero.xyz/host/token-oracle.fly.dev/llms.txt)
