DeFi Yields
getYieldsLending
APY and TVL from lending protocols. All three query parameters are required.
curl -X POST https://your-endpoint.simplystaking.xyz/v1 \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "getYieldsLending",
"params": {
"chain": "ethereum",
"protocol": "aave",
"pool": "USDC"
},
"id": 1
}'import { Spectrum } from '@spectrumnodes/sdk';
const spectrum = new Spectrum({ api: 'https://your-endpoint.simplystaking.xyz/YOUR_API_KEY/' });
const result = await spectrum.yields.getLending({
chain: 'ethereum',
protocol: 'aave',
pool: 'USDC'
});
console.log(result);{
"jsonrpc": "2.0",
"result": {
"data": {
"results": [
{
"chain": "ethereum",
"protocol": "aave",
"pool": "USDC",
"supplyApy": 3.2,
"borrowApy": 4.8,
"tvl": 2400000000
}
],
"updatedAt": "2026-02-25T15:00:00.000Z"
}
},
"id": 1
}Protocol Details
| Protocol | Pool Format | Chains |
|---|---|---|
| Aave | Asset symbole.g. USDC, WETH, wstETH, WBTC, DAI | Ethereum, Polygon, Optimism, Base, Avalanche, Arbitrum |
| Compound | Comet contract addresse.g. 0xc3d688B... | Ethereum, Polygon, Optimism, Base, Arbitrum |
| Morpho | Vault addresse.g. 0x... | Ethereum, Polygon, Optimism, Base, Avalanche, Arbitrum, BNB Chain |
| HyperLend | Token addresse.g. 0x... | Hyperliquid |
Parameters
| Name | Required | Description |
|---|---|---|
| chain | yes | Chain slug e.g. ethereum |
| protocol | yes | Lending protocol Options: aave, compound, morpho, hyperlend |
| pool | yes | Asset symbol (e.g. USDC, WETH) e.g. USDC |
Response Fields
| Field | Type |
|---|---|
data | object |
results | object[] |
chain | string |
protocol | string |
pool | string |
supplyApy | number |
borrowApy | number |
tvl | integer |
updatedAt | string |
getYieldsVaults
APY and TVL from yield aggregators and vault protocols. All three query parameters are required.
curl -X POST https://your-endpoint.simplystaking.xyz/v1 \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "getYieldsVaults",
"params": {
"chain": "ethereum",
"protocol": "beefy",
"pool": "aavev3-usdc"
},
"id": 1
}'import { Spectrum } from '@spectrumnodes/sdk';
const spectrum = new Spectrum({ api: 'https://your-endpoint.simplystaking.xyz/YOUR_API_KEY/' });
const result = await spectrum.yields.getVaults({
chain: 'ethereum',
protocol: 'beefy',
pool: 'aavev3-usdc'
});
console.log(result);{
"jsonrpc": "2.0",
"result": {
"data": {
"results": [
{
"chain": "ethereum",
"protocol": "beefy",
"pool": "aavev3-usdc",
"apy": 5.4,
"tvl": 18000000
}
],
"updatedAt": "2026-02-25T15:00:00.000Z"
}
},
"id": 1
}Protocol Details
| Protocol | Pool Format | Chains |
|---|---|---|
| Beefy | Vault IDe.g. aavev3-usdc, convex-fraxusdc | Ethereum, Polygon, Optimism, Base, Avalanche, Arbitrum, BNB Chain |
| Yearn | Vault addresse.g. 0x... | Ethereum, Arbitrum |
| Pendle | Market addresse.g. 0x... | Ethereum, Optimism, BNB Chain, Arbitrum, Base |
| Hyperliquid | Vault addresse.g. 0x... | Hyperliquid |
Parameters
| Name | Required | Description |
|---|---|---|
| chain | yes | Chain slug e.g. ethereum |
| protocol | yes | Vault protocol Options: beefy, yearn, pendle, hyperliquid |
| pool | yes | Vault/pool identifier e.g. aavev3-usdc |
Response Fields
| Field | Type |
|---|---|
data | object |
results | object[] |
chain | string |
protocol | string |
pool | string |
apy | number |
tvl | integer |
updatedAt | string |
getYieldsBest
Scans all lending and vault protocols across all supported chains and returns the highest yields sorted by APY. Useful for finding the best place to deploy capital.
curl -X POST https://your-endpoint.simplystaking.xyz/v1 \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "getYieldsBest",
"params": {
"token": "USDC",
"minTvl": 1000000,
"limit": 10
},
"id": 1
}'import { Spectrum } from '@spectrumnodes/sdk';
const spectrum = new Spectrum({ api: 'https://your-endpoint.simplystaking.xyz/YOUR_API_KEY/' });
const result = await spectrum.yields.getBest({ token: 'USDC', limit: 10 });
console.log(result);{
"jsonrpc": "2.0",
"result": {
"data": {
"results": [
{
"chain": "ethereum",
"protocol": "beefy",
"type": "vault",
"pool": "aavev3-usdc",
"apy": 5.4
},
{
"chain": "ethereum",
"protocol": "aave",
"type": "lending",
"pool": "USDC",
"apy": 3.2
}
],
"updatedAt": "2026-02-25T15:00:00.000Z"
}
},
"id": 1
}Parameters
| Name | Required | Description |
|---|---|---|
| token | no | Filter by token symbol e.g. USDC |
| minTvl | no | Minimum TVL in USD e.g. 1000000 |
| limit | no | Max results (default 10) e.g. 10 |
| type | no | Yield type filter Options: lending, vault, staking |
Response Fields
| Field | Type |
|---|---|
data | object |
results | object[] |
chain | string |
protocol | string |
type | string |
pool | string |
apy | number |
updatedAt | string |
getYieldsBalance
Returns a user's balance in a specific lending or vault protocol pool. All four query parameters are required.
curl -X POST https://your-endpoint.simplystaking.xyz/v1 \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "getYieldsBalance",
"params": {
"chain": "ethereum",
"protocol": "aave",
"pool": "USDC",
"address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
},
"id": 1
}'import { Spectrum } from '@spectrumnodes/sdk';
const spectrum = new Spectrum({ api: 'https://your-endpoint.simplystaking.xyz/YOUR_API_KEY/' });
const result = await spectrum.yields.getBalance({
chain: 'ethereum',
protocol: 'aave',
pool: 'USDC',
address: '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045'
});
console.log(result);{
"jsonrpc": "2.0",
"result": {
"data": {
"results": [
{
"chain": "ethereum",
"protocol": "aave",
"pool": "USDC",
"address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"balance": {
"USDC": 1500.5,
"USD": 1500.25
}
}
],
"updatedAt": "2026-02-25T15:00:00.000Z"
}
},
"id": 1
}Protocol Details
| Protocol | Pool Format | Chains |
|---|---|---|
| Aave | Asset symbole.g. USDC, WETH | Ethereum, Polygon, Optimism, Base, Avalanche, Arbitrum |
| Compound | Comet contract addresse.g. 0xc3d688B... | Ethereum, Polygon, Optimism, Base, Arbitrum |
| Morpho | Vault addresse.g. 0x... | Ethereum, Polygon, Optimism, Base, Avalanche, Arbitrum, BNB Chain |
| HyperLend | Token addresse.g. 0x... | Hyperliquid |
| Beefy | Vault IDe.g. aavev3-usdc | Ethereum, Polygon, Optimism, Base, Avalanche, Arbitrum, BNB Chain |
| Yearn | Vault addresse.g. 0x... | Ethereum, Arbitrum |
| Pendle | Market addresse.g. 0x... | Ethereum, Optimism, BNB Chain, Arbitrum, Base |
| Hyperliquid | Vault addresse.g. 0x... | Hyperliquid |
Parameters
| Name | Required | Description |
|---|---|---|
| chain | yes | Chain slug e.g. ethereum |
| protocol | yes | Protocol name Options: aave, compound, morpho, hyperlend, beefy, yearn, pendle, hyperliquid |
| pool | yes | Pool/asset identifier e.g. USDC |
| address | yes | Wallet address to check e.g. 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 |
Response Fields
| Field | Type |
|---|---|
data | object |
results | object[] |
chain | string |
protocol | string |
pool | string |
address | string |
balance | object |
USDC | number |
USD | number |
updatedAt | string |
getYieldsPrice
Returns the current price per share in USD for a pool token. Useful for converting pool token balances to USD value.
curl -X POST https://your-endpoint.simplystaking.xyz/v1 \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "getYieldsPrice",
"params": {
"chain": "ethereum",
"protocol": "aave",
"pool": "USDC"
},
"id": 1
}'import { Spectrum } from '@spectrumnodes/sdk';
const spectrum = new Spectrum({ api: 'https://your-endpoint.simplystaking.xyz/YOUR_API_KEY/' });
const result = await spectrum.yields.getPrice({
chain: 'ethereum',
protocol: 'aave',
pool: 'USDC'
});
console.log(result);{
"jsonrpc": "2.0",
"result": {
"data": {
"results": [
{
"chain": "ethereum",
"protocol": "aave",
"pool": "USDC",
"price": {
"USD": 1.0012
}
}
],
"updatedAt": "2026-02-25T15:00:00.000Z"
}
},
"id": 1
}Protocol Details
| Protocol | Pool Format | Chains |
|---|---|---|
| Aave | Asset symbole.g. USDC, WETH | Ethereum, Polygon, Optimism, Base, Avalanche, Arbitrum |
| Morpho | Vault addresse.g. 0x... | Ethereum, Polygon, Optimism, Base, Avalanche, Arbitrum, BNB Chain |
| Pendle | Market addresse.g. 0x... | Ethereum, Optimism, BNB Chain, Arbitrum, Base |
| Midas | Token namee.g. mRe7YIELD | Ethereum |
Parameters
| Name | Required | Description |
|---|---|---|
| chain | yes | Chain slug e.g. ethereum |
| protocol | yes | Protocol name Options: aave, morpho, pendle, midas |
| pool | yes | Pool/asset identifier e.g. USDC |
Response Fields
| Field | Type |
|---|---|
data | object |
results | object[] |
chain | string |
protocol | string |
pool | string |
price | object |
USD | number |
updatedAt | string |
getYieldsPendleImpliedApy
Calculates the implied APY for a user's Pendle PT position based on their entry price and time to expiry. Returns the effective exchange rate, days to expiry, and implied APY.
curl -X POST https://your-endpoint.simplystaking.xyz/v1 \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "getYieldsPendleImpliedApy",
"params": {
"chain": "ethereum",
"pool": "0x7d372819240d14fb477f17b964f95f33beb4c704",
"address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
},
"id": 1
}'import { Spectrum } from '@spectrumnodes/sdk';
const spectrum = new Spectrum({ api: 'https://your-endpoint.simplystaking.xyz/YOUR_API_KEY/' });
const result = await spectrum.yields.getPendleImpliedApy({
chain: 'ethereum',
pool: '0x7d372819240d14fb477f17b964f95f33beb4c704',
address: '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045'
});
console.log(result);{
"jsonrpc": "2.0",
"result": {
"data": {
"results": [
{
"chain": "ethereum",
"pool": "0x7d372819240d14fb477f17b964f95f33beb4c704",
"address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"effectivePtExchangeRate": 0.95,
"expiryDate": "2026-12-25",
"daysToExpiry": 180,
"impliedApy": 5.2
}
],
"updatedAt": "2026-02-25T15:00:00.000Z"
}
},
"id": 1
}Protocol Details
| Protocol | Pool Format | Chains |
|---|---|---|
| Pendle | Market addresse.g. 0x7d372819... | Ethereum, Optimism, BNB Chain, Arbitrum, Base |
Parameters
| Name | Required | Description |
|---|---|---|
| chain | yes | Chain slug e.g. ethereum |
| pool | yes | Pendle market address e.g. 0x7d372819240d14fb477f17b964f95f33beb4c704 |
| address | yes | User wallet address e.g. 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 |
Response Fields
| Field | Type |
|---|---|
data | object |
results | object[] |
chain | string |
pool | string |
address | string |
effectivePtExchangeRate | number |
expiryDate | string |
daysToExpiry | integer |
impliedApy | number |
updatedAt | string |
getMorphoVaults
Returns all available Morpho vaults on a chain with basic metadata (address, name, symbol, version). Use this to discover vaults before querying detailed data.
curl -X POST https://your-endpoint.simplystaking.xyz/v1 \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "getMorphoVaults",
"params": {
"chain": "ethereum"
},
"id": 1
}'{
"jsonrpc": "2.0",
"result": {
"data": {
"chain": "ethereum",
"count": 42,
"vaults": [
{
"address": "0xdd0f28e19C1780eb6396170735D45153D261490d",
"name": "Gauntlet USDC Prime",
"symbol": "gtUSDC",
"chainId": 1,
"chain": {
"id": 1,
"network": "ethereum"
},
"version": "v2",
"whitelisted": true
}
]
}
},
"id": 1
}Parameters
| Name | Required | Description |
|---|---|---|
| chain | yes | Chain slug e.g. ethereum |
Response Fields
| Field | Type |
|---|---|
data | object |
chain | string |
count | integer |
vaults | object[] |
address | string |
name | string |
symbol | string |
chainId | integer |
chain | object |
id | integer |
network | string |
version | string |
whitelisted | boolean |
getMorphoVaultData
Returns detailed data for specific Morpho vaults including APY, TVL, fees, and reward info. Pass up to 50 vault addresses per request.
curl -X POST https://your-endpoint.simplystaking.xyz/v1 \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "getMorphoVaultData",
"params": {
"chain": "ethereum",
"vaults": [
"0xdd0f28e19C1780eb6396170735D45153D261490d"
]
},
"id": 1
}'{
"jsonrpc": "2.0",
"result": {
"data": {
"chain": "ethereum",
"count": 1,
"vaults": [
{
"address": "0xdd0f28e19C1780eb6396170735D45153D261490d",
"name": "Gauntlet USDC Prime",
"symbol": "gtUSDC",
"chainId": 1,
"totalAssets": "125000000000000",
"totalAssetsUsd": 125000000,
"totalSupply": "120000000000000000000000000",
"fee": 0.1,
"apy": 4.5,
"netApy": 4.05,
"avgApy": 4.2,
"avgNetApy": 3.78,
"lastUpdated": "2026-02-25T15:00:00.000Z"
}
]
}
},
"id": 1
}Parameters
| Name | Required | Description |
|---|---|---|
| chain | yes | Chain slug e.g. ethereum |
| vaults | yes | Comma-separated vault addresses (max 50) e.g. 0xdd0f28e19C1780eb6396170735D45153D261490d |
Response Fields
| Field | Type |
|---|---|
data | object |
chain | string |
count | integer |
vaults | object[] |
address | string |
name | string |
symbol | string |
chainId | integer |
totalAssets | string |
totalAssetsUsd | integer |
totalSupply | string |
fee | number |
apy | number |
netApy | number |
avgApy | number |
avgNetApy | number |
lastUpdated | string |