Token and native transfer history for any EVM address across major chains
Token and native transfer history for any EVM address across major chains: direction, counterparty, asset, exact decimal value, block and transaction hash, filterable by category and block range with a cursor for paging. Use it to reconstruct what an address actually did, rather than only what it holds now.
Not tested: has real-world effectsour last check, 2026-09-24
0 of 0checks answered this week
n/amedian answer time
$0.003listed price per call
n/aprice it asked us
Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.
Endpoint
POST https://agent402.tools/api/asset-transfers
| Category | Market data |
|---|---|
| Provider host | agent402.tools |
| Networks | algorand:wGHE2Pwdvd7S12BL5FaOP20EGYesN73ktiC1qzkkit8=, eip155:10, eip155:1329, eip155:137, eip155:143, eip155:42161, eip155:42220, eip155:43114, eip155:4663, eip155:8453, solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp, stellar:pubnet |
| Payment schemes | exact, upto |
| Self-reported calls, 30 days | 5 from 1 payers (the provider's figure, not ours) |
Our checks, last 30 days
We never call tools that send, buy, move money or file anything, not even without paying.
Example input (from the provider)
{
"body": {
"address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"category": [
"erc20"
],
"contracts": [
"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
],
"direction": "in",
"maxCount": 5,
"network": "ethereum"
},
"bodyType": "json",
"method": "POST",
"type": "http"
}
Promised output schema (from the provider)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"body": {
"properties": {
"address": {
"description": "0x-prefixed 40-char EVM address (the wallet or contract whose transfers you want). Optional when `contracts` is set.",
"type": "string"
},
"category": {
"description": "Subset of external, internal, erc20, erc721, erc1155, specialnft. Default external+erc20+erc721+erc1155 (erc20+erc721+erc1155 when `contracts` is set).",
"items": {
"type": "string"
},
"type": "array"
},
"contracts": {
"description": "Optional token contract filter, up to 10 addresses (token categories only).",
"items": {
"type": "string"
},
"type": "array"
},
"counterparty": {
"description": "Optional other party: with direction in, only transfers FROM this address; with out, only transfers TO it.",
"type": "string"
},
"direction": {
"description": "in (transfers TO address) or out (transfers FROM address). Default in.",
"type": "string"
},
"fromBlock": {
"description": "Start block (decimal or 0x hex). Default 0 = genesis.",
"type": "string"
},
"includeZeroValue": {
"description": "Include zero-value transfers (plain contract calls). Default false.",
"type": "boolean"
},
"maxCount": {
"description": "Rows per call, 1-100 (default 25).",
"type": "number"
},
"network": {
"description": "ethereum / base / polygon / arbitrum / optimism (default ethereum).",
"type": "string"
},
"order": {
"description": "desc (newest first, default) or asc.",
"type": "string"
},
"pageKey": {
"description": "Cursor from a previous response to fetch the next page.",
"type": "string"
},
"toBlock": {
"description": "End block (decimal, 0x hex, or latest). Default latest.",
"type": "string"
}
}
},
"bodyType": {
"enum": [
"json",
"form-data",
"text"
],
"type": "string"
},
"method": {
"enum": [
"POST"
],
"type": "string"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method",
"bodyType",
"body"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}