Skip to main content
GET
GET /v1/wallet/transfers · 1 credit Token in/out history of a wallet, newest first: deposits, withdrawals, plain transfers - timestamp (ms), token, amount, direction, counterparty, tx hash. Paginate with the opaque cursor from meta.nextCursor: exact pagination that never skips or repeats a transfer. The reconciliation primitive next to /v1/wallet/trades.
Pagination. A page scans up to limit transactions of the wallet, newest first, and serves their token movements: a transaction that moved several tokens adds several rows, a transaction that only swapped adds none, so a page can hold fewer or more than limit rows while meta.hasMore is true. Keep passing meta.nextCursor until hasMore is false; cursors never skip or repeat a transfer, and hasMore: false means the wallet’s history is fully served. meta.nextCursor is present while meta.hasMore is true.
Time window and order. from and to bound the history in unix milliseconds, both inclusive; order is desc (newest first, default) or asc. They combine with cursor: keep the same from, to and order on every page of a walk. meta.oldestAt is the oldest timestamp of the page.
direction is in or out; counterparty is the other side of the transfer (the zero address for a mint or a burn). Amounts are strings for precision, in token units; amountUsd is valued at transfer time and null when no price is known for that token at that moment. EVM chains serve the last 90 days of token movements.

Authorizations

Authorization
string
header
required

Your raw API key (not needed on the demo server).

Query Parameters

chain
string
required

Public chain id - evm:<id> or solana.

wallet
string
required

Wallet address.

limit
integer
default:50

Transactions scanned per page (default 50, max 100). A page holds the token movements of those transactions: fewer or more rows than limit.

Required range: 1 <= x <= 100
cursor
string

Opaque resume token from meta.nextCursor - exact pagination, no skip or duplicate.

from
integer

Inclusive lower time bound, unix MILLISECONDS. A value in seconds is rejected (400).

Required range: x >= 0
to
integer

Inclusive upper time bound, unix MILLISECONDS. A value in seconds is rejected (400).

Required range: x >= 0
order
enum<string>
default:desc

Sort order by time: desc (newest first, default) or asc. Keep the same order on every page of a walk.

Available options:
asc,
desc

Response

200

Standard { data, meta } envelope.