---
title: "Get transaction history"
method: GET
path: "/v4/data/transaction/history"
tags: ["Transactions API"]
---

# Get transaction history

`GET /v4/data/transaction/history`

/v4/data/transaction/history

**20 credits per API call**

Get transaction history on the following blockchains:

*   Ethereum - ethereum-mainnet / ethereum-sepolia
*   Base - base-mainnet / base-sepolia
*   Arbitrum - arb-one-mainnet / arb-testnet
*   BNB (Binance) Smart Chain - bsc-mainnet / bsc-testnet
*   Polygon - polygon-mainnet / polygon-amoy
*   Optimism - optimism-mainnet / optimism-testnet
*   Berachain - berachain-mainnet
*   Unichain - unichain-mainnet / unichain-sepolia
*   Monad - monad-mainnet / monad-testnet
*   Celo - celo-mainnet / celo-testnet
*   Chiliz - chiliz-mainnet
*   Tezos - tezos-mainnet
*   Moca Chain - mocachain-devnet
*   Avalanche - avax-mainnet / avax-testnet
*   Gnosis - gno-mainnet / gno-testnet
*   zkSync - zksync-mainnet / zksync-testnet
*   Rootstock - rsk-mainnet / rsk-testnet
*   Ethereum Classic - ethereum-classic-mainnet / ethereum-classic-testnet
*   Lisk - lisk-mainnet / lisk-testnet
*   XDC - xdc-mainnet / xdc-testnet
*   Sonic - sonic-mainnet / sonic-blaze

To get started:

*   Provide a chain name and an address of that chain. Our API will return all of their transactions along with further information such as their block number, ID of involved token, and more.
*   If not specified, the API returns transactions of various types (fungible, nft, multitoken, native), but you can also choose to filter specific `transactionTypes` and even `transactionSubtype` (incoming, outgoing, zero-transfer).
*   On top of that, you can add further filters such as specifying block range where the transactions should have occurred, or address and ID of involved tokens.
*   **When you are filtering data using blockFrom and not using blockTo, blockTo is automatically added as blockFrom + 1000. The same applies when blockTo is present and blockFrom is not. In that case blockFrom is automatically added as blockTo - 1000.**
*   For Tezos blockchain, the API accepts only one wallet address in `addresses` query parameter. Following query parameters won't have any effect on filtering data: `transactionTypes`, `transactionSubtype`, `tokenId`, `blockTo`.
*   When querying Tezos transactions for a specified wallet or contract address, pagination is supported via `pageSize` and `offset` query parameters.
*   When querying Tezos transactions for a specified block, pagination is supported via `cursor` query parameter, by filling in the value from `prevPage` or `nextPage` field in the response body.
*   If a wallet has more than 250 transactions, we strongly recommend using the transactionTypes filter with **only one value at a time.** This is mandatory to ensure reliable, accurate, and high-quality responses.

## Query parameters

- `chain` 'ethereum-mainnet' | 'ethereum-sepolia' | 'base-mainnet' | 'base-sepolia' | 'arb-one-mainnet' | 'arb-testnet' | 'bsc-mainnet' | 'bsc-testnet' | 'polygon-mainnet' | 'polygon-amoy' | 'optimism-mainnet' | 'optimism-testnet' | 'berachain-mainnet' | 'unichain-mainnet' | 'unichain-sepolia' | 'monad-mainnet' | 'monad-testnet' | 'celo-mainnet' | 'celo-testnet' | 'chiliz-mainnet' | 'tezos-mainnet' | 'avax-mainnet' | 'avax-testnet' | 'gno-mainnet' | 'gno-testnet' | 'zksync-mainnet' | 'zksync-testnet' | 'rsk-mainnet' | 'rsk-testnet' | 'ethereum-classic-mainnet' | 'ethereum-classic-testnet' | 'lisk-mainnet' | 'lisk-testnet' | 'xdc-mainnet' | 'xdc-testnet' | 'sonic-mainnet' | 'sonic-blaze', required
- `addresses` string, required
- `transactionTypes` 'fungible' | 'nft' | 'multitoken' | 'native'
- `transactionSubtype` 'incoming' | 'outgoing' | 'zero-transfer'
- `tokenAddress` string — Contract address of the token.
- `tokenId` string, uint256 — ID of the token.
- `blockFrom` number
- `blockTo` number
- `pageSize` number
- `offset` number
- `cursor` string — Cursor pagination, used to get next page or previous page of results. The size of result is defined by the `pageSize` parameter. The cursor is a base64 encoded string, user can get the value from a response in the `nextPage` or `prevPage` field. If the nextPage or prevPage fields are not present in the response body, pagination is usually available with the `offset` and `pageSize` parameters.
- `sort` 'ASC' | 'DESC'

## Response `200`

OK

- object
  - `result` TxDataWithoutIndex[] — List of all selected transactions.
    - `chain` 'ethereum-mainnet' | 'ethereum-sepolia' | 'base-mainnet' | 'base-sepolia' | 'arb-one-mainnet' | 'arb-testnet' | 'bsc-mainnet' | 'bsc-testnet' | 'polygon-mainnet' | 'polygon-amoy' | 'optimism-mainnet' | 'optimism-testnet' | 'berachain-mainnet' | 'unichain-mainnet' | 'unichain-sepolia' | 'monad-mainnet' | 'monad-testnet' | 'celo-mainnet' | 'celo-testnet' | 'chiliz-mainnet' | 'tezos-mainnet' | 'avax-mainnet' | 'avax-testnet' | 'gno-mainnet' | 'gno-testnet' | 'zksync-mainnet' | 'zksync-testnet' | 'rsk-mainnet' | 'rsk-testnet' | 'ethereum-classic-mainnet' | 'ethereum-classic-testnet' | 'lisk-mainnet' | 'lisk-testnet' | 'xdc-mainnet' | 'xdc-testnet' | 'sonic-mainnet' | 'sonic-blaze'
    - `hash` string — The transaction hash.
    - `address` string — The address involved in the transaction.
    - `counterAddress` string — The counter address involved in the transaction (optional).
    - `tokenAddress` string — The token address involved in the transaction (optional).
    - `tokenId` string — The ID of the token involved in the transaction (optional).
    - `blockNumber` number — The block number in which the transaction occurred.
    - `transactionType` 'fungible' | 'nft' | 'multitoken' | 'native' — The type of the transaction.
    - `transactionSubtype` 'incoming' | 'outgoing' | 'zero-transfer' — The subtype of the transaction.
    - `amount` string — The amount transferred in the transaction.
    - `timestamp` number — The timestamp when the transaction occurred. - Enabled for chains: Ethereum, Polygon, Arbitrum, Optimism, Base.
  - `prevPage` string — Cursor pagination, used to get previous page of results (only relevant for Tezos).
  - `nextPage` string — Cursor pagination, used to get next page of results (only relevant for Tezos).

## Other responses

- `400` — Bad Request
- `401` — Unauthorized. Not valid or inactive subscription key present in the HTTP Header.
- `403` — Forbidden. The request is authenticated, but it is not possible to perform the operation due to logical error or invalid permissions.
- `500` — Internal server error. There was an error on the server during the processing of the request.

---

[API](https://skmtc.net/tatum/apis/blockchain-data.md) · [All operations](https://skmtc.net/tatum/apis/blockchain-data/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/tatum/blockchain-data/revisions/8622ee4b8fae/schema)
