Skip to main content
API referenceChain

Chain Transfer Pairs

Last updated

GET
/api/v1/chain/transfer-pairs

Fetch network-wide directed native-TAO transfer-pair analytics over a 7d or 30d window: total pairable Balances.Transfer volume + count, unique sender/receiver pairs, returned pair count, top-pair share, and top sender -> receiver pairs ranked by ?sort=volume or ?sort=count (?limit, <=100). Computed live from the account_events Transfer feed; schema-stable zeros + an empty pairs list when cold. Pass ?format=csv to download the ranked pairs as CSV (the totals + top_pair_share stay JSON-only).

Query Parameters

window?string

Trailing lookback window the response is computed over, ending at the most recent data point rather than at today. Accepts 7d, 30d. A longer window is not a superset of a shorter one -- rankings and rates are recomputed over the whole window, not summed.

Default"7d"

Value in

  • "7d"
  • "30d"
limit?integer

Maximum number of rows to return in one page (at most 100). A larger value, or a non-positive one, is rejected with 400 invalid_query -- so a short page means the result set is exhausted, not that the server quietly capped you (#9916). Omitted, the server applies 25.

Range1 <= value <= 100
Default25
sort?string

Column to rank the result by; pair with order for direction. Options are per-tool; see this parameter's enum. Defaults to volume.

Default"volume"

Value in

  • "volume"
  • "count"
format?string

Response format override. Use csv to download the route rows as text/csv; json keeps the default response envelope.

Default"json"

Value in

  • "json"
  • "csv"

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/api/v1/chain/transfer-pairs"
{  "data": {    "observed_at": "2026-06-01T00:00:00.000Z",    "pair_count": 1,    "pairs": [      {        "from": "5G9hfkx9wGB1CLMT9WXkpHSAiYzjZb5o1Boyq4KAdDhjwrc5",        "last_block": 5000000,        "last_observed_at": "2026-06-01T00:00:00.000Z",        "to": "5D7FVSM1fJM56zHJuMBuQ5LH32mkLni52JonoeppFrezvyHy",        "transfer_count": 5,        "volume_tao": 80      }    ],    "schema_version": 1,    "sort": "volume",    "top_pair_share": 0.8,    "total_volume_tao": 100,    "transfer_count": 10,    "unique_pairs": 2,    "window": "30d"  },  "meta": {    "artifact_path": "example",    "cache": "short",    "contract_version": "2026-06-29.1",    "generated_at": "2026-06-01T00:00:00.000Z",    "observed_through": "2026-06-01T00:00:00.000Z",    "pagination": {      "collection": "example",      "cursor": 1,      "limit": 1,      "next_cursor": 1,      "order": "asc",      "returned": 1,      "sort": "example",      "total": 1    },    "published_at": "2026-06-01T00:00:00.000Z",    "source": "live-cron-prober",    "stale_contract": {      "built_under": "example",      "live": "example"    }  },  "ok": true,  "schema_version": 1}