poolDetails Fetch pool and market data across protocols.
poolDetails ( inputs : [ PoolInput ! ] ! ) : MultiPoolResponse ! Returns pool-level data (APY, TVL, token metadata) for one or more pools across protocols.
Warning
Maximum 5 inputs per request. Requests with more than 5 inputs are rejected.
Warning
Rate limit : 100 requests per 60-second window. Maximum 5 inputs per request. Exceeding the limit returns HTTP 429.
Input input PoolInput {
protocol : String ! # "morpho" | "pendle" | "aave"
chainId : Int ! # Chain ID
poolAddress : String ! # Pool /vault /market contract address
} Field Type Description protocol String! Protocol identifier chainId Int! Blockchain network ID poolAddress String! Pool or market contract address (hex)
Info
Pool details are currently supported for Morpho , Pendle , and Aave .
Response type PoolOutput {
protocol : String ! # Protocol that returned the data
chainId : Int ! # Chain ID of the pool
poolAddress : String ! # Pool address queried
data : String ! # JSON -serialized protocol -native pool data
}
type MultiPoolResponse {
data : [ PoolOutput ! ] !
errors : [ PoolProtocolError ! ] !
} Warning
The data field is a JSON string . Parse it with JSON.parse() to access the typed object. Use the type field in the parsed object to determine the response shape.
Note
Partial failures : If one protocol fails, the others still return data. Always check both data and errors arrays in the response.
Examples Morpho Pendle Aave
Morpho supports two pool types. Pass a vault address (42-character hex) for vault pool data, or a market unique key (66-character hex) for market pool data.
Vault pool query {
poolDetails ( inputs : [
{ protocol : "morpho" , chainId : 1 , poolAddress : "0xBBBBBbbBBb9cC5e90e3b3Af64bdAF62C37EEFFCb" }
] ) {
data { protocol chainId poolAddress data }
errors { protocol chainId poolAddress error { code message retryable } }
}
} {
"type" : "morpho-vault-pool" ,
"vaultAddress" : "0xbbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb" ,
"name" : "Morpho Blue USDC" ,
"symbol" : "mbUSDC" ,
"asset" : { "address" : "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" , "symbol" : "USDC" , "decimals" : 6 },
"chainId" : 1 ,
"network" : "mainnet" ,
"apy" : 0.072 ,
"netApy" : 0.068 ,
"avgApy" : 0.065 ,
"avgNetApy" : 0.061 ,
"totalAssets" : "52000000000" ,
"totalAssetsUsd" : 52000000.0 ,
"totalSupply" : "50800000000000000000000"
}
Expand Market pool query {
poolDetails ( inputs : [
{ protocol : "morpho" , chainId : 1 , poolAddress : "0xb323495f7e4148be5643a4ea4a8221eef163e4bccfdedc2a6f4696baacbc86cc" }
] ) {
data { protocol chainId poolAddress data }
errors { protocol chainId poolAddress error { code message retryable } }
}
} {
"type" : "morpho-market-pool" ,
"marketId" : "0xb323495f7e4148be5643a4ea4a8221eef163e4bccfdedc2a6f4696baacbc86cc" ,
"loanAsset" : { "address" : "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" , "symbol" : "USDC" , "decimals" : 6 },
"collateralAsset" : { "address" : "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" , "symbol" : "WETH" , "decimals" : 18 },
"chainId" : 1 ,
"metrics" : {
"supplyApy" : 0.042 , "borrowApy" : 0.058 ,
"netSupplyApy" : 0.055 , "netBorrowApy" : 0.045 ,
"fee" : 0.1 , "utilization" : 0.72
},
"tvl" : {
"supplyAssets" : "120000000000" , "supplyAssetsUsd" : 120000000.0 ,
"borrowAssets" : "86400000000" , "borrowAssetsUsd" : 86400000.0 ,
"collateralAssets" : "28000000000000000000000" , "collateralAssetsUsd" : 88200000.0 ,
"liquidityAssets" : "33600000000" , "liquidityAssetsUsd" : 33600000.0
},
"lltv" : 0.86
}
Expand query {
poolDetails ( inputs : [
{ protocol : "pendle" , chainId : 1 , poolAddress : "0xD0354D4e7bCf345fB117cabe41aCaDb724eccCa2" }
] ) {
data { protocol chainId poolAddress data }
errors { protocol chainId poolAddress error { code message retryable } }
}
} {
"type" : "pendle-market-pool" ,
"marketAddress" : "0xd0354d4e7bcf345fb117cabe41acadb724eccca2" ,
"chainId" : 1 ,
"name" : "stETH 26DEC2025" ,
"expiry" : "2025-12-26T00: 00 : 00 Z" ,
"pt" : "1-0xc69Ad9baB1dEE23F4605a82b3354F8E40d665F49" ,
"yt" : "1-0x76bf3565833927b94c0020a3eef57bf29d52e568" ,
"sy" : "1-0xcbC72d92b2dc8187414F6734718563898740C0BC" ,
"underlyingAsset" : "1-0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84" ,
"impliedApy" : 0.038 ,
"underlyingApy" : 0.034 ,
"aggregatedApy" : 0.072 ,
"maxBoostedApy" : 0.145 ,
"liquidity" : 45000000.0 ,
"totalTvl" : 120000000.0 ,
"totalPt" : 35000.5 ,
"totalSy" : 42000.3
}
Expand query {
poolDetails ( inputs : [
{ protocol : "aave" , chainId : 1 , poolAddress : "0x2f39d218133AFaB8F2B819B1066c7E434Ad94E9e" }
] ) {
data { protocol chainId poolAddress data }
errors { protocol chainId poolAddress error { code message retryable } }
}
} {
"type" : "aave-market-pool" ,
"marketAddress" : "0x2f39d218133afab8f2b819b1066c7e434ad94e9e" ,
"marketName" : "Aave V3 Ethereum" ,
"chainId" : 1 ,
"totalMarketSize" : 28534000000.0 ,
"totalAvailableLiquidity" : 12890000000.0 ,
"reserves" : [
{
"underlyingToken" : { "address" : "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" , "symbol" : "WETH" , "name" : "Wrapped Ether" , "decimals" : 18 },
"aToken" : { "address" : "0x4d5f47fa6a74757f35c14fd3a6ef8e3c9bc514e8" , "symbol" : "aEthWETH" },
"vToken" : { "address" : "0xea51d7853eefb32b6ee06b1c12e6dcca88be0ffe" , "symbol" : "variableDebtEthWETH" },
"supplyApy" : 0.0198 ,
"borrowApy" : 0.0285 ,
"sizeUsd" : 7722750000.0
}
]
}
Expand