Morpho Vaults
How to query Morpho Vaults Data thanks to the API?
Select the query you are interested in in the list below, and paste it into the GraphQL Playground: https://api.morpho.org/graphql
Discovery and Listing
Vaults List
Morpho Vaults V2
query {
vaultV2s(first: 1000, where: { chainId_in: [1, 8453] }) {
items {
address
symbol
name
whitelisted
asset {
id
address
decimals
}
chain {
id
network
}
}
}
}Vault Metrics
Total Deposits & Assets
All Vaults
Morpho Vaults V2
query {
vaultV2s(first: 100) {
items {
address
totalAssets
totalAssetsUsd
totalSupply
liquidityUsd
idleAssetsUsd
}
}
}Specific Vault
Morpho Vaults V2
query {
vaultV2ByAddress(
address: "0x04422053aDDbc9bB2759b248B574e3FCA76Bc145"
chainId: 1
) {
address
totalAssets
totalAssetsUsd
totalSupply
liquidity
liquidityUsd
idleAssetsUsd
}
}APY (Native + Rewards)
All Vaults
Morpho Vaults V2
query {
vaultV2s(first: 10) {
items {
address
asset {
yield {
apr
}
}
avgApy
avgNetApy
performanceFee
managementFee
maxRate
rewards {
asset {
address
chain {
id
}
}
supplyApr
yearlySupplyTokens
}
}
}
}Specific Vault
Morpho Vaults V2
query {
vaultV2ByAddress(
address: "0x04422053aDDbc9bB2759b248B574e3FCA76Bc145"
chainId: 1
) {
address
asset {
yield {
apr
}
}
avgApy
avgNetApy
performanceFee
managementFee
maxRate
rewards {
asset {
address
chain {
id
}
}
supplyApr
yearlySupplyTokens
}
}
}Share Price (Token Value)
All Vaults
Morpho Vaults V2
query {
vaultV2s(first: 10) {
items {
address
totalSupply
totalAssets
}
}
}Specific Vault
Morpho Vaults V2
query {
vaultV2ByAddress(
address: "0x04422053aDDbc9bB2759b248B574e3FCA76Bc145"
chainId: 1
) {
totalAssets
totalSupply
}
}Allocation & Strategy
Vault V2 allocation data is expressed via adapters, whereas Vault V1 allocations reference the underlying Morpho Markets V1. Keep that distinction in mind when mapping results.
Current Allocations
All Vaults
Morpho Vaults V2
query {
vaultV2s(first: 10) {
items {
address
totalAssetsUsd
totalAssets
totalSupply
adapters {
items {
address
assets
assetsUsd
type
}
}
}
}
}Specific Vault
Morpho Vaults V2
query {
vaultV2ByAddress(
address: "0x04422053aDDbc9bB2759b248B574e3FCA76Bc145"
chainId: 1
) {
totalAssetsUsd
totalAssets
totalSupply
adapters {
items {
address
assets
assetsUsd
type
}
}
}
}Strategy: Vault Queues (Morpho Vaults V1)
All Vaults
query {
vaults(first: 100, orderBy: TotalAssetsUsd, orderDirection: Desc) {
items {
address
state {
totalAssets
lastTotalAssets
allocation {
supplyQueueIndex
withdrawQueueIndex
market {
uniqueKey
}
}
}
}
}
}Configuration & Curation
Vault Parameters
All Vaults
Morpho Vaults V2
query {
vaultV2s(first: 10) {
items {
address
name
whitelisted
metadata {
description
forumLink
image
}
allocators {
allocator {
address
}
}
owner {
address
}
curators {
items {
addresses {
address
}
}
}
sentinels {
sentinel {
address
}
}
timelocks {
duration
selector
functionName
}
}
}
}Specific Vault
Morpho Vaults V2
query {
vaultV2ByAddress(
address: "0x04422053aDDbc9bB2759b248B574e3FCA76Bc145"
chainId: 1
) {
address
name
whitelisted
metadata {
description
forumLink
image
}
allocators {
allocator {
address
}
}
owner {
address
}
curators {
items {
addresses {
address
}
}
}
sentinels {
sentinel {
address
}
}
timelocks {
duration
selector
functionName
}
}
}Risk Indicators
Vault Warnings
a. Warning type can be:
- unrecognized_deposit_asset,
- unrecognized_vault_curator.
- not_whitelisted.
b. Warning level is either:
YELLOW,RED.
Morpho Vaults V2
query {
vaultV2s(first: 5) {
items {
name
warnings {
type
level
}
}
}
}You can read more about warnings in the dedicated section here.
Vault Curation
Note: These curator-focused endpoints currently expose Vault V1 data.
Current Vaults Pending Caps
query {
vaults {
items {
pendingCaps {
validAt
supplyCap
market {
uniqueKey
}
}
}
}
}Current Vaults Allocators
Morpho Vaults V2
query {
vaultV2s(first: 10) {
items {
name
allocators {
allocator {
address
}
}
}
}
}Position Tracking
Vault Depositors
Specific Vault
Morpho Vaults V2
query {
vaultV2ByAddress(
address: "0x04422053aDDbc9bB2759b248B574e3FCA76Bc145"
chainId: 1
) {
positions(first: 10, skip:0) {
items {
user {
address
}
assets
assetsUsd
shares
}
}
totalSupply
asset {
address
symbol
}
}
}Set of Vaults (Morpho Vaults V1)
Vault V2 does not yet expose an equivalent batched depositor query.
query {
vaultPositions(
first: 10
orderBy: Shares
orderDirection: Desc
where: {
vaultAddress_in: [
"0xBEEF01735c132Ada46AA9aA4c54623cAA92A64CB"
"0x73e65DBD630f90604062f6E02fAb9138e713edD9"
]
}
) {
items {
vault {
address
}
user {
address
}
state {
shares
assets
assetsUsd
}
}
}
}User Positions
User All Vaults Position (Vault V1)
query GetUserVaultPositions($address: String!, $chainId: Int!) {
userByAddress(address: $address, chainId: $chainId) {
id
vaultV2Positions {
state {
shares
}
vault {
address
symbol
}
}
vaultPositions {
state {
shares
}
vault {
address
symbol
}
}
}
}User Account Overview
query {
userByAddress(
chainId: 1
address: "0x821880a3E2bac432d67E5155e72BB655Ef65fa5E"
) {
address
marketPositions {
market {
uniqueKey
}
borrowAssets
borrowAssetsUsd
supplyAssets
supplyAssetsUsd
}
vaultPositions {
vault {
address
name
}
assets
assetsUsd
shares
}
transactions {
hash
timestamp
type
}
}
}Transaction History
Specific Vault
Morpho Vaults V2
query {
vaultV2transactions(
first: 10
skip: 0
where: { vaultAddress_in: "0x04422053aDDbc9bB2759b248B574e3FCA76Bc145" }
) {
items {
vault {
address
}
type
shares
blockNumber
timestamp
txHash
txIndex
}
}
}Latest Transactions (All Vaults)
query {
transactions(
first: 10
orderBy: Timestamp
orderDirection: Desc
where: { type_in: [MetaMorphoFee, MetaMorphoWithdraw, MetaMorphoWithdraw] }
) {
items {
hash
timestamp
type
chain {
id
network
}
user {
address
}
data {
... on VaultTransactionData {
shares
assets
vault {
address
}
}
... on MarketTransferTransactionData {
shares
market {
uniqueKey
}
}
}
}
}
}Public Allocator
Configuration
query {
vaultByAddress(
address: "0x38989BBA00BDF8181F4082995b3DEAe96163aC5D"
chainId: 1
) {
address
publicAllocatorConfig {
fee
flowCaps {
market {
uniqueKey
}
maxIn
maxOut
}
}
}
}Reallocations
query {
vaultReallocates(
first: 10
skip: 0
orderBy: Timestamp
where: {vaultAddress_in:["0xBEEF01735c132Ada46AA9aA4c54623cAA92A64CB"]}
orderDirection: Desc
) {
items {
id
timestamp
hash
blockNumber
caller
shares
assets
type
vault {
id
chain {
id
}
}
market {
id
uniqueKey
lltv
oracleAddress
irmAddress
creationBlockNumber
loanAsset {
symbol
}
collateralAsset {
symbol
}
}
}
pageInfo {
countTotal
count
skip
limit
}
}
}Historical Data
APY Historical State (Morpho Vaults V1)
All Vaults
All Vaults
query VaultApys($options: TimeseriesOptions) {
vaults(first: 10, orderBy: TotalAssetsUsd, orderDirection: Desc) {
items {
address
historicalState {
apy(options: $options) {
x
y
}
netApy(options: $options) {
x
y
}
}
}
}
}{
"options": {
"startTimestamp": 1716249600,
"endTimestamp": 1716422400,
"interval": "DAY"
}
}