Skip to content

Your account

Read an account's holdings and value

Cash, positions, and total value for any address, priced server-side.

Returns the fully valued holdings for any account address: USDG cash, every non-zero position with its live price and 1-day move, and the totals. One server-side multicall reads the balances, and prices come from the same spot source as /api/prices, so the response needs no client-side math.

GET /api/portfolio · public, no token required. Base URL, rate limits, and error shapes: conventions.

Name Type Required Description
address address yes The account to value. Missing or invalid returns 400.
Field Type Description
cashUsd number USDG balance (6-decimal), as a number.
investedUsd number Sum of priced holding values.
totalUsd number cashUsd + investedUsd.
holdings array Non-zero positions, largest value first, unpriced last.
holdings[].symbol string Registry symbol, for example AAPL.
holdings[].raw string Raw token balance as a decimal string (bigint-safe).
holdings[].qty number Human quantity, token decimals applied.
holdings[].priceUsd number | null Live spot price, null when unpriced.
holdings[].valueUsd number | null qty * priceUsd, null when unpriced.
holdings[].dayChangePct number | null 1-day move for the row.
holdings[].spark number[] | null Intraday sparkline points.
asOf string ISO timestamp the snapshot was built.
Terminal window
curl "https://monvera.best/api/portfolio?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
{
"cashUsd": 42.5,
"investedUsd": 207.5,
"totalUsd": 250,
"holdings": [
{
"symbol": "AAPL",
"raw": "540000000000000000",
"qty": 0.54,
"priceUsd": 227.5,
"valueUsd": 122.85,
"dayChangePct": 0.83,
"spark": [226.1, 226.9, 227.5]
},
{
"symbol": "NVDA",
"raw": "610000000000000000",
"qty": 0.61,
"priceUsd": 138.75,
"valueUsd": 84.64,
"dayChangePct": -1.12,
"spark": [140.3, 139.1, 138.75]
}
],
"asOf": "2026-07-08T14:32:07.918Z"
}
Status Body When
400 {"error":"Valid ?address required."} address missing or not a valid address.

An account holding nothing returns zeros and an empty holdings array, not an error. A single unreadable token is skipped rather than failing the whole response, and its priceUsd and valueUsd come back null.

© 2026 Aibora · Documentation interface. Original Monvera materials retain their upstream attribution andMIT license.