GET
/
1
/
wallet
/
portfolio
Get wallet portfolio
curl --request GET \
  --url https://explorer-api.mobula.io/api/1/wallet/portfolio
{
  "data": {
    "total_wallet_balance": 123,
    "wallets": [
      "<string>"
    ],
    "assets": [
      {
        "contracts_balances": [
          {
            "address": "<string>",
            "balance": 123,
            "balanceRaw": "<string>",
            "chainId": "<string>",
            "decimals": 123
          }
        ],
        "cross_chain_balances": {},
        "price_change_24h": 123,
        "estimated_balance": 123,
        "price": 123,
        "token_balance": 123,
        "allocation": 123,
        "asset": {
          "id": 123,
          "name": "<string>",
          "symbol": "<string>",
          "logo": "<string>",
          "decimals": [
            "<string>"
          ],
          "contracts": [
            "<string>"
          ],
          "blockchains": [
            "<string>"
          ]
        },
        "wallets": [
          "<string>"
        ],
        "realized_pnl": 123,
        "unrealized_pnl": 123,
        "price_bought": 123,
        "total_invested": 123,
        "min_buy_price": 123,
        "max_buy_price": 123
      }
    ],
    "win_rate": 123,
    "tokens_distribution": {
      "10x+": 123,
      "4x - 10x": 123,
      "2x - 4x": 123,
      "10% - 2x": 123,
      "-10% - 10%": 123,
      "-50% - -10%": 123,
      "-100% - -50%": 123
    },
    "pnl_history": {
      "1y": [
        [
          "<string>"
        ]
      ],
      "7d": [
        [
          "<string>"
        ]
      ],
      "24h": [
        [
          "<string>"
        ]
      ],
      "30d": [
        [
          "<string>"
        ]
      ]
    },
    "total_realized_pnl": 123,
    "total_unrealized_pnl": 123,
    "total_pnl_history": {
      "24h": {
        "realized": 123,
        "unrealized": 123
      },
      "7d": {
        "realized": 123,
        "unrealized": 123
      },
      "30d": {
        "realized": 123,
        "unrealized": 123
      },
      "1y": {
        "realized": 123,
        "unrealized": 123
      }
    },
    "balances_length": 123
  }
}

Query details

  • Either wallet or wallets must be provided.
  • Values are passed as strings ("true", "false").
ParameterRequiredDescription
walletCond.Single wallet address to query.
walletsCond.Comma-separated wallet addresses to query in aggregate.
blockchainsCond.Comma-separated list of chains (e.g., ethereum,base). Defaults to all supported chains.
assetCond.Filter the net worth history to a specific asset (symbol or contract address) for the given wallet(s).
cacheCond."true" to allow returning cached results (faster responses).
staleCond.Number of seconds to allow cached data before refreshing. Example: 3600 = 1 hour.
fromCond.Start of the historical window (Unix ms timestamp or ISO 8601).
toCond.End of the historical window (Unix ms timestamp or ISO 8601).
unlistedAssetsCond."true" to include unlisted or non-indexed assets in the calculation.
periodCond.Supported values: 5min, 15min, 1h, 6h, 1d, 7d. Defines aggregation granularity.
accuracyCond.By default, to optimize response time, we will skip analyzing assets that make < 1% of the total net worth. You can set this to true` to analyze all assets.
testnetCond."true" to include testnet data.
minliqCond.Minimum liquidity threshold in USD (default: 1000). Assets below are excluded.
filterSpamCond."true" to remove spam or low-quality assets from results.
fetchUntrackedHistoryCond."true" to fetch historical prices for untracked assets.
fetchAllChainsCond."true" to query all supported chains, including those without premium RPCs.
pnlCond.Include real-time realized and unrealized data with pnl_history for 1y and 1m ranges.

Usage Examples

  • Query multiple wallets with a chain filter
curl -X GET /wallet/portfolio?wallets=0xBb7Ae0458b0dAe031460E6EE9f014b275db49f7f,0xaF88370abD82EC6943cdB3D4ec7b764B92c35B43&blockchains=ethereum
  • Query portfolio with PnL over the last 30 days
curl -X GET /wallet/portfolio?wallet=0xaF88370abD82EC6943cdB3D4ec7b764B92c35B43&period=30d&pnl=true
  • Query a portfolio using cached data with stale tolerance
curl -X GET /wallet/portfolio?wallets=0x3406bf0fdf29c2928988a9420f4b320fe4eca538,0x21d93ea2a1aa8ac5b482c2b2992ea8fe5ad6c329&cache=true&unlistedAssets=false&stale=3600&pnl=true&blockchains=base
  • Query Portfolio — All Chains, ≥ $10,000 Liquidity, Maximum Accuracy
curl -X GET /wallet/portfolio?wallet=0x63b696e9ecef8093aa74d75db3146546745e0b3a&fetchAllChains=true&minliq=10000&accuracy=maximum

Query Parameters

wallet
string
wallets
string
blockchains
string
asset
string
pnl
string
from
string
to
string
unlistedAssets
string
period
string
accuracy
string
testnet
string
minliq
string
filterSpam
string
fetchUntrackedHistory
string
fetchAllChains
string
shouldFetchPriceChange
string

Response

200 - application/json

Wallet portfolio response

The response is of type object.