---
title: "Token Transfer Activity Summary"
method: GET
path: "/gateway/v1/token/transfer-stats"
tags: ["Token"]
---

# Token Transfer Activity Summary

`GET /gateway/v1/token/transfer-stats`

Aggregate transfer-activity summary for a token over a window — total transfers, unique senders/receivers, total amount, first/last activity, and an optional daily series (`include=series`).

**Lookup:** `address` (token contract) + `chain`.

**Related:** per-counterparty ranking → `/v1/token/transfer-counterparties`; raw rows → `/v1/token/transfers`.

**Chains:** Ethereum, Base, BSC, Arbitrum, Tron · **Refresh:** ~24h · USD value lags ~3 days (see `enriched_ratio`).

## Query parameters

- `address` string, required — Token CONTRACT ADDRESS (0x-hex for EVM; Tron accepts base58 `T...` or 0x-hex). Not a ticker — resolve a symbol via GET /v1/search/token?q={symbol}&chain={chain} and use a returned address whose chain is supported by this endpoint.
- `chain` 'ethereum' | 'base' | 'bsc' | 'arbitrum' | 'tron', required — Chain the token contract is deployed on.
- `time_range` '1d' | '7d' | '30d' | '90d' — Look-back window (hard 90d cap).
- `include` string — Comma-separated extras. `series` adds a daily trend breakdown (volume only).

## Response `200`

OK

- TransferStatsResponse
  - `$schema` string, uri — A URL to the JSON Schema for this object.
  - `data` TransferStatsBody, required
    - `enriched_ratio` number, double — Fraction of transfers with a USD price (0..1). Low/zero on recent windows where USD pricing lags ~3 days.
    - `first_transfer_at` integer, required — Unix seconds of the first transfer in the window (0 if none).
    - `last_transfer_at` integer, required — Unix seconds of the last transfer in the window (0 if none).
    - `series` TransferSeriesPoint[], nullable — Daily breakdown, newest first. Present only when include=series.
      - `amount` string, required — Decimal-adjusted token amount transferred on this day.
      - `amount_usd` number, double — Summed USD value for the day. Absent when the day is not yet USD-priced.
      - `date` integer, required — Start-of-day Unix seconds (UTC).
      - `enriched_ratio` number, double — Fraction of the day's transfers with a USD price (0..1).
      - `transfer_count` integer, required — Transfers on this day.
    - `total_amount` string, required — Decimal-adjusted total token amount transferred.
    - `total_amount_usd` number, double — Summed USD value. Absent when nothing in the window is USD-priced.
    - `total_transfers` integer, required — Total transfers in the window.
    - `unique_receivers` integer, required — Approximate distinct receivers (uniq, ~1% error).
    - `unique_senders` integer, required — Approximate distinct senders (uniq, ~1% error).
  - `meta` TransferStatsMeta, required
    - `cached` boolean, required — Whether this response was served from cache
    - `credits_used` integer, required — Credits deducted for this request
    - `empty_reason` string — Hint explaining why the data object is empty, when applicable
    - `enriched_ratio` number, double — Fraction of transfers with a USD price (0..1). Low/zero means USD-value fields are partial.

## Other responses

- `default` — Error

---

[API](https://skmtc.dev/asksurf/apis/asksurf-public-rest-api.md) · [All operations](https://skmtc.dev/asksurf/apis/asksurf-public-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/asksurf/asksurf-public-rest-api/revisions/498f461e81c4/schema)
