Skip to main content

Get user balances across ERC-4626 vaults

GET 

/v1/data/vaults/user

Returns per-vault balances for account across the supplied ERC-4626 share-token addresses. Static vault metadata (underlying, decimals, share-price ratio) is sourced from the cached /v1/data/vaults public-data fetch, so this endpoint's only on-chain footprint is exactly one balanceOf(account) per vault.

Why this exists

Vault shares are plain ERC-20s, so /v1/data/token/balances can read them — but it can't convert shares → assets. This endpoint folds that conversion in so the frontend doesn't have to redo shares * totalAssets / totalSupply math (and get the rounding subtly wrong).

Scope

Vault addresses must be tracked by /v1/data/vaults (the 5 supported providers — fluid, gearbox, morpho, silo, euler-earn). Unknown addresses are listed back to the caller in the response's unknown field; a request that contains only unknown addresses returns 400. Untracked vaults are intentionally not auto-included — the 1delta data layer only surfaces vaults that have passed risk review.

Per-item fields (naming mirrors /v1/data/token/balances<thing>Raw is a stringified uint, <thing> is the formatted human-readable string)

fieldmeaning
vaultshare-token address (echoes the input)
underlyingresult of vault.asset()
symbol, name, decimalsfrom the token registry / on-chain decimals()
sharesRaw / sharesraw uint + formatted balance in vault tokens
assetsRaw / assetsshares converted to underlying at the current fair share price (via convertToAssets) — raw uint + formatted
priceUSDunit price of the underlying
balanceUSDassets * priceUSD — USD value of the position

Resilience

Failed reads (e.g. a non-ERC-4626 address slipped into the list, or a vault that reverts on convertToAssets) are silently dropped from the response — the whole request is not failed. Vaults the user hasn't deposited into (zero shares) are kept in the response so the caller can render a deterministic table.

Scope

This is for passive ERC-4626 vaults (Fluid fTokens, MetaMorpho, Gearbox V3 pools, Silo, Euler Earn). For Fluid's NFT-position margin vaults, use /v1/data/lending/user-positions instead — it understands the FLUID_<chainId>_<vaultId> lender keys and the NFT-per-position model.

Request

Responses

Per-vault balances joined with underlying prices. Items with failed reads are omitted; zero-share entries are kept.