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:
Parameter | Type | Required | Description |
---|---|---|---|
chain | string | ✅ | Blockchain to query (see supported chains above). |
addresses | string | ✅ | Wallet address to query. |
transactionTypes | string | ❌ | native , fungible , nft , multitoken , internal (comma-separated). |
transactionSubtype | string | ❌ | incoming , outgoing , zero-transfer . |
tokenAddress | string | ❌ | Filter by token contract address. |
tokenId | string | ❌ | Filter by token ID (for NFTs/multi-tokens). |
blockFrom | number | ❌ | Start block (default: last 1000 blocks if not provided). |
blockTo | number | ❌ | End block (default: blockFrom + 1000 if not provided). |
pageSize | number | ❌ | Items per page (1–50, default 50). |
offset | number | ❌ | Pagination offset. |
sort | string | ❌ | ASC 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
- Select Wallet Address – Identify the wallet to track.
- Call API – Request transactions for desired types.
- Display in UI – Show consolidated history with token transfers, NFTs, and internal transactions.
- 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.
Updated about 19 hours ago