---
title: "Get wallet-wide transaction history"
method: GET
path: "/v2/transaction-history"
tags: ["Transaction History"]
---

# Get wallet-wide transaction history

`GET /v2/transaction-history`

## Request

- Base URL: `https://api.peer.xyz`
- URL: `https://api.peer.xyz/v2/transaction-history`
- Auth: HTTP bearer

Returns native and ERC20 transfers across Base, BNB Chain and Robinhood Chain for the authenticated wallet, newest first. Numeric transfer fields are decimal strings. The cursor is base64url of an exclusive millisecond timestamp. Pages target limit stored rows without splitting timestamp groups: a trailing partial group is deferred, or an oversized first group is returned whole. Sources are reconciled before ignored orchestrator/relay transfers are removed. The cursor advances over the last scanned timestamp group, so a page can be short or empty while nextCursor is non-null. Continue until nextCursor is null.

## Query parameters

- `limit` string: Target stored-row count (1-100); timestamp groups are never split, so pages may be shorter or longer
- `cursor` string: Exclusive timestamp cursor: base64url-encoded millisecond timestamp from the previous page

## Response `200`

Transaction history retrieved

- object
  - `success` boolean, required
  - `message` string, required
  - `responseObject` object
    - `walletAddress` string, required
    - `transfers` object[], required
      - `chainId` string, required
      - `chain` 'base' | 'bnb' | 'robinhood', required
      - `assetType` 'ERC20' | 'NATIVE', required
      - `tokenContract` string, required
      - `symbol` string, nullable, required
      - `decimals` string, required
      - `txHash` string, required
      - `blockNumber` string, required
      - `timestamp` string, date-time, required
      - `from` string, required
      - `to` string, required
      - `type` 'SEND' | 'DEPOSIT', required: Transfer direction from the authenticated wallet perspective
      - `amountRaw` string, required
      - `source` string, required
    - `nextCursor` string, nullable, required
  - `statusCode` number, required
  - `errorCode` string

## Other responses

- `400`: Invalid limit or cursor
- `401`: Missing or invalid Privy JWT
- `429`: Too many transaction history requests, please try again later.

## Changes

- **2026-09-13** `8d9a34e0e5d2`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/peer/apis/swagger-api/changes/v2/transaction-history/get.md)

---

[API](https://skmtc.dev/peer/apis/swagger-api.md) - [All operations](https://skmtc.dev/peer/apis/swagger-api/llms.txt) - [OpenAPI document](https://skmtc.dev/peer/apis/swagger-api/revisions/ef91955315e2?raw)
