Cambrian Lending Morpho V2 Vault Markets endpoint API

By Cambrian Network evm

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 allocationUsd and allocationShare per 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

  1. Send a normal request to the endpoint (no API key needed)
  2. Server returns 402 Payment Required with payment details
  3. The x402 SDK automatically signs a payment authorization with your wallet
  4. The SDK resubmits the request with the signed payment
  5. 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