Cambrian Lending overview beta endpoint API
GET /evm/lending/overview
Lending Overview
Overview
Returns an aggregated, cross-protocol view of EVM lending pools and vaults, including supply, borrow, TVL, APY, utilization, and cap metrics.
Business Value
- Cross-protocol comparison: Compare supply/borrow APYs, net yields, and utilization rates across protocols like Aave v3, Morpho v1/v2, and others in a single call.
- Risk monitoring: Track loan-to-value (LTV), utilization rate, and available liquidity to assess borrowing risk and liquidity conditions per pool/vault.
- Capacity tracking: Monitor supply/borrow caps and remaining capacity in USD to anticipate when a pool or vault approaches its limits.
- Portfolio and market research: Filter by underlying token, protocol, or minimum TVL to power dashboards, yield-scanning tools, and vault discovery features.
- Fee transparency: Surface performance and management fees charged by vaults, useful for net-yield calculations.
Endpoint Details
URL:
https://api.cambrian.org/evm/lending/overview
Method: GET
Authentication: Required via X-API-Key header
Query Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| address | string | No | - | Address of the lending pool / vault |
| underlying_address | string | No | - | Underlying token address. See tokens for valid addresses. |
| chain_id | integer | No | 8453 | EVM chain ID. |
| protocol_id | string | No | - | Filter by protocol ID. Ex: aave-v3, morpho-v1, morpho-v2, euler-lend, etc. |
| min_tvl_usd | integer | No | - | Minimum TVL USD of the lending pool/vault |
| borrowable | boolean | No | - | If true, only lending pools/vaults with borrowing enabled will be returned |
| limit | integer | No | 100 | Limit the number of results. |
| offset | integer | No | 0 | Offset the results, allows you to skip a number of rows before starting to return rows. |
| order_asc | array | No | - | List of column names to order by in ascending order divided by comma. Leave empty items to combine with descending order |
| order_desc | array | No | - | List of column names to order by in descending order divided by comma. Leave empty items to combine with ascending order |
Response Field Descriptions
| Response Field | Type | Description |
|---|---|---|
| chainId | UInt16 | EVM chain ID |
| protocolId | String | Protocol identifier (e.g., aave-v3, morpho-v1, morpho-v2) |
| address | FixedString(42) | Address of the lending pool/vault |
| symbol | Nullable(String) | Token symbol of the pool/vault |
| vaultName | Nullable(String) | Name of the vault |
| underlyingAddress | Nullable(FixedString(42)) | Underlying token contract address |
| underlyingSymbol | Nullable(String) | Underlying token symbol |
| supply | Float64 | Total supply, in underlying token units |
| supplyUsd | Float64 | Total supply value, in USD |
| borrow | Nullable(Float64) | Total borrowed amount, in underlying token units |
| borrowUsd | Nullable(Float64) | Total borrowed value, in USD |
| tvlUsd | Float64 | Total value locked, in USD |
| supplyCap | Nullable(Float64) | Maximum supply cap, in underlying token units |
| supplyCapUsd | Nullable(Float64) | Maximum supply cap, in USD |
| borrowCap | Nullable(Float64) | Maximum borrow cap, in underlying token units |
| borrowCapUsd | Nullable(Float64) | Maximum borrow cap, in USD |
| availableLiquidityUsd | Nullable(Float64) | Available liquidity, in USD |
| remainingCapacityUsd | Nullable(Float64) | Remaining supply capacity, in USD, before hitting the supply cap |
| supplyApy | Nullable(Float64) | Supply APY (annual percentage yield) |
| borrowApy | Nullable(Float64) | Borrow APY (annual percentage yield) |
| netSupplyApy | Nullable(Float64) | Net supply APY after performance/management fees |
| performanceFee | Nullable(Float64) | Performance fee rate charged on yield |
| managementFee | Nullable(Float64) | Management fee rate |
| utilizationRate | Nullable(Float64) | Utilization rate (borrow/supply ratio) |
| ltv | Nullable(Float64) | Loan-to-value ratio |
| borrowable | Bool | Whether borrowing is enabled for this pool/vault |
| depositEnabled | Bool | Whether deposits are currently enabled |
| updatedAt | DateTime('UTC') | Timestamp of the last data update |
Examples
1. Retrieve the lending overview
Fetches the current cross-protocol lending overview with default parameters (Base chain, default limit of 100).
curl -X GET "https://api.cambrian.org/evm/lending/overview" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json"
Response:
[
{
"columns": [
{
"name": "chainId",
"type": "UInt16"
},
{
"name": "protocolId",
"type": "String"
},
{
"name": "address",
"type": "FixedString(42)"
},
{
"name": "symbol",
"type": "Nullable(String)"
},
{
"name": "vaultName",
"type": "Nullable(String)"
},
{
"name": "underlyingAddress",
"type": "Nullable(FixedString(42))"
},
{
"name": "underlyingSymbol",
"type": "Nullable(String)"
},
{
"name": "supply",
"type": "Float64"
},
{
"name": "supplyUsd",
"type": "Float64"
},
{
"name": "borrow",
"type": "Nullable(Float64)"
},
{
"name": "borrowUsd",
"type": "Nullable(Float64)"
},
{
"name": "tvlUsd",
"type": "Float64"
},
{
"name": "supplyCap",
"type": "Nullable(Float64)"
},
{
"name": "supplyCapUsd",
"type": "Nullable(Float64)"
},
{
"name": "borrowCap",
"type": "Nullable(Float64)"
},
{
"name": "borrowCapUsd",
"type": "Nullable(Float64)"
},
{
"name": "availableLiquidityUsd",
"type": "Nullable(Float64)"
},
{
"name": "remainingCapacityUsd",
"type": "Nullable(Float64)"
},
{
"name": "supplyApy",
"type": "Nullable(Float64)"
},
{
"name": "borrowApy",
"type": "Nullable(Float64)"
},
{
"name": "netSupplyApy",
"type": "Nullable(Float64)"
},
{
"name": "performanceFee",
"type": "Nullable(Float64)"
},
{
"name": "managementFee",
"type": "Nullable(Float64)"
},
{
"name": "utilizationRate",
"type": "Nullable(Float64)"
},
{
"name": "ltv",
"type": "Nullable(Float64)"
},
{
"name": "borrowable",
"type": "Bool"
},
{
"name": "depositEnabled",
"type": "Bool"
},
{
"name": "updatedAt",
"type": "DateTime('UTC')"
}
],
"data": [
[
8453,
"morpho-v2",
"0xbeef0e0834849acc03f0089f01f4f1eeb06873c9",
"steakUSDC",
"Steakhouse Prime USDC",
"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"USDC",
587736219.974119,
587736219.974119,
0,
0,
587736219.974119,
2703208659.922357,
2703208659.922357,
null,
null,
138800542.047559,
2115472439.9482381,
0.05047613027061226,
null,
0.05047613027061226,
0,
0,
null,
null,
false,
true,
"2026-08-05T12:21:19+00:00"
],
[
8453,
"morpho-v1",
"0xee8f4ec5672f09119b96ab6fb59c27e1b7e44b61",
"gtUSDCp",
"Gauntlet USDC Prime",
"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"USDC",
427978580.917002,
427978580.917002,
0,
0,
427978580.917002,
101160000000,
101160000000,
null,
null,
427978580.917002,
100732021419.083,
0.05067060204971419,
null,
0.05067060204971419,
0,
null,
0,
null,
false,
true,
"2026-08-05T12:24:55+00:00"
],
[
8453,
"morpho-v2",
"0xbeeff2490feffa212fac2f6553682c219e6a8845",
"sirloinUSDC",
"Steakhouse High Yield USDC Edition",
"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"USDC",
278558401.149578,
278558401.149578,
0,
0,
278558401.149578,
1972792005.74789,
1972792005.74789,
null,
null,
46408916.83142,
1694233604.598312,
0.035331648878975885,
null,
0.026498736659231914,
0.25,
0,
null,
null,
false,
true,
"2026-08-05T12:25:37+00:00"
],
[
8453,
"aave-v3",
"0x4e65fe4dba92790696d040ac24aa414708f5c0ab",
"aBasUSDC",
"Aave Base USDC",
"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"USDC",
176977863.1239826,
176977863.1239826,
152553894.02215475,
152553894.02215475,
176977863.1239826,
230000000,
230000000,
207000000,
207000000,
24423969.10182786,
53022136.87601739,
0.03342909389313922,
0.04309492089464035,
0.03342909389313922,
null,
null,
0.8619942140180687,
0.75,
true,
true,
"2026-08-05T12:26:03+00:00"
],
[
8453,
"aave-v3",
"0xd4a0e0b9149bcee3c920d2e00b5de09138fd8bb7",
"aBasWETH",
"Aave Base WETH",
"0x4200000000000000000000000000000000000006",
"WETH",
93743.24889989772,
176004901.4997578,
74288.5494444678,
139478298.23452714,
176004901.4997578,
169000,
317301018.50024015,
143000,
268485477.1925109,
36526603.265230656,
141296117.00048235,
0.014822206429098995,
0.02200876728394607,
0.014822206429098995,
null,
null,
0.7924682610882804,
0.8,
true,
true,
"2026-08-05T12:26:05+00:00"
],
[
8453,
"morpho-v1",
"0xbeef010f9cb27031ad51e3333f9af9c6b1228183",
"steakUSDC",
"Steakhouse USDC",
"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"USDC",
172415246.166839,
172415246.166839,
0,
0,
172415246.166839,
1001500000000,
1001500000000,
null,
null,
172415246.166839,
1001327584753.8331,
0.05061129772356994,
null,
0.03795847329267746,
0.25,
null,
0,
null,
false,
true,
"2026-08-05T12:23:01+00:00"
],
[
8453,
"aave-v3",
"0xbdb9300b7cde636d9cd4aff00f6f009ffbbc8ee6",
"aBascbBTC",
"Aave Base cbBTC",
"0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf",
"cbBTC",
2484.7300615266454,
160078162.2418396,
111.15806621207186,
7161332.827700555,
160078162.2418396,
3200,
206159263.37654343,
380,
24481412.525964532,
152916829.41413903,
46081101.134703845,
0.00016290413191142133,
0.00724767450863262,
0.00016290413191142133,
null,
null,
0.04473647577788596,
0.73,
true,
true,
"2026-08-05T12:25:59+00:00"
],
[
8453,
"aave-v3",
"0xcf3d55c10db69f28fd1a75bd73f3d8a2d9c595ad",
"aBascbETH",
"Aave Base cbETH",
"0x2ae3f1ec7f1f5012cfeab0185bfc7aa3cf0dec22",
"cbETH",
44810.21081798866,
95510915.5071215,
198.66039652239724,
423435.55186410545,
95510915.5071215,
75000,
159859070.78478777,
1010,
2152768.8199018086,
95087479.9552574,
64348155.27766627,
2.598800631263669e-06,
0.0006896357746783077,
2.598800631263669e-06,
null,
null,
0.004433373396285088,
0.75,
false,
true,
"2026-08-05T12:13:45+00:00"
],
[
8453,
"morpho-v2",
"0x050ce30b927da55177a4914ec73480238bad56f0",
"gtusdcp",
"Gauntlet USDC Prime",
"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"USDC",
89507477.716926,
89507477.716926,
0,
0,
89507477.716926,
825567299.452334,
825567299.452334,
null,
null,
83870351.353846,
736059821.7354081,
0.05058117224402148,
null,
0.05058117224402148,
0,
0,
null,
null,
false,
true,
"2026-08-05T12:26:03+00:00"
],
[
8453,
"morpho-v2",
"0xbeeff0be997cca5b1c13a7433c2004637975739e",
"ethenaUSDC",
"Ethena x Steakhouse USDC",
"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"USDC",
79955241.774425,
79955241.774425,
0,
0,
79955241.774425,
599686692.420975,
599686692.420975,
null,
null,
42804222.871415,
519731450.64654994,
0.033264641630884384,
null,
0.03160140954934016,
0.05,
0,
null,
null,
false,
true,
"2026-08-05T10:18:45+00:00"
]
],
"rows": 100
}
]
Result collections are limited to 10 items in this documentation example. The
dataarray can contain up tolimitrows (default 100, max 1000) when calling the live endpoint.
The response returns pools/vaults across multiple protocols (Morpho v1/v2, Aave v3) on Base, ordered by TVL. Each row includes supply/borrow amounts, APYs, caps, and risk parameters like LTV and utilization rate.
x402 Payment Option
This endpoint supports pay-per-use access via the x402 payment protocol (v2), paying $0.05 USDC per request using blockchain micropayments. No API key required.
Quick Start (TypeScript)
npm install @x402/fetch @x402/evm viem
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { wrapFetchWithPayment } from "@x402/fetch";
import { privateKeyToAccount } from "viem/accounts";
const signer = privateKeyToAccount(process.env.EVM_PRIVATE_KEY as `0x${string}`);
const client = new x402Client();
client.register("eip155:*", new ExactEvmScheme(signer));
const fetchWithPayment = wrapFetchWithPayment(fetch, client);
const response = await fetchWithPayment(
"https://x402.cambrian.org/evm/lending/overview"
);
const data = await response.json();
Quick Start (Python)
pip install "x402[httpx]"
import asyncio, os
from eth_account import Account
from x402 import x402Client
from x402.http.clients import x402HttpxClient
from x402.mechanisms.evm import EthAccountSigner
from x402.mechanisms.evm.exact.register import register_exact_evm_client
async def main():
client = x402Client()
account = Account.from_key(os.getenv("EVM_PRIVATE_KEY"))
register_exact_evm_client(client, EthAccountSigner(account))
async with x402HttpxClient(client) as http:
response = await http.get("https://x402.cambrian.org/evm/lending/overview")
print(response.json())
asyncio.run(main())
Payment Flow
- Send a normal request to the endpoint (no API key needed)
- Server returns
402 Payment Requiredwith payment details - The x402 SDK automatically signs a payment authorization with your wallet
- The SDK resubmits the request with the signed payment
- Server verifies payment and returns the API response
The x402 SDK handles steps 2 through 5 automatically.
Network: Base (chain ID 8453) | Currency: USDC | Price: $0.05 per request
Related Endpoints
- /evm/lending/protocols - This endpoint lists all of the supported lending protocols
- /evm/tokens - Returns a list of all erc20 tokens for the specified EVM chain, including their contract addresses, symbols, names, and decimal places.
- /evm/chains - Returns information about supported EVM blockchain networks