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

Request Type: GET
Endpoint: /v4/data/wallet/transactions

Query Parameters:

ParameterTypeRequiredDescription
chainstringBlockchain to query (see supported chains above).
addressesstringWallet address to query.
transactionTypesstringnative, fungible, nft, multitoken, internal (comma-separated).
transactionSubtypestringincoming, outgoing, zero-transfer.
tokenAddressstringFilter by token contract address.
tokenIdstringFilter by token ID (for NFTs/multi-tokens).
blockFromnumberStart block (default: last 1000 blocks if not provided).
blockTonumberEnd block (default: blockFrom + 1000 if not provided).
pageSizenumberItems per page (1–50, default 50).
offsetnumberPagination offset.
sortstringASC or DESC (default DESC).

Example Requests

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"

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"

Fetch all outgoing fungible token transfers:

curl -X GET "https://api.tatum.io/v4/data/wallet/transactions?chain=bsc-mainnet&addresses=0x1234...abcd&transactionTypes=fungible&transactionSubtype=outgoing" \
  -H "x-api-key: YOUR_API_KEY"

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.