---
title: "The settlement feed"
method: GET
path: "/v1/transfers"
tags: ["feed"]
---

# The settlement feed

`GET /v1/transfers`

## Request

- Base URL: `https://stablescan.achivx.com`
- URL: `https://stablescan.achivx.com/v1/transfers`
- Auth: none required

Cursor-paged transfers, newest first by default. The filters below are exhaustive — an
unknown parameter is `400 unknown_param`. There is no combined "touching this address"
filter: query `payer` and `recipient` separately and merge. An entry page carries
`total`; a count that does not finish in time is `total: null` with
`total_unavailable_reason: timeout` (the rows are real, keep paging).

## Query parameters

- `chain` union: A network — number, number in a string, slug or CAIP-2 id (the slugs and CAIP-2 ids are /v1/networks' `slug` and `caip2`). The string forms are listed exactly; the server reads them leniently, as A2A and MCP do: surrounding whitespace, a leading + and leading zeros are ignored, slugs and CAIP-2 ids match in any letter case, and an empty or blank value is no chain at all (the default; /v1/freezes/acts alone refuses an empty filter). Anything else (hex, a decimal fraction, a zero-padded CAIP-2 reference, an unindexed network) is 400 invalid_chain.
  - 1 | 10 | 56 | 8453 | 42161 | 728126428 | -1
  - '1' | '10' | '56' | '8453' | '42161' | '728126428' | '-1' | 'ethereum' | 'optimism' | 'bnb-chain' | 'base' | 'arbitrum' | 'tron' | 'solana' | 'eip155:1' | 'eip155:10' | 'eip155:56' | 'eip155:8453' | 'eip155:42161' | 'eip155:728126428' | 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp'
- `payer` string
- `recipient` string
- `token` string
- `tx` string
- `block` integer
- `finality` 'final' | 'pending'
- `dir` 'older' | 'newer'
- `limit` integer
- `cursor` string
- `offset` integer

## Response `200`

One page of the settlement feed.

- TransfersPage
  - `capped` boolean
  - `chain_id` integer: Set on ?tx= lookups only: the network that was searched.
  - `chain_source` string: Set on ?tx= lookups only: explicit, or default (Base, because no chain was passed) — an empty answer with default says nothing about a hash from another network.
  - `hot_window_start` string: Instant (RFC3339) before which raw transfers were moved to the cold archive: older rows are archived, not absent, and running out of rows while paging older means the hot-window boundary, not the end of history. Absent when nothing has been offloaded.
  - `items` object[], nullable, required
    - `amount` object, required
      - `amount` string, required
      - `decimals` integer, required
      - `token` string, required
    - `block_number` integer, required
    - `block_time` string, required
    - `finality` string, required
    - `is_burn` boolean
    - `is_mint` boolean
    - `log_index` integer, required
    - `payer` string, required
    - `payer_category` string
    - `payer_is_service` boolean
    - `payer_name` string
    - `recipient` string, required
    - `recipient_category` string
    - `recipient_is_service` boolean
    - `recipient_name` string
    - `token` string
    - `tx_hash` string, required
    - `usd_amount` number, nullable
  - `next_cursor` string
  - `prev_cursor` string
  - `total` integer, nullable: Entry page (no cursor) only: the matching rows, 0 = nothing matches. null with total_unavailable_reason when the count did not finish in time — the rows are real, keep paging by next_cursor. Absent on deeper pages, which do not recount.
  - `total_unavailable_reason` string: Why total is null on an entry page; today only timeout. The page is no-store.

## Other responses

- `400`: The one error envelope. Branch on `error.code`, not on the status.
- `404`: The one error envelope. Branch on `error.code`, not on the status.
- `429`: The per-IP token bucket (20 requests/second, burst 40) is empty — wait `Retry-After`.
- `500`: The one error envelope. Branch on `error.code`, not on the status.
- `503`: The one error envelope. Branch on `error.code`, not on the status.

---

[API](https://skmtc.dev/achivx/apis/stablecoin-scanner-rest-api.md) · [All operations](https://skmtc.dev/achivx/apis/stablecoin-scanner-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/achivx/apis/stablecoin-scanner-rest-api/revisions/cbd001c8925c?raw)
