Cambrian Lending Morpho V2 Vault Markets endpoint API
GET /evm/lending/morpho/v2/vault/markets
Lending Morpho V2 Vault Markets
Overview
Retrieves the underlying Morpho Blue markets that a specific Morpho V2 vault allocates capital to, including per-market supply/borrow APYs, utilization, LLTV, and USD allocation metrics. This gives a granular, market-by-market breakdown of where a V2 vault's deposited funds are deployed.
Business Value
- Vault Transparency: Shows exactly which lending markets a Morpho V2 vault is exposed to, so depositors can assess the underlying risk.
- Yield Attribution: Breaks down supply and borrow APYs per market to explain the blended yield a vault generates.
- Risk Assessment: Exposes utilization rate and LLTV per market, both inputs for evaluating liquidation and liquidity risk.
- Allocation Analysis: Reports
allocationUsdandallocationShareper market, which show capital concentration and diversification within the vault. - Portfolio Monitoring: Supports automated tracking of vault rebalancing and market exposure changes over time via
updatedAt.
Endpoint Details
URL:
https://api.cambrian.org/evm/lending/morpho/v2/vault/markets
Method: GET
Authentication: Required via X-API-Key header
Query Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| chain_id | integer | No | 8453 | EVM chain ID. Enum: 1, 8453, 42161, 4663 |
| vault_address | string | Yes | - | Morpho V2 vault address. Pattern: ^0x[a-fA-F0-9]{40}$ |
| order_asc | array | No | - | List of column names to order by ascending, comma-separated. Leave empty items to combine with descending order. Allowed values: chainId, protocolId, marketId, loanAddress, loanSymbol, collateralAddress, collateralSymbol, supplyApy, borrowApy, utilizationRate, lltv, allocationUsd, allocationShare, supplyCapUsd, updatedAt |
| order_desc | array | No | - | List of column names to order by descending, comma-separated. Leave empty items to combine with ascending order. Allowed values: chainId, protocolId, marketId, loanAddress, loanSymbol, collateralAddress, collateralSymbol, supplyApy, borrowApy, utilizationRate, lltv, allocationUsd, allocationShare, supplyCapUsd, updatedAt |
Response Field Descriptions
| Response Field | Type | Description |
|---|---|---|
| chainId | UInt16 | EVM chain ID the market is on |
| protocolId | String | Protocol identifier (e.g. "morpho-blue") |
| marketId | Nullable(String) | Unique identifier of the underlying Morpho Blue market |
| loanAddress | String | Contract address of the loan (borrowed) asset |
| loanSymbol | String | Symbol of the loan asset |
| collateralAddress | Nullable(String) | Contract address of the collateral asset |
| collateralSymbol | Nullable(String) | Symbol of the collateral asset |
| supplyApy | Float64 | Supply APY for the market |
| borrowApy | Float64 | Borrow APY for the market |
| utilizationRate | Float64 | Current utilization rate of the market |
| lltv | Nullable(Float64) | Liquidation loan-to-value ratio for the market |
| allocationUsd | Float64 | USD value the vault has allocated to this market |
| allocationShare | Float64 | Share of the vault's total allocation represented by this market |
| supplyCapUsd | Nullable(Float64) | Supply cap for the market in USD, if set |
| updatedAt | DateTime('UTC') | Timestamp when the market data was last updated |
Examples
1. Get Underlying Markets for a Morpho V2 Vault
Fetch the list of Morpho Blue markets that a specific Morpho V2 vault allocates capital to, on Base (default chain_id=8453).
curl -X GET "https://api.cambrian.org/evm/lending/morpho/v2/vault/markets?vault_address=0xbeeff7aE5E00Aae3Db302e4B0d8C883810a58100" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json"
Response:
[
{
"columns": [
{
"name": "chainId",
"type": "UInt16"
},
{
"name": "protocolId",
"type": "String"
},
{
"name": "marketId",
"type": "Nullable(String)"
},
{
"name": "loanAddress",
"type": "String"
},
{
"name": "loanSymbol",
"type": "String"
},
{
"name": "collateralAddress",
"type": "Nullable(String)"
},
{
"name": "collateralSymbol",
"type": "Nullable(String)"
},
{
"name": "supplyApy",
"type": "Float64"
},
{
"name": "borrowApy",
"type": "Float64"
},
{
"name": "utilizationRate",
"type": "Float64"
},
{
"name": "lltv",
"type": "Nullable(Float64)"
},
{
"name": "allocationUsd",
"type": "Float64"
},
{
"name": "allocationShare",
"type": "Float64"
},
{
"name": "supplyCapUsd",
"type": "Nullable(Float64)"
},
{
"name": "updatedAt",
"type": "DateTime('UTC')"
}
],
"data": [
[
8453,
"morpho-blue",
"0x18316ce427a45d18852267bc90a34548bcc257efc9c8aa48186cb71a095d2f81",
"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"USDC",
"0x7d214438d0f27afccc23b3d1e1a53906ace5cfea",
"reUSD",
0.013191550542097103,
0.02569088295009192,
0.5134720580730334,
0.915,
3.7569065801243036e-08,
1.4923140634999089e-15,
null,
"2026-10-05T12:57:35+00:00"
],
[
8453,
"morpho-blue",
"0x9103c3b4e834476c9a62ea009ba2c884ee42e94e6e314a26f04d312434191836",
"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"USDC",
"0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf",
"cbBTC",
0.044562038384301735,
0.0494848101492229,
0.9005195382163456,
0.86,
976143.0751735994,
0.03877424173324569,
null,
"2026-10-05T13:01:45+00:00"
],
[
8453,
"morpho-blue",
"0xd4a903dc6d949519060c7707f9604fdc9772c046e05c2e3a8fce0bd7196e4109",
"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"USDC",
"0xcb585250f852c6c6bf90434ab21a00f02833a4af",
"CBXRP",
0.05591404502254249,
0.0621172000707213,
0.900137883853161,
0.625,
14301853.140741678,
0.5680965475413281,
null,
"2026-10-05T13:01:03+00:00"
],
[
8453,
"morpho-blue",
"0x09276541cfecb6920a80679a1deced4dde3ae64bf5fc2c9c1f9c21e0c152e1a5",
"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"USDC",
"0x97be14dd8f994a5364573bc035d85309e7cb34de",
"JitoSOL",
0.05092949128842903,
0.05823684578812416,
0.8745235185593574,
0.625,
8.319055610764325e-07,
3.3044855969164576e-14,
null,
"2026-10-05T12:57:35+00:00"
],
[
8453,
"morpho-blue",
"0x76629002c9fdb20fb2092053a4f22c5c65e04a81887218b9546f2a2d82b4c0a8",
"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"USDC",
"0xb200000000000000000000451d033a5000cb479e",
"cbHYPE",
0.05594911156425073,
0.0604377451471505,
0.9257312864341466,
0.625,
24144.144706537507,
0.0009590509087279638,
null,
"2026-10-05T12:57:35+00:00"
],
[
8453,
"morpho-blue",
"0xa3913d896b7e9c0e0a84f1be27d376cf2065616101cb7c44674af8a154e684cc",
"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"USDC",
"0xb2000000000000000000002d0ba3164cc74f58b7",
"GOOGL",
0.0479513682464785,
0.05327382876422826,
0.9000923973137889,
0.77,
702.603795429306,
2.7908746268396025e-05,
null,
"2026-10-05T12:57:35+00:00"
],
[
8453,
"morpho-blue",
"0xb4b42dd66cef25614b94510a910d54b2c148e7621d22b4271566724beda63d13",
"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"USDC",
"0xb20000000000000000000078ee7ce2fe4908108c",
"NVDA",
0.040114630678584264,
0.049360642703478064,
0.8126845292425193,
0.625,
4.403310642375118e-07,
1.7490779335156613e-14,
null,
"2026-10-05T12:57:35+00:00"
],
[
8453,
"morpho-blue",
"0x99f294c452edc091c988688d501dca78a06ba559065c242b19653452e6affc7a",
"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"USDC",
"0x83db73ef5192de4b6a4c92bd0141ba1a0dc87c65",
"cUSDO",
1.2422764726512516,
1.802792640829355,
0.6890845039614516,
0.915,
8.454396662137712e-07,
3.358245611978287e-14,
null,
"2026-10-05T12:57:35+00:00"
],
[
8453,
"morpho-blue",
"0x8793cf302b8ffd655ab97bd1c695dbd967807e8367a65cb2f4edaf1380ba1bda",
"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"USDC",
"0x4200000000000000000000000000000000000006",
"WETH",
0.044234161941395664,
0.04855851062953809,
0.9109456070196699,
0.86,
0.0018971453863795133,
7.535818845153299e-11,
null,
"2026-10-05T12:58:19+00:00"
],
[
8453,
"morpho-blue",
"0xaf2657ed859dcac494afc20ba83e26fa153414da971a1f082ebfcb45d73955f1",
"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"USDC",
"0xc31e19dc6c8a90d628432e15bbd538aa8c789e5d",
"PT-USDai-18JUN2026-(ARB)",
0,
141.29744168428763,
0,
0.915,
1.1726266448325386e-06,
4.6578939241561096e-14,
null,
"2026-10-05T12:57:35+00:00"
]
],
"rows": 31
}
]
Result collections are limited to 10 items. The response shows 10 of 31 total underlying markets for this vault on Base, each with its own loan/collateral pair, APYs, utilization, LLTV, and USD allocation.
x402 Payment Option
This endpoint supports pay-per-use access via the x402 payment protocol (v2), charging $0.05 USDC per request in 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/morpho/v2/vault/markets"
);
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/morpho/v2/vault/markets")
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