Lending token balances
GET/v1/data/token/balances/lending
Fetches token balances for all available lending assets on a chain for a given account. Combines the available-assets lookup with balance fetching in a single call.
How it works:
- Fetches all available lending asset addresses from origin (optionally filtered by lender)
- Fetches token balances for those assets via multicall
- Enriches with token metadata, prices, and USD values
Response Structure:
items: Array of non-zero balance entries (same format as/token/balances)count: Number of tokens with non-zero balance
Balance Entry includes:
address: Token contract address (zeroAddress for native)symbol: Token symbolname: Token namedecimals: Token decimalsbalanceRaw: Raw balance as string (wei/smallest unit)balance: Formatted balance as decimal stringpriceUSD: Per-unit USD pricebalanceUSD: Balance value in USD
Note: Zero-balance entries are excluded. The native token balance is included only if non-zero.
Plain-text reference — GET /v1/data/token/balances/lending
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
chainId | query | string | yes | Chain ID to fetch balances on See the ChainId schema for the full set of supported chains. |
account | query | string | yes | EVM account address (0x-prefixed, 40 hex chars) |
lender | query | string | no | Optional lender filter — only fetch assets available on this protocol See the LenderId schema for the full set of accepted values. |
Response 200
| Field | Type | Description |
|---|---|---|
success | True | |
data | object | |
data.chainId | string | EVM chain id, as a decimal string. See the ChainId schema. |
data.account | string | Lowercase account address |
data.count | integer | Number of balance entries |
data.items | object[] | The result set for this response. |
data.items[].address | string | Token contract address (zeroAddress for native) |
data.items[].symbol | string | Token symbol, e.g. WETH. |
data.items[].name | string | Human-readable display name. |
data.items[].decimals | integer | Token decimals — divide raw amounts by 10 ** decimals. |
data.items[].balanceRaw | string | Raw balance in smallest unit (wei) |
data.items[].balance | string | Formatted balance as decimal string |
data.items[].priceUSD | number | Per-unit USD price of the token |
data.items[].balanceUSD | number | Balance value in USD |
actions | null |
Example response
{
"success": true,
"data": {
"chainId": "1",
"account": "0xbada9c382165b31419f4cc0edf0fa84f80a3c8e5",
"count": 1,
"items": [
{
"address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"symbol": "USDC",
"name": "USD Coin",
"decimals": 6,
"balanceRaw": "1000000",
"balance": "1.0",
"priceUSD": 1,
"balanceUSD": 1
}
]
}
}
Request
Responses
- 200
- 400
- 429
- 500
- 502
Token balances for all lending assets with USD values
Validation error
Rate limited. Unauthenticated callers share a per-IP budget; send an x-api-key header to lift it. Retry with exponential backoff.
Unexpected server error. Safe to retry with backoff.
An upstream data source or protocol origin failed (error.code is ORIGIN_FAILED). error.details carries the per-origin status. This is also what a missing or malformed required parameter currently returns, rather than a 400.