Ethereum USDC transfer history API: recent ERC-20 wallet transfers
List a wallet's recent transfers of one ERC-20 token (default USDC) on Ethereum, in and out, over the last N blocks (1-2,000, default 1,000): direction, counterparty, amount and transaction, newest first, up to 50. Use to confirm a payment arrived or see what was sent; for the current balance use eth_token_balance. Malformed addresses are rejected with 400, uncharged.
When to use it
- Confirm a USDC payment arrived at an Ethereum address
- See what a wallet sent or received, newest first, with counterparty, amount and transaction
- Check another ERC-20 token by ticker or contract address
Inputs
| Name | Type | Description |
|---|---|---|
address (required) | string | 0x wallet address |
token | string | Token: a ticker such as USDT or WETH, or the 0x ERC-20 contract (default: USDC on this network) |
blocks | integer | How many recent blocks to scan (1-2000, default 1000; 2,000 blocks is about 6.7 hours on Ethereum) |
Request
Over HTTP, with a card key from /credits:
curl -H "Authorization: Bearer adt_…" "https://tools.funwords.eu/eth/token-transfers?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
Or one of your 25 free calls, no key:
curl "https://tools.funwords.eu/eth/token-transfers?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045&trial=1"
Without a key, the same URL answers 402 Payment Required with x402 and MPP terms, so an agent with a wallet pays per call in USDC (Base, Polygon, Arbitrum or Solana over x402; Base or Tempo over MPP) and retries.
Example result
{
"chain": "Ethereum",
"chainId": 1,
"address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"fromBlock": 123456290,
"toBlock": 123456789,
"count": 1,
"truncated": false,
"transfers": [
{
"block": 123456780,
"tx": "0x…",
"token": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"symbol": "USDC",
"direction": "in",
"counterparty": "0x…",
"amount": "2.5",
"raw": "2500000"
}
]
}
From an AI agent (MCP)
Add the MCP server to Claude, Cursor or any MCP client. This tool is eth_token_transfers, and the first 25 successful calls are free:
https://tools.funwords.eu/mcp
Questions
How far back does it look?
The last 1 to 2,000 blocks (default 1,000); 2,000 blocks is about 6.7 hours on Ethereum. Up to 50 transfers are returned.
Which token is the default?
USDC on Ethereum; pass token for USDT, WETH or any ERC-20 contract. For the current balance use eth_token_balance.
How do I pay?
Each successful call costs $0.01; failed calls are not charged. The first 25 calls are free. Then pay with card credits (from $1; the key goes in an Authorization header or, for clients that can only fetch a URL, as api_key= in the URL) or per call in USDC over x402 or MPP. No account is needed.