wallet or wallets must be provided."true", "false").| Parameter | Required | Default | Description |
|---|---|---|---|
wallet | Cond. | — | Single wallet address to query (can also accept comma-separated addresses). |
wallets | Cond. | — | Comma-separated wallet addresses to query in aggregate. |
blockchains | No | Premium chains | Comma-separated list of chains (e.g., ethereum,base). By default, only premium chains are queried (see list below). For optimal performance and fastest response times, we strongly recommend specifying only the blockchains you need. To query all chains, use fetchAllChains=true. |
cache | No | false | "true" to allow returning cached results (faster responses). |
stale | No | 300 | Number of seconds to allow cached data before refreshing. Example: 3600 = 1 hour. |
from | No | 0 | Start of the historical window (Unix ms timestamp). |
to | No | Now | End of the historical window (Unix ms timestamp). |
unlistedAssets | No | true | "true" to include unlisted or non-indexed assets in the calculation. |
accuracy | No | maximum | Set to "maximum" to analyze all assets. By default, to optimize response time, assets making < 1% of total net worth may be skipped. |
testnet | No | false | "true" to include testnet data. |
minliq | No | 1000 | Minimum liquidity threshold in USD. Assets below are excluded. |
filterSpam | No | true | "true" to remove spam or low-quality assets from results. |
fetchUntrackedHistory | No | false | "true" to fetch historical prices for untracked assets. |
fetchAllChains | No | false | "true" to query all supported chains, including those without premium RPCs. |
shouldFetchPriceChange | No | false | Set to "24h" to include 24-hour price change data. Note: This parameter accepts the value "24h", not "true". |
backfillTransfers | No | false | "true" to trigger backfilling of transfer history for the wallet(s). Returns backfill_status in the response. |
fetchEmptyBalances | No | false | "true" to include tokens with zero balance in the response. |
/wallet/positions or /wallet/position endpoints instead.ethereum (Ethereum Mainnet)base (Base)arbitrum (Arbitrum One)polygon (Polygon PoS)avalanche (Avalanche C-Chain)bnb (BNB Smart Chain)optimism (Optimism)sonic (Sonic)blockchains parameter (e.g., blockchains=ethereum,base). This reduces latency and improves query efficiency.
To query all supported chains (including non-premium ones), use fetchAllChains=true.
0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee always indicates the native token of the chain referenced by chainId (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.0x82af49447d8a07e3bd95bd0d56f35241523fbab1, while the canonical WETH contract on both Base and Optimism is 0x4200000000000000000000000000000000000006.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.