Skip to main content
Pendle is a yield-trading protocol that splits yield-bearing assets into Principal Tokens (PT) for fixed yield and Yield Tokens (YT) for floating yield. The API returns four position types across Pendle markets.

Supported chains

Chain IDNetwork
1Ethereum
10Optimism
56BSC
146Sonic
8453Base
42161Arbitrum

Position types

Type identifierDescriptionKey fields
pendle-ptPrincipal Token (fixed yield)impliedApy, lockedApy, expiryDate, ptDiscount
pendle-ytYield Token (floating yield)impliedApy, expiryDate, accruedInterest
pendle-lpLiquidity Provider sharelpApy, impliedApy, expiryDate
pendle-syStandardized Yield tokenbalance, balanceUsd

walletPositions example

query {
  walletPositions(inputs: [
    { protocol: "pendle", chainId: 1, walletAddress: "0x742d35Cc6634C0532925a3b8D4C9db96C4b4d8b6" }
  ]) {
    data {
      ... on PendleWalletPositions {
        protocol walletAddress chainId
        ptPositions {
          type marketAddress chainId
          ptToken { address symbol decimals }
          underlyingAsset { address symbol decimals }
          balance balanceUsd impliedApy lockedApy expiryDate ptDiscount
        }
        ytPositions {
          type marketAddress chainId
          ytToken { address symbol decimals }
          underlyingAsset { address symbol decimals }
          balance balanceUsd impliedApy expiryDate accruedInterest
        }
        lpPositions {
          type marketAddress chainId
          lpToken { address symbol decimals }
          underlyingAsset { address symbol decimals }
          balance balanceUsd lpApy impliedApy expiryDate
        }
        syPositions {
          type syTokenAddress chainId
          syToken { address symbol decimals }
          underlyingAsset { address symbol decimals }
          balance balanceUsd
        }
      }
    }
    errors { protocol chainId walletAddress error { code message retryable } }
  }
}

poolDetails example

query {
  poolDetails(inputs: [
    { protocol: "pendle", chainId: 1, poolAddress: "0xD0354D4e7bCf345fB117cabe41aCaDb724eccCa2" }
  ]) {
    data { protocol chainId poolAddress data }
    errors { protocol chainId poolAddress error { code message retryable } }
  }
}

Notes

  • impliedApy is the current market rate for the fixed yield. lockedApy is the user’s actual locked rate based on their entry price — it is null if no transaction history is available
  • ptDiscount is the discount of PT price relative to the underlying (e.g., 0.012 = 1.2% discount)
  • accruedInterest on YT positions represents unclaimed yield in underlying token units
  • expiryDate is an ISO 8601 string. After maturity, PT tokens are redeemable 1:1 for the underlying
  • APY values are decimals (e.g., 0.038 = 3.8%)