TRC20 Token Transfers
Track transfers of TRC20 tokens including stablecoins (USDT, USDC) and other tokens on the Tron blockchain.
Endpoint: GET /v1/tron/trc20/events/transfer
Range Parameters (one pair required):
| Parameter | Type | Description |
|---|---|---|
block_start | integer | Start block number (inclusive). Must be used with block_end. |
block_end | integer | End block number (inclusive). Must be used with block_start. |
since | string | Start time (ISO 8601 or Unix timestamp). Must be used with until. |
until | string | End time (ISO 8601 or Unix timestamp). Must be used with since. |
You must provide either
block_start/block_endorsince/until, but not both.
Filter Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
token | string | Yes | Token symbol (e.g., USDT) or contract address. Case-insensitive. |
min_amount | number | No | Minimum transfer amount (in token units) |
max_amount | number | No | Maximum transfer amount (0 = no limit) |
sender | string | No | Filter by sender address |
receiver | string | No | Filter by receiver address |
involving | string | No | Filter by address involved as either sender OR receiver |
involving_label | string | No | Filter where any address matches a label substring |
involving_category | string | No | Filter where any address matches a category |
Example: USDT transfers on Tron
curl -H "X-API-Key: $API_KEY"
"https://api.defistream.dev/v1/tron/trc20/events/transfer?since=2025-12-01T00:00:00Z&until=2025-12-02T00:00:00Z&token=USDT"
-o tron_usdt.csv Sample Results:
| block_number | token | sender | receiver | amount | time |
|---|---|---|---|---|---|
| 68000100 | USDT | TQn9Y2…R7Kx | TVj8Rr…N3Wq | 50000.0 | 2025-12-01T00:05:12Z |
| 68000105 | USDT | TLa7Bc…P2Mj | TFh4Xn…K8Dp | 12500.0 | 2025-12-01T00:05:27Z |
| 68000112 | USDT | TRx9Fd…Q4Hn | TWm3Ks…J6Bv | 85000.0 | 2025-12-01T00:05:48Z |
Aggregate Queries
Bucket TRC20 transfers by time or block number to get totals per window instead of individual events.
Endpoint: GET /v1/tron/trc20/events/transfer/aggregate
Accepts all filters from the raw endpoint (including token, sender, receiver, involving, min_amount, max_amount) plus:
| Parameter | Type | Default | Description |
|---|---|---|---|
group_by | string | time | time or block_number |
period | string | 1h (time) / 1000 (block) | Time buckets: 1m, 5m, 30m, 1h, 1d, 1w. Block buckets: integer block count. |
Example: Hourly USDT volume on Tron
curl -H "X-API-Key: $API_KEY"
"https://api.defistream.dev/v1/tron/trc20/events/transfer/aggregate?block_start=80000000&block_end=80001000&token=USDT&group_by=time&period=1h" Response:
{
"status": "success",
"events": [
{"time": "2026-02-09T19:00:00Z", "token": "USDT", "agg_amount": 382910412.55, "count": 84219},
{"time": "2026-02-09T20:00:00Z", "token": "USDT", "agg_amount": 215607901.12, "count": 49183}
],
"count": 2
} Each row contains {time | block_number, token, agg_amount, count} where agg_amount is the SUM of transfer amounts in the bucket and count is the number of events. Rows are automatically grouped by token.
Schema discovery: GET /v1/tron/trc20/aggregate_schema returns available aggregatable columns and group columns.
Range limits and cost: Same as the raw endpoint (JSON/CSV: 10k blocks or 1 day; Parquet: 100k blocks or 7 days). Aggregate queries cost block_range × 0.5 (min 100).
Quota & Limits
Tron endpoints use a time-based quota model similar to exchange data endpoints.
Check response headers X-RateLimit-Remaining and X-Request-Cost to monitor usage.