Get wallet portfolio
Wallet APIs
Get Crypto Holdings
GET
Get wallet portfolio
Query details
- Either
walletorwalletsmust be provided. - Boolean parameters are passed as strings (
"true","false").
Looking for PnL data? This endpoint returns current holdings and balances. For profit/loss (PnL) data including realized and unrealized gains, use the
/wallet/positions or /wallet/position endpoints instead.Premium Chains (Default)
By default, the API queries only chains with premium RPCs for optimal performance and reliability. These chains are:ethereum(Ethereum Mainnet)base(Base)arbitrum(Arbitrum One)polygon(Polygon PoS)avalanche(Avalanche C-Chain)bnb(BNB Smart Chain)optimism(Optimism)sonic(Sonic)solana(Solana)
blockchains parameter (e.g., blockchains=ethereum,base,solana). This reduces latency and improves query efficiency.
To query all supported chains (including non-premium ones), use fetchAllChains=true.
Step-by-Step Tutorial and Video Walkthrough
- Check out the guide: Here
Usage Examples
- Query multiple wallets with a chain filter
- Query a portfolio using cached data with stale tolerance
- Query Portfolio — All Chains, ≥ $10,000 Liquidity, Maximum Accuracy
- Query portfolio with 24h price change data
Top-Level Response Fields
Asset Fields (per item in assets[])
Native vs. Wrapped Assets
0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeealways indicates the native token of the chain referenced bychainId(e.g.,evm:42161= ETH on Arbitrum,evm:8453= ETH on Base). Mobula normalizes native balances under this canonical placeholder so that the asset is easily identifiable across chains.- Wrapped versions of native tokens are returned as their real ERC-20 contract addresses. For example, Arbitrum WETH is
0x82af49447d8a07e3bd95bd0d56f35241523fbab1, while the canonical WETH contract on both Base and Optimism is0x4200000000000000000000000000000000000006. - In the response, you may therefore see two separate entries for the same wallet: one for the native gas token (via
0xeeee...) and another for any wrapped balance. This lets you distinguish spendable gas from ERC-20-wrapped liquidity.
0x57d7b62c7b877f315b2d0cac98c4775f5bd3cd0b on Arbitrum:
address field to decide whether a position is the native token placeholder or a wrapped contract so you can interpret balances correctly in your integration.Query Parameters
Wallet address
Comma-separated wallet addresses
Portfolio ID
Comma-separated blockchain IDs
Filter by specific asset
Start date
End date
Portfolio display settings
Include unlisted assets
Time period
Data accuracy level
Include testnet data
Minimum liquidity threshold
Filter spam tokens
Include PnL data