# Agent Data Tools: ERC-20 Token Prices via Uniswap v3

> Agent Data Tools: ERC-20 Token Prices via Uniswap v3 is a paid API for AI agents from agent-data-tools.revmesh2074.workers.dev, paid per call via x402, $0.005/call, status unknown (last checked 2026-10-20).

Fetches real-time USD prices for up to 20 ERC-20 tokens by address using Uniswap v3 spot prices on Base, Ethereum, Arbitrum, or Optimism

## Facts

- Endpoint: GET https://agent-data-tools.revmesh2074.workers.dev/price/tokens?utm_source=zero.xyz
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-20
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/agent-data-tools-erc-20-token-prices-via-uniswap-v3-899cd317
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_0FJ6U-Fypj30_ba31PzAH

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 agent-data-tools-erc-20-token-prices-via-uniswap-v3-899cd317
```

Example prompt: What's the current USD price of the token at address 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf on Base — pull the Uniswap v3 spot price?

## When to prefer this

Choose this endpoint when you need on-chain, real-time Uniswap v3 spot prices for ERC-20 tokens by contract address across Base, Ethereum, Arbitrum, or Optimism. It is ideal when you need the actual pool-backed market price with liquidity context (reserve sizes, fee tier) rather than an aggregated or CEX price. No API key is required — pay per call in USDC via x402. Prefer this over CoinGecko-style endpoints when you need direct on-chain data, support for newly listed tokens, or pool-level detail.

## Known failure modes

- Token address not found in any Uniswap v3 pool — returned in 'unpriced' array with reason
- No pool exists against USDC or WETH for requested token — unpriced with explanation
- Invalid or malformed contract address — request rejected
- More than 20 addresses supplied — request rejected
- Unsupported chain specified — validation error
- Thin liquidity flag set to true indicating price may be unreliable
- Payment failure — call not charged, HTTP 402 returned

## How this service works

USD prices for up to 20 crypto tokens in one call, by ticker (ETH, BTC, USDC, AERO…) or ERC-20 0x address, on Base, Ethereum, Arbitrum or Optimism, each from its deepest Uniswap v3 pool against USDC or WETH, read live from the chain, with pool, reserve and a thin-liquidity flag. Tokens without a pool are listed under unpriced instead of failing the call. Spot prices. Use to value a basket of tokens or refresh a watchlist in one paid call.

## Output

Returns a JSON object with the current block number, chain name and ID, ETH/USD rate, and an array of priced tokens each containing the token symbol, address, decimals, USD price, the Uniswap pool used (address, fee tier, quote reserve in tokens and USD), and whether the pool has thin liquidity. Also returns an array of unpriced tokens with the reason (e.g. no Uniswap v3 pool against USDC or WETH).

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "chain": {
   "enum": [
    "base",
    "eth",
    "arb",
    "op"
   ],
   "type": "string",
   "description": "Network: base (default), eth, arb or op"
  },
  "symbols": {
   "type": "string",
   "description": "Comma-separated tickers such as ETH,BTC,AERO (with or instead of addresses; 1-20 tokens in all)"
  },
  "addresses": {
   "type": "string",
   "description": "Comma-separated 0x ERC-20 token addresses (with or instead of symbols; 1-20 tokens in all)"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "block": {
   "type": "number"
  },
  "chain": {
   "type": "string"
  },
  "ethUsd": {
   "type": "number"
  },
  "method": {
   "type": "string"
  },
  "prices": {
   "type": "array",
   "items": {
    "type": "object",
    "properties": {
     "pool": {
      "type": "object",
      "properties": {
       "address": {
        "type": "string"
       },
       "feeTier": {
        "type": "number"
       },
       "quoteReserve": {
        "type": "number"
       },
       "quoteReserveUsd": {
        "type": "number"
       }
      }
     },
     "symbol": {
      "type": "string"
     },
     "address": {
      "type": "string"
     },
     "decimals": {
      "type": "number"
     },
     "priceUsd": {
      "type": "number"
     },
     "quotedIn": {
      "type": "string"
     },
     "thinLiquidity": {
      "type": "boolean"
     }
    }
   }
  },
  "chainId": {
   "type": "number"
  },
  "unpriced": {
   "type": "array",
   "items": {
    "type": "object",
    "properties": {
     "reason": {
      "type": "string"
     },
     "address": {
      "type": "string"
     }
    }
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/agent-data-tools-erc-20-token-prices-via-uniswap-v3-899cd317/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from agent-data-tools.revmesh2074.workers.dev](https://www.zero.xyz/host/agent-data-tools.revmesh2074.workers.dev/llms.txt)
