Skip to main content
Morpho Blue is a lending protocol with two position types: vaults (curated lending strategies) and markets (isolated lending/borrowing pools). The API returns V1 (MetaMorpho) vaults, V2 vaults, and direct market positions.

Supported chains

Chain IDNetwork
1Ethereum
10Optimism
137Polygon
8453Base
42161Arbitrum

Position types

Type identifierDescriptionKey fields
morpho-vault-v1MetaMorpho V1 vault depositshares, assets, assetsUsd, apy, vaultMetrics
morpho-vault-v2Morpho V2 vault depositshares, assets, assetsUsd, apy, vaultMetrics
morpho-marketDirect market positionsupply, borrow, collateral, healthFactor, marketMetrics

walletPositions example

query {
  walletPositions(inputs: [
    { protocol: "morpho", chainId: 1, walletAddress: "0x742d35Cc6634C0532925a3b8D4C9db96C4b4d8b6" }
  ]) {
    data {
      ... on MorphoWalletPositions {
        protocol
        walletAddress
        chainId
        vaultV1Positions {
          type vaultAddress vaultName vaultSymbol
          shares assets assetsUsd apy
          underlyingAsset { address symbol decimals }
          vaultMetrics { totalAssets totalAssetsUsd totalSupply }
        }
        vaultV2Positions {
          type vaultAddress vaultName vaultSymbol
          shares assets assetsUsd apy
          underlyingAsset { address symbol decimals }
          vaultMetrics { totalAssets totalAssetsUsd totalSupply }
        }
        marketPositions {
          type marketId
          loanAsset { address symbol decimals }
          collateralAsset { address symbol decimals }
          supply { assets assetsUsd }
          borrow { assets assetsUsd }
          collateral { assets assetsUsd }
          healthFactor
          marketMetrics { supplyApy borrowApy netSupplyApy netBorrowApy lltv utilization }
        }
      }
    }
    errors { protocol chainId walletAddress error { code message retryable } }
  }
}

poolDetails example

Morpho supports two pool types. The API auto-detects based on address length:
  • 42-character hex address → vault pool
  • 66-character hex unique key → market pool
query {
  poolDetails(inputs: [
    { protocol: "morpho", chainId: 1, poolAddress: "0xBBBBBbbBBb9cC5e90e3b3Af64bdAF62C37EEFFCb" }
  ]) {
    data { protocol chainId poolAddress data }
    errors { protocol chainId poolAddress error { code message retryable } }
  }
}

Notes

healthFactor on market positions is null when the position has no debt. A value below 1.0 means the position is liquidatable.
  • APY values are decimals (e.g., 0.0685 = 6.85%)
  • shares and assets are string-encoded BigInt values to avoid floating-point precision loss
  • netSupplyApy and netBorrowApy include token reward incentives
  • lltv (liquidation loan-to-value) is a decimal (e.g., 0.86 = 86%)