Wallet History

This function helps you to fetch all the fungible tokens a wallet holds, all you have to do is pass the address to the function parameter and chain while initialising the SDK.

Wallet Transaction History allows you to track all transfers in and out of a wallet, including native tokens, fungible tokens (ERC-20, BEP-20), NFTs (ERC-721, ERC-1155), multi-tokens, and internal transactions. This feature is essential for portfolio apps, DeFi dashboards, and blockchain explorers, as it provides a complete view of wallet activity across multiple chains.

Why Transaction History Matters?

Tracking transactions gives your users:

  • Full Activity Transparency – See all incoming and outgoing transfers.
  • Multi-Chain Coverage – Monitor wallets across Ethereum, BSC, Polygon, Solana, and more.
  • Detailed Insights – Filter by transaction type, token, or block range.
  • Enhanced UX – Users can explore NFT trades, token swaps, and native transfers without leaving your app.

Tatum API for Wallet Transactions

Tatum provides the Get Wallet Transaction History API to fetch all transaction details for a given wallet address.

Understanding Transaction Types

The API supports multiple transaction types:

  • native – Transfers of the blockchain’s native currency (ETH, BNB, SOL, etc.)
  • fungible – Standard tokens like ERC-20, BEP-20, SPL tokens
  • nft – Non-fungible tokens (ERC-721, SPL NFTs)
  • multitoken – Multi-token standards (ERC-1155, multi-asset NFTs)
  • internal – Internal blockchain transfers (executed inside smart contracts)

Tip: Combine types (native,fungible,nft,multitoken,internal) to get the full history.

API Endpoint: Get Wallet Transactions

πŸ“˜

Get Transaction History

GET /v4/data/transactions/history
Fetch the transaction history for a given blockchain address.
Explore Docs β†’

Example Requests of getting transactions

Fetch all native transactions on Ethereum:

curl -X GET "https://api.tatum.io/v4/data/wallet/transactions?chain=ethereum-mainnet&addresses=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045&transactionTypes=native" \
  -H "x-api-key: YOUR_API_KEY"
const options = {
  method: 'GET',
  headers: {
    accept: 'application/json',
    'x-api-key': 'YOUR_API_KEY'
  }
};

fetch('https://api.tatum.io/v4/data/transaction/history?chain=ethereum-mainnet&addresses=0x2474a7227877f2b65185f09468af7c6577fa207c&transactionTypes=native&sort=DESC', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));

Fetch all NFT transactions:

curl -X GET "https://api.tatum.io/v4/data/wallet/transactions?chain=ethereum-mainnet&addresses=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045&transactionTypes=nft" \
  -H "x-api-key: YOUR_API_KEY"
const options = {
  method: 'GET',
  headers: {
    accept: 'application/json',
    'x-api-key': 'YOUR_API_KEY'
  }
};

fetch('https://api.tatum.io/v4/data/transaction/history?chain=ethereum-mainnet&addresses=0x2474a7227877f2b65185f09468af7c6577fa207c&transactionTypes=nft&sort=DESC', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));

Fetch all outgoing fungible token transfers:

curl --request GET \
     --url 'https://api.tatum.io/v4/data/transaction/history?chain=ethereum-mainnet&addresses=0x2474a7227877f2b65185f09468af7c6577fa207c&transactionTypes=fungible&transactionSubtype=outgoing&sort=DESC' \
     --header 'accept: application/json' \
     --header 'x-api-key: YOUR_API_KEY'
const options = {
  method: 'GET',
  headers: {
    accept: 'application/json',
    'x-api-key': 'YOUR_API_KEY'
  }
};

fetch('https://api.tatum.io/v4/data/transaction/history?chain=ethereum-mainnet&addresses=0x2474a7227877f2b65185f09468af7c6577fa207c&transactionTypes=fungible&transactionSubtype=outgoing&sort=DESC', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));

Sample Response

{
  "transactions": [
    {
      "type": "native",
      "hash": "0xabc123...",
      "from": "0x1111...",
      "to": "0x2222...",
      "value": "1.5",
      "symbol": "ETH",
      "blockNumber": 12345678,
      "timestamp": 1699999999,
      "status": "confirmed",
      "metadata": {
        "name": "Ethereum",
        "logo": "https://assets.tatum.io/eth.png"
      }
    },
    {
      "type": "nft",
      "hash": "0xdef456...",
      "from": "0x3333...",
      "to": "0x4444...",
      "tokenId": "1",
      "symbol": "CRYPTOPUNK",
      "blockNumber": 12345679,
      "timestamp": 1699999999,
      "status": "confirmed",
      "metadata": {
        "name": "CryptoPunk #1",
        "image": "https://assets.tatum.io/nft/cryptopunk1.png"
      }
    }
  ]
}

Usage Workflow

  1. Select Wallet Address – Identify the wallet to track.
  2. Call API – Request transactions for desired types.
  3. Display in UI – Show consolidated history with token transfers, NFTs, and internal transactions.
  4. Optional – Paginate and filter by type, token, or block range.

Best Practices

  • Fetch all transaction types for a complete history.
  • Paginate results for wallets with many transactions.
  • Cache frequently accessed addresses to reduce repeated API calls.
  • Use filters (type, token, block range) to optimize payload and performance.

By integrating wallet transaction history, your app will provide a full view of all wallet activity, across tokens, NFTs, multi-tokens, and internal transfers, with real-time cross-chain support powered by Tatum Data API.