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.

Plain-text reference — GET /v1/data/vaults/user

Parameters

ParameterInTypeRequiredDescription
chainIdquerystringyesChain ID See the ChainId schema for the full set of supported chains.
accountquerystringyesUser address (EOA or contract)
vaultsquerystringyesCSV of ERC-4626 share-token addresses to query. Duplicates are de-duped; invalid addresses are skipped.

Response 200

FieldTypeDescription
successTrue
dataobjectInformational payload. null when the endpoint only builds calldata.
actionsnull

Example response

{
"success": true,
"data": {}
}

Request

Responses

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