Description
Retrieves ERC-20 transfer events only. Each record is a single Transfer(address,address,uint256) log. Use this endpoint for fungible token flows, wallet balances, and compliance when you do not need native or NFT transfers.
Parameters
Target EVM network. See the Chain enumeration for supported values.
Range Filters (mutually exclusive)
Starting block number (inclusive) for the query. Use with to_block.
Ending block number (inclusive) for the query. Use with from_block.
Starting timestamp (ISO-8601). If it falls between blocks, the next block after this timestamp is used. Use with to_timestamp.
Ending timestamp (ISO-8601). If it falls between blocks, the last block before this timestamp is used. Use with from_timestamp.
Validation rule:
You must provide either a block range or a time range.
Providing both results in HTTP 400.
Providing none results in HTTP 400.
Optional Filters
Filter by sender address (hex string, 20 bytes, no 0x prefix).
Filter by recipient address (hex string, 20 bytes, no 0x prefix).
Filter by ERC-20 contract address (hex string, 20 bytes, no 0x prefix).
Recommended default 250; maximum 1000 to stay under ~10 MB responses.
Pagination cursor from a prior call.
Response Fields
Echo of request metadata applied to the response.
EVM chain ID echoed from the request.
Normalized block/timestamp bounds derived from the request.
Filter parameters echoed from the request (addresses, token_address, pagination state, etc.).
Data
Array of token transfer records, ordered by block and position.
Surrogate primary key for the transfer record (auto-generated).
Chain ID for the transfer record.
Block where the transfer occurred.
UTC timestamp of the block (ISO-8601).
Transaction index within the block.
Log index within the transaction receipt; null for native or internal tx transfers.
Trace address for internal tx transfers (e.g. "0", "0.1"); null for log-based transfers.
Sender address (hex string, 20 bytes, no 0x prefix).
Recipient address (hex string, 20 bytes, no 0x prefix).
Token contract address (hex string, 20 bytes); null for native ETH.
Raw amount in smallest unit (wei for native, raw uint256 for ERC-20/1155). String to preserve precision.
Decimal-adjusted amount; null if decimals unknown or NFT (ERC-721).
Token ID for ERC-721 and ERC-1155; null for native/ERC-20. String to preserve precision.
Always erc20 for this endpoint.
BlockDB lineage identifier (hex string, no 0x prefix).
BlockDB lineage identifiers of the parent records.
Record creation timestamp, e.g. "2025-11-11T18:42:15.123Z".
Last update timestamp in the same format.
Envelope Fields
Cursor token for pagination.
Number of records returned in data.
curl -X POST "https://api.blockdb.io/v1/evm/transfers/erc20-transfers" \
-H "Authorization: Bearer $BLOCKDB_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"chain_id": 1,
"from_block": 12345678,
"to_block": 12345999,
"from_address": "0000000000000000000000000000000000000000",
"to_address": "0000000000000000000000000000000000000001",
"token_address": "c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"limit": 250,
"cursor": null
}'
{
"meta": {
"chain_id": 1,
"request_window": {
"from_block": 12345678,
"to_block": 12345999,
"from_timestamp": "2025-10-29T00:00:00Z",
"to_timestamp": "2025-11-11T00:00:00Z"
},
"filters": {
"limit": 250,
"cursor": null
}
},
"data": [
{
"id": 1000001,
"chain_id": 1,
"block_number": 12345680,
"block_time": "2025-10-29T00:01:23Z",
"tx_index": 5,
"log_index": 2,
"trace_address": null,
"from_address": "0000000000000000000000000000000000000000",
"to_address": "0000000000000000000000000000000000000001",
"token_address": "c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"amount_raw": "1000000000000000000",
"amount_adj": "1.0",
"token_id": null,
"transfer_type": "erc20",
"_tracing_id": "0304000000000000000000000000000000000001",
"_parent_tracing_ids": [
"0102000000000000000000000000000000000001",
"0201000000000000000000000000000000000001"
],
"_created_at": "2025-11-11T18:42:15.123Z",
"_updated_at": "2025-11-11T18:42:15.123Z"
}
],
"cursor": "next_page_cursor",
"count": 1
}