Cambrian Sky Lending vault endpoint API
GET /evm/lending/sky/vaults
Sky Lending Vaults
Overview
Returns Sky Protocol lending vaults (such as Savings USDS, Staked USDS, and Savings Dai) with supply, borrow, TVL, APY, and capacity metrics on Ethereum. Results can be filtered by vault or underlying token address and sorted by any supported column.
Business Value
- Yield Discovery: Quickly compare supply APYs across Sky vaults (e.g. sUSDS, stUSDS, sDAI) to identify the best savings/yield opportunities.
- Liquidity Monitoring: Track available liquidity, supply caps, and remaining capacity to assess deposit headroom before allocating capital.
- Risk Assessment: Surface utilization rate, LTV, and fee parameters to evaluate the risk/return profile of each vault.
- Portfolio Tracking: Monitor TVL and supply balances over time for positions held in Sky lending vaults.
- Protocol Analytics: Aggregate Sky Protocol lending data for dashboards, alerts, and cross-protocol comparisons.
Endpoint Details
URL:
https://api.cambrian.org/evm/lending/sky/vaults
Method: GET
Authentication: Required via X-API-Key header
Query Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| vault_address | string | No | - | Sky vault address |
| underlying_address | string | No | - | Underlying token address. See tokens for valid addresses. |
| chain_id | integer | No | 1 | EVM chain ID. |
| min_tvl_usd | integer | No | - | Minimum TVL Usd of the lending pool/vault |
| 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 | UInt8 | EVM chain ID |
| protocolId | String | Lending protocol identifier |
| vaultAddress | FixedString(42) | Sky vault contract address |
| symbol | String | Vault token symbol |
| vaultName | String | Vault display name |
| underlyingAddress | String | Underlying token contract address |
| underlyingSymbol | String | Underlying token symbol |
| supply | Float64 | Total supplied amount in underlying token units |
| supplyUsd | Float64 | Total supplied amount in USD |
| borrow | Nullable(Float64) | Total borrowed amount in underlying token units |
| borrowUsd | Nullable(Float64) | Total borrowed amount in USD |
| tvlUsd | Float64 | Total value locked in USD |
| availableLiquidityUsd | Float64 | Available liquidity 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 |
| remainingCapacityUsd | Nullable(Float64) | Remaining supply capacity in USD before hitting the cap |
| supplyApy | Nullable(Float64) | Supply APY (annual percentage yield) |
| borrowApy | Nullable(Float64) | Borrow APY (annual percentage yield) |
| netSupplyApy | Nullable(Float64) | Net supply APY after fees |
| performanceFee | Nullable(Float64) | Performance fee charged on yield |
| managementFee | Nullable(Float64) | Management fee charged on the vault |
| utilizationRate | Nullable(Float64) | Ratio of borrowed to supplied funds |
| ltv | Nullable(Float64) | Loan-to-value ratio |
| borrowable | Bool | Whether the vault supports borrowing |
| depositEnabled | Bool | Whether deposits are currently enabled |
| updatedAt | DateTime('UTC') | Timestamp when the data was last updated |
Examples
1. List Sky Lending Vaults
Retrieve Sky Protocol lending vaults with a limit of 10 results.
curl -X GET "https://api.cambrian.org/evm/lending/sky/vaults?limit=10" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json"
Response:
[
{
"columns": [
{
"name": "chainId",
"type": "UInt8"
},
{
"name": "protocolId",
"type": "String"
},
{
"name": "vaultAddress",
"type": "FixedString(42)"
},
{
"name": "symbol",
"type": "String"
},
{
"name": "vaultName",
"type": "String"
},
{
"name": "underlyingAddress",
"type": "String"
},
{
"name": "underlyingSymbol",
"type": "String"
},
{
"name": "supply",
"type": "Float64"
},
{
"name": "supplyUsd",
"type": "Float64"
},
{
"name": "borrow",
"type": "Nullable(Float64)"
},
{
"name": "borrowUsd",
"type": "Nullable(Float64)"
},
{
"name": "tvlUsd",
"type": "Float64"
},
{
"name": "availableLiquidityUsd",
"type": "Float64"
},
{
"name": "supplyCap",
"type": "Nullable(Float64)"
},
{
"name": "supplyCapUsd",
"type": "Nullable(Float64)"
},
{
"name": "borrowCap",
"type": "Nullable(Float64)"
},
{
"name": "borrowCapUsd",
"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": [
[
1,
"sky-lending",
"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd",
"sUSDS",
"Savings USDS",
"0xdc035d45d973e3ec169d2276ddab16f1e407384f",
"USDS",
4697087387.534656,
4697087387.534656,
null,
null,
4697087387.534656,
4697087387.534656,
null,
null,
null,
null,
null,
0.03522379193427483,
null,
0.03522379193427483,
null,
null,
null,
null,
false,
true,
"2026-09-03T14:27:35+00:00"
],
[
1,
"sky-lending",
"0x99cd4ec3f88a45940936f469e4bb72a2a701eeb9",
"stUSDS",
"Staked USDS",
"0xdc035d45d973e3ec169d2276ddab16f1e407384f",
"USDS",
205839979.23579434,
205839979.23579434,
null,
null,
205839979.23579434,
205839979.23579434,
214000000,
214000000,
null,
null,
8160020.764205664,
0.05383669195428764,
null,
0.05383669195428764,
null,
null,
null,
null,
false,
true,
"2026-09-03T12:11:11+00:00"
],
[
1,
"sky-lending",
"0x83f20f44975d03b1b09e64809b757c47f942beea",
"sDAI",
"Savings Dai",
"0x6b175474e89094c44da98b954eedeac495271d0f",
"DAI",
166563348.4334195,
166563348.4334195,
null,
null,
166563348.4334195,
166563348.4334195,
null,
null,
null,
null,
null,
0.012508357850979479,
null,
0.012508357850979479,
null,
null,
null,
null,
false,
true,
"2026-09-03T14:00:00+00:00"
]
],
"rows": 3
}
]
Result collections are limited to 10 items. This response returns 3 Sky vaults (sUSDS, stUSDS, sDAI) on Ethereum, each with supply, TVL, and APY metrics; stUSDS also has a defined supply cap, with remaining capacity of ~$8.16M.
x402 Payment Option
This endpoint supports pay-per-use access via the x402 payment protocol (v2): pay $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/sky/vaults"
);
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/sky/vaults")
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