Skip to main content
poolDetails(inputs: [PoolInput!]!): MultiPoolResponse!
Returns pool-level data (APY, TVL, token metadata) for one or more pools across protocols.
Maximum 5 inputs per request. Requests with more than 5 inputs are rejected.
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
}
FieldTypeDescription
protocolString!Protocol identifier
chainIdInt!Blockchain network ID
poolAddressString!Pool or market contract address (hex)
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!]!
}
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.
Partial failures: If one protocol fails, the others still return data. Always check both data and errors arrays in the response.

Examples

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.
query {
  poolDetails(inputs: [
    { protocol: "morpho", chainId: 1, poolAddress: "0xBBBBBbbBBb9cC5e90e3b3Af64bdAF62C37EEFFCb" }
  ]) {
    data { protocol chainId poolAddress data }
    errors { protocol chainId poolAddress error { code message retryable } }
  }
}
query {
  poolDetails(inputs: [
    { protocol: "morpho", chainId: 1, poolAddress: "0xb323495f7e4148be5643a4ea4a8221eef163e4bccfdedc2a6f4696baacbc86cc" }
  ]) {
    data { protocol chainId poolAddress data }
    errors { protocol chainId poolAddress error { code message retryable } }
  }
}