GET /v1/address/:address/portfolio returns a per-event balance history. GET /v1/address/:address/portfolio/daily returns end-of-day balances with dollar values. Both use the same token keys and the same wallet attribution rule.
Token keys
On the per-event route, a chain appears only when the wallet has balance history on it, and every chain that appears carries all seven token keys. Tokens the wallet has never held on that chain are empty arrays, not missing keys. A wallet with no history on any chain returns an empty object.
Euler sub-accounts
Balances held in a wallet’s Euler sub-accounts are attributed to the owning wallet. You query the wallet address, and the response includeseulerYuty and eulerUsdc balances from all of its sub-accounts.
Chains
chainId values are numeric EVM chain IDs. The per-event route keys its response by chain ID; the daily route reports chainId on each position row. See Chain IDs.
Balances and values
Balances are formatted decimals in token units, not raw integer amounts. Dollar values on the daily route useusdPerToken for that day, so valueUsd equals balance times usdPerToken for each position and totalValueUsd is the sum across positions for the day.