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):

ParameterTypeDescription
block_startintegerStart block number (inclusive). Must be used with block_end.
block_endintegerEnd block number (inclusive). Must be used with block_start.
sincestringStart time (ISO 8601 or Unix timestamp). Must be used with until.
untilstringEnd time (ISO 8601 or Unix timestamp). Must be used with since.

You must provide either block_start/block_end or since/until, but not both.

Filter Parameters:

ParameterTypeRequiredDescription
tokenstringYesToken symbol (e.g., USDT) or contract address. Case-insensitive.
min_amountnumberNoMinimum transfer amount (in token units)
max_amountnumberNoMaximum transfer amount (0 = no limit)
senderstringNoFilter by sender address
receiverstringNoFilter by receiver address
involvingstringNoFilter by address involved as either sender OR receiver
involving_labelstringNoFilter where any address matches a label substring
involving_categorystringNoFilter 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_numbertokensenderreceiveramounttime
68000100USDTTQn9Y2…R7KxTVj8Rr…N3Wq50000.02025-12-01T00:05:12Z
68000105USDTTLa7Bc…P2MjTFh4Xn…K8Dp12500.02025-12-01T00:05:27Z
68000112USDTTRx9Fd…Q4HnTWm3Ks…J6Bv85000.02025-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:

ParameterTypeDefaultDescription
group_bystringtimetime or block_number
periodstring1h (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.