# ERC-20 Transfers

> ERC-20 Transfers is a paid API for AI agents from bess-x402.onrender.com, paid per call via x402, $0.003/call, status unknown (last checked 2026-10-30).

Fetches recent ERC-20 Transfer events for a token address, wallet address, or both over the last N blocks (up to 5,000) with sender, receiver, and amount.

## Facts

- Endpoint: GET https://bess-x402.onrender.com/v1/evm/erc20-transfers?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/erc-20-transfers-7f88020b
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_oSeXKLzwxDQ7znhcf3433

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 erc-20-transfers-7f88020b
```

Example prompt: Can you pull the last 500 USDC transfers involving my wallet 0xAbC...123 on Base over the past 2000 blocks so I can confirm a payment I'm expecting came through?

## When to prefer this

Use this endpoint when you need to retrieve historical ERC-20 transfer events for a specific wallet or token on EVM-compatible chains (Ethereum, Base, Arbitrum, Optimism, Polygon) within a recent block window. It is ideal for payment confirmation, whale watching, and treasury auditing. Prefer this over on-chain indexers when you need a lightweight, pay-per-call lookup without managing your own infrastructure.

## Known failure modes

- Invalid or non-checksummed wallet/token address returns an error
- Unsupported chain name returns validation error
- blocks parameter exceeding 5000 is rejected
- limit out of 1-500 range is rejected
- No transfers found returns an empty list
- RPC node timeout for very large block ranges

## How this service works

Recent ERC-20 Transfer events for a token, a wallet (in and out) or both over the last N blocks (max 5,000), with sender, receiver and amount in token units. Use to confirm incoming payments or watch whale moves.

## Output

A list of ERC-20 Transfer events, each containing the sender address, receiver address, token amount in token units, token contract address, transaction hash, block number, and timestamp, filtered by the specified wallet, token, chain, and block range.

## 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",
      "HEAD",
      "DELETE"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [],
     "properties": {
      "chain": {
       "type": "string",
       "description": "ethereum, base, arbitrum, optimism or polygon"
      },
      "limit": {
       "type": "integer",
       "description": "Maximum number of results (1-500)"
      },
      "token": {
       "type": "string",
       "description": "Token address or USDC/USDT/DAI"
      },
      "blocks": {
       "type": "integer",
       "description": "How many recent blocks (1-5000)"
      },
      "wallet": {
       "type": "string",
       "description": "Wallet address"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/erc-20-transfers-7f88020b/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from bess-x402.onrender.com](https://www.zero.xyz/host/bess-x402.onrender.com/llms.txt)
