---
title: "Get Historical Transactions for an Address (Beta)"
method: POST
path: "/api/v1beta1/profiler/address/historical-transactions"
tags: ["Profiler"]
---

# Get Historical Transactions for an Address (Beta)

`POST /api/v1beta1/profiler/address/historical-transactions`

**Beta — subject to breaking changes.**

Returns the 20 most recent token transfer transactions for a wallet address as
of a historical snapshot date, with temporally-correct counterparty labels.

**Key differences from `/profiler/address/transactions`:**
- Accepts an explicit `as_of_date` (no rolling default)
- Counterparty labels resolved from label history at `as_of_date` (no forward-looking bias)
- Limited to ethereum, base, bnb, and solana
- Capped at 20 results per query

## Request body

- ProfilerAddressHistoricalTransactionsRequest — Request model for the profiler historical address transactions endpoint. Returns the 20 most recent token transfer transactions for a wallet address as of a given historical date, with temporally-correct counterparty labels.
  - `address` string, required — Wallet address (EVM hex or Solana base58)
  - `chain` 'all' | 'base' | 'bnb' | 'ethereum' | 'mantra' | 'solana', required — Chains supported for Profiler Historical Token Balances endpoint.
  - `as_of_date` string, date, required — Historical snapshot date — only transactions on or before this date are returned, with labels resolved as of this date.
  - `hide_spam_token` boolean — Filter out tokens flagged as spam by Nansen
  - `pagination` PaginationRequest — Pagination parameters for API requests.
    - `page` integer — Page number (1-based)
    - `per_page` integer — Number of records per page (max 1000)
  - `apply_blacklist_filter` boolean — When True, exclude blacklisted addresses from the results. Defaults to True.

## Response `200`

Historical address transaction data

- ProfilerAddressHistoricalTransactionsResponse — Response model for the profiler historical address transactions endpoint.
  - `pagination` PaginationInfo, required — Pagination information for API responses.
    - `page` integer — Current page number
    - `per_page` integer — Number of records per page
    - `is_last_page` boolean — Whether this is the last page
  - `data` ProfilerAddressHistoricalTransactionsItem[], required — List of historical transaction records ordered by block_timestamp DESC.
    - `source_type` string, required — Always 'transfer'. Mirrors the production schema.
    - `method` string, required — Transaction method name. Falls back to 'received'/'sent' for single-transfer transactions.
    - `transaction_hash` string, required — Transaction hash in human-readable format (0x-prefixed hex on EVM, base58 on Solana)
    - `tokens_received` unknown[] — Array of token transfers received in this transaction. Each entry is a tuple of (token_symbol, token_amount, token_price_usd, token_value_usd, token_address, chain, from_address, to_address, from_address_label, to_address_label). Labels are resolved as of as_of_date.
      - unknown
    - `tokens_sent` unknown[] — Array of token transfers sent in this transaction. Same tuple shape as tokens_received with negative amounts.
      - unknown
    - `volume_usd` number — Transaction volume in USD computed from historical prices.
    - `block_timestamp` string, required — Block timestamp of the transaction (ISO format).
    - `chain` string, required — Blockchain identifier for this row.

## Other responses

- `400` — Bad Request - Invalid request parameters or malformed request
- `401` — Authentication error - No API key found in request
- `402` — Payment Required - This endpoint supports pay-per-request via x402 and MPP. x402 responses advertise payment options in `Payment-Required`; MPP responses advertise a fresh `WWW-Authenticate: Payment ...` challenge. Successful MPP responses may include `Payment-Receipt`.
- `403` — Forbidden - User does not have required subscription tier or has exceeded credit limit
- `404` — Not Found - The requested resource was not found
- `422` — Validation error - Invalid request parameters
- `429` — Too Many Requests - Rate limit exceeded
- `500` — Internal Server Error - An unexpected error occurred

---

[API](https://skmtc.net/nansen/apis/nansen-api.md) · [All operations](https://skmtc.net/nansen/apis/nansen-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/nansen/nansen-api/revisions/02a4d2e7d827/schema)
