Querying transfers
Filter the transfer event log
Every ERC20, ERC721, and ERC1155 transfer Starknet has produced, indexed and ready to query.
GET /api/transfers/
Warning
You need at least one filter. Calling /api/transfers/ with nothing returns 400 Bad Request with an allowed_filters array. Otherwise you'd be asking for hundreds of millions of rows.
Query parameters
| Parameter | Type | Aliases | What it does |
|---|---|---|---|
account | address | account_address | Matches from_address OR to_address |
from_account | address | from_address | Sender only |
to_account | address | to_address | Receiver only |
token | address | token_address | A specific token contract |
block | integer | - | A specific block number |
txhash | hash | - | A specific transaction |
search | string | - | Match across from, to, token, txhash |
page | integer | - | 1-indexed, default 1 |
limit | integer | - | Page size, default 25, max 100 |
Example
Response
json
1{2 "links": { "next": "?page=2&limit=5", "previous": null },3 "count": 12,4 "total_pages": 3,5 "results": [6 {7 "from_address": "0x0729b73829c162f5b915270114be6cbf734bd1ef9136405f699a7398a8a7e1e9",8 "to_address": "0x0000000000000000000000000000000000000000000000000000000000000000",9 "token_address":"0x053c91253bc9682c04929ca02ed00b3e423f6710d2ee7e0d5ebb06f3ecf368a8",10 "token_symbol": "USDC",11 "token_name": "USD Coin",12 "token_decimals": 6,13 "value": "1000000",14 "nft_token_id": "",15 "txhash": "0x054f510c30dcc6694a57c224cb8a57d0cab3a80172d065ab9db1b6f74fdaca0f",16 "timestamp": "2026-01-24T23:03:20Z",17 "block": 6000181,18 "status": "ACCEPTED_ON_L2",19 "fee": "12345678901234",20 "fee_unit": "0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7",21 "event_index": 022 }23 ]24}Info
event_index lets you tell apart multiple transfers in the same block. Two transfers can share (block_number, time) but never (block_number, event_index). Use that pair as a stable identifier.
Address normalization
You can pass any common 0x form. The API normalizes for you. Responses come back in the canonical lowercase, padded form (0x + 64 hex chars).
Common patterns
See also
- Tracking transfers - real-time push for addresses you care about
- Balance history - turn the transfer log into balances at any past time