
What a transfer row means
One row in the live transfers table looks simple: an amount moved from one address to another. It is easy to read too much into it. This guide takes one real row apart and lists what you can and cannot conclude.
#One real row
From GET /transfers?chain=ethereum&token=USDT&min_usd=1000000&limit=1, at 2026-11-04T19:24:11Z.
{
"id": 1217,
"uid": "ethereum:0x5fe8bf27f732de57e963cb92a0f17173c1e2cdadfdabb241e7d3dc25a346c342:335",
"ts": "2026-11-04T19:12:59.000Z",
"chain": "ethereum",
"block": 26343466,
"tx": "0x5fe8bf27f732de57e963cb92a0f17173c1e2cdadfdabb241e7d3dc25a346c342",
"kind": "token",
"token": "USDT",
"token_address": "0xdAC17F958D2ee523a2206206994597C13D831ec7",
"amount": 2500000,
"usd": 2498505,
"from": "0x8c5d0c5339c282b3e7f22a207e47d73d0227cba9",
"to": "0x8b820fe67e8367d322d0c1bfc809cd9fe478df52",
"sampled": false,
"from_label": null,
"from_type": null,
"to_label": null,
"to_type": null
}#Field by field
| Field | What it is | What to keep in mind |
|---|---|---|
id | Row number in the store | Used as the page cursor. It has no meaning across restores |
uid | chain:tx:logIndex on EVM tokens | Stable. Use this to remove duplicates. Here 335 is the log index |
ts | Time in UTC | Estimated on EVM log events from the head time and a set block time. It can be off by some seconds |
block | Block or slot number | Exact |
tx | Transaction hash | One transaction can produce many rows |
kind | token or native | native means ETH on Ethereum, or SOL on Solana |
amount | Units of the token | From the log, with decimals applied |
usd | Amount times the price at indexing | Fixed once stored. Here it implies $0.999402 per USDT |
from, to | Addresses in the log | Not necessarily who started the transaction |
sampled | True on Solana | Tells you that the source is partial: sampled blocks and a wallet watch list |
from_label, to_label | Names from the label set | Null means no label, and most addresses have none |
#What the row proves
The row says that a token contract emitted a Transfer event for 2,500,000 USDT between those two addresses, in that transaction. You can confirm it on any explorer.
#What the row does not prove
A change of owner. Both addresses may belong to one party. Exchanges and funds move assets between their own wallets all day.
A trade. A transfer is not a sale. Swaps do produce transfer rows, but so do deposits, loans, and contract housekeeping.
The sender's identity. from is the address whose balance fell. A router or a contract can move tokens on behalf of someone else. Use transaction lookup to see who sent the transaction.
The whole picture of that transaction. Rows exist only for curated tokens at $100,000 or more. A transaction can move other assets that the index does not store.
#Mistakes when counting
#Summing rows as volume
GET /transfers/stats adds up stored rows. It is useful for comparing the index with itself, but it is not on-chain volume.
| Reason | Effect |
|---|---|
| Rows below $100,000 are not stored | Undercount |
| Only curated tokens are stored | Undercount |
| Solana is read only in part | Large undercount |
| Arbitrum blocks can be skipped | Undercount |
| One transfer through a router makes several rows | Overcount |
| Wrapping creates extra rows | Overcount |
#Reading a double row as two moves
On 2026-11-04, the first two Solana rows in the index were a wSOL row and a SOL row with the same USD value of $679,207. They came from one transaction: the poller reads token balances and lamport balances separately, and wrapped SOL changes both. Sum them and you count one move twice. Group by tx when you need to avoid this.
#Comparing chains by row count
In the snapshot of 2026-11-04T19:48:37Z, Base had 2,960 rows and Ethereum had 1,156, but Ethereum's USD total was about 2.8 times that of Base. A chain with cheap fees sees more transfers through contracts. Row count alone says little about value.
#Comparing with a dashboard
Numbers from another product will not match, because the scope differs. See the analytics comparison.
#How to check a row
- Open the
txin the transaction tool. Readstatus, the sender and the list oftoken_transfers. - Look up
fromandtoin the wallet explorer. Checkis_contract,tx_sentand the label. - If it matters, confirm on an explorer. The transaction tool gives a link.
- Note what remains unknown.
A native ETH row needs one more check, because the indexer does not read receipts for those. A reverted transaction can appear as a row. The status field on the transaction lookup settles it.
A row is a fact about a public event. It is not a signal, and it is not financial advice.