Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
user_address | string | Yes | User’s wallet address |
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
chain_id | int | No | Filter by chain ID |
How It Works
For each known vault (excluding those markedunsupported):
- Read the user’s share balance on-chain via
balanceOf(user) - Skip if balance is zero
- Convert shares to asset units via
vault.convertToAssets(shares)(falls back tototalAssets/totalSupplyratio if unavailable) - Sum the user’s historical net deposits to that vault (deposits − withdrawals) in vault-asset units
- Compute yield as
current_assets − deposited_assets
Response
Fields
| Field | Type | Description |
|---|---|---|
vault_id | string | Vault ID |
vault_name | string | Display name |
vault_address | string | Vault contract address |
chain_id | int | Chain ID |
asset_symbol | string | Underlying asset symbol (uppercase) |
asset_address | string | Asset token contract |
asset_decimals | int | Asset token decimals (use to format current_assets, yield_assets) |
share_balance | string | Raw vault share balance |
share_decimals | int | Vault share token decimals (usually 18) |
vault_type | string | morpho, veda, midas, custom, lido, ipor, or accountable |
current_assets | string / null | Current asset-denominated value of shares (in asset’s smallest unit) |
deposited_assets | string / null | Sum of historical deposits for this vault (asset’s smallest unit) |
yield_assets | string / null | current_assets - deposited_assets — can be negative |
Notes
current_assets,deposited_assets, andyield_assetscan each benullindependently if the data isn’t available (e.g. the vault doesn’t expose share price, or the user has no recorded deposits).- For vaults that don’t support
convertToAssets, the API falls back to(shares * totalAssets) / totalSupply. If both fail,current_assetsisnulland the frontend should display the raw share balance. - Yield is in asset units, not USD. A portfolio with mixed assets (USDC + WETH) shouldn’t be summed directly — the frontend should show per-asset totals or use a price oracle.