💼 Wallet Portfolio & Balance Tracking
Knowing what your users hold is essential for real-time visibility, auditing, and stablecoin management.
Tatum’s Wallet Portfolio APIs let you see all assets held by a wallet across supported chains — including stablecoins, native tokens, NFTs, and multitokens.
This guide helps you fetch portfolio data, transaction history, and construct balance summaries for dashboards or compliance systems.
Get Wallet Portfolio (Popular 💼)
GET /v4/wallet/portfolio/{address}
Fetch a complete portfolio of assets (stablecoins, tokens, NFTs, and native balances) for any wallet.
Explore Docs →📗 Get Transaction History
GET /v4/data/transactions/history
Retrieve transaction history for deeper portfolio analysis.
Explore Docs →
Key Use Cases
- Stablecoin Balance Tracking: Check USDC, USDT, or DAI balances per wallet.
- Multi-chain Portfolio: Aggregate holdings across Ethereum, BSC, Polygon, etc.
- Transaction History: View deposits, withdrawals, and transfers in one feed.
- Compliance Snapshots: Generate portfolio state at reporting intervals.
- User Dashboards: Display token holdings and their fiat equivalents in your app.
Example – Fetch Wallet Portfolio (cURL)
curl --request GET \
--url 'https://api.tatum.io/v4/data/wallet/portfolio?chain=ethereum-mainnet&addresses=0x8Bd071e1Aa429F079432101D0e7106CE726EbB47&tokenTypes=fungible' \
--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/wallet/portfolio?chain=ethereum-mainnet&addresses=0x8Bd071e1Aa429F079432101D0e7106CE726EbB47&tokenTypes=fungible', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
Sample Response – Portfolio Summary
{
"result": [
{
"chain": "ethereum-mainnet",
"address": "0x8Bd071e1Aa429F079432101D0e7106CE726EbB47",
"balance": "0.00018",
"denominatedBalance": "18000",
"decimals": 8,
"tokenAddress": "0x2260fac5e5542a773aa44fbcfedf7c193bc2c599",
"type": "fungible"
},
{
"chain": "ethereum-mainnet",
"address": "0x8Bd071e1Aa429F079432101D0e7106CE726EbB47",
"balance": "2000000",
"denominatedBalance": "200000000000000",
"decimals": 8,
"tokenAddress": "0x3fc29836e84e471a053d2d9e80494a867d670ead",
"type": "fungible"
},
.....
],
"prevPage": "",
"nextPage": ""
}
Example – Get Wallet Transaction History (cURL)
curl --request GET \
--url 'https://api.tatum.io/v4/data/transaction/history?chain=ethereum-mainnet&addresses=0x8Bd071e1Aa429F079432101D0e7106CE726EbB47&sort=DESC' \
--header 'accept: application/json' \
--header 'x-api-key: YOUR_API_KEY'
This allows you to map portfolio movements over time, such as deposits, stablecoin redemptions, or swaps.
Combine Portfolio + Exchange Rate API
Tatum also provides an Exchange Rate API
to convert portfolio values into fiat (USD, EUR, etc.).
curl --request GET \
--url 'https://api.tatum.io/v4/data/rate/symbol?symbol=ETH&basePair=USD' \
--header 'accept: application/json' \
--header 'x-api-key: YOUR_API_KEY'
{
"value": "3862.76994400",
"basePair": "USD",
"timestamp": 1761055172744,
"source": "TATUM",
"symbol": "ETH"
}
Combine this with portfolio data to compute a full fiat-denominated balance sheet.
Portfolio Refresh Strategy
1. Fetch portfolio snapshot every few minutes or after webhook alerts.
2. Cache token metadata (symbols, decimals, logos).
3. Convert balances to fiat using Exchange Rate API.
4. Store aggregated portfolio for user dashboards or compliance logs.
FAQs
What does the Wallet Portfolio API do?
The Wallet Portfolio API retrieves a wallet’s complete asset breakdown, including native coins, ERC-20 tokens, and NFTs. It consolidates balances and token data into a unified JSON schema for portfolio tracking and analytics.
Which chains are supported?
All Tatum-indexed chains: Ethereum, Polygon, BSC, Solana, Tron, Bitcoin, and more. The same endpoint structure applies across all supported networks.
How often should I refresh portfolio data?
For real-time dashboards, refresh every 30–60 seconds or subscribe to transaction webhooks. For compliance or tax snapshots, daily or hourly updates may suffice.
Can I get historical balances?
Yes. Use Historical Wallet Balance API to query the balance of any wallet at a past block height or timestamp. Combine with transaction history for time-based portfolio analytics.
How do I calculate total USD value?
Multiply each token’s balance by its current exchange rate (from the Exchange Rate API), then sum across all holdings. Example: totalUsd = Σ(balance[i] * rate[i])
.
Best Practices
- 🧾 Use wallet portfolio + transaction history for full balance audits.
- ⚙️ Combine with Exchange Rate API for fiat value tracking.
- 🧩 Store portfolio snapshots periodically for analytics or reporting.
- ⚡ Cache token data locally for faster UI performance.
- 🔒 Never expose API keys or wallet addresses publicly.
With these APIs, you can power real-time portfolio dashboards, compliance systems, or tax and accounting tools — all through Tatum’s unified blockchain data layer.
Updated about 3 hours ago