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 this window below:
Basic Queries
Morpho Vaults and their current states
query {
vaults {
items {
address
symbol
name
creationBlockNumber
creationTimestamp
creatorAddress
whitelisted
asset {
id
address
decimals
}
chain {
id
network
}
state {
id
apy
netApy
totalAssets
totalAssetsUsd
fee
timelock
}
}
}
}
Current vault market allocations
query {
vaultByAddress(
address: "0xbEef047a543E45807105E51A8BBEFCc5950fcfBa"
chainId: 1
) {
address
state {
allocation {
market {
uniqueKey
loanAsset {
name
}
collateralAsset {
name
}
oracleAddress
irmAddress
lltv
}
supplyCap
supplyAssets
supplyAssetsUsd
}
}
}
}
10 latest Morpho Vaults transactions
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
}
}
}
}
}
}
10 biggest positions for a specific vault
query {
vaultPositions(
first: 10
orderBy: Shares
orderDirection: Desc
where: { vaultAddress_in: ["0xBEEF01735c132Ada46AA9aA4c54623cAA92A64CB"] }
) {
items {
shares
assets
assetsUsd
user {
address
}
}
}
}
User's vaults positions
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
}
}
}
Vaults potential warnings
a. Warnings type
are:
- unrecognized_deposit_asset,
- unrecognized_vault_curator.
- not_whitelisted.
b. Warning level
is either:
YELLOW
,RED
.
query {
vaults {
items {
name
warnings {
type
level
}
}
}
}
Config of the Public Allocator for a Morpho Vault
query {
vaultByAddress(
address: "0x38989BBA00BDF8181F4082995b3DEAe96163aC5D"
chainId: 1
) {
address
publicAllocatorConfig {
fee
flowCaps {
market {
uniqueKey
}
maxIn
maxOut
}
}
}
}
Reallocations made by a Morpho Vault
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
}
}
}
Current vaults' pending caps
query {
vaults {
items {
pendingCaps {
validAt
supplyCap
market {
uniqueKey
}
}
}
}
}
Current vaults' allocators
query {
vaults {
items {
name
allocators {
address
}
}
}
}
Advanced Queries with variables
Historical vaults APY
query VaultApys($options: TimeseriesOptions) {
vaultByAddress(address: "0x38989BBA00BDF8181F4082995b3DEAe96163aC5D") {
address
historicalState {
apy(options: $options) {
x
y
}
netApy(options: $options) {
x
y
}
}
}
}
{
"options": {
"startTimestamp": 1716249600,
"endTimestamp": 1716422400,
"interval": "DAY"
}
}
Example: