Tracing transfers
Walk the transfer graph outward from an account for a specific token
GET /api/track-transfers/ is a graph-walk endpoint: starting from one (account, token) pair, it follows every counterparty appearing in those transfers and collects their transfers too, breadth-first, until no new counterparties appear. Useful for tracing how a token moved through a cluster of related wallets.
This is not a push/webhook subscription. It's a single synchronous request that returns the full traced set. For live updates on a wallet's incoming transfers, poll /api/transfers/ or use the SDK's WebSocket client.
Request
| Parameter | Required | Notes |
|---|---|---|
account | yes | Starting wallet address. Must already exist in our indexed account table. |
token | yes | Token contract address. Must already exist in our indexed token table. |
1curl 'https://api.tokenkithq.io/api/track-transfers/?account=0x072aabc660...&token=0x053c91253...' \2 -H 'api-key: YOUR_API_KEY'Response
A flat JSON array. Each element is one transfer involving someone in the traced set, with the fields normalised to short keys (no _address suffix).
1[2 {3 "from": "0x072aabc660...",4 "to": "0x05d0f2e1...",5 "value": "1000000",6 "txhash": "0x054f510c...",7 "timestamp": "2026-01-24T23:03:20Z",8 "block": 6000181,9 "status": "ACCEPTED_ON_L2",10 "fee": "1234..."11 }12]Returns 404 if either the account or the token isn't indexed.
Cost. Each traced counterparty triggers a ClickHouse query for up to 10,000 of their transfers in this token. A heavily-connected starting wallet can fan out to thousands of accounts and take a long time to return. Scope this to known small clusters; for bulk analysis use the transfers endpoint with explicit filters.
See also
- Querying transfers - pull historical transfers with filters and pagination
- Webhooks - push delivery for transfer events as they land
- Indexer progress - see how recent the transfer log is