Example code snippets to query the indexer for Mito vault module related data.
Mito Documentation has been moved here visit Mito’s
Docs.
(Outdated) Using gRPC
Fetch a vault based off it’s contract address, such as a vault’s tvl or profits
import { IndexerGrpcMitoApi } from "@injectivelabs/sdk-ts/client/indexer";
import { getNetworkEndpoints, Network } from "@injectivelabs/networks";
const endpoints = getNetworkEndpoints(Network.Testnet);
const indexerGrpcMitoApi = new IndexerGrpcMitoApi(endpoints.indexer);
const contractAddress = "0x..."; /* optional param */
const slug = "derivative-vault"; /* optional param */
const vault = await indexerGrpcMitoApi.fetchVault({
contractAddress,
slug,
});
console.log(vault);
Fetch vaults and associated details
import { IndexerGrpcMitoApi } from "@injectivelabs/sdk-ts/client/indexer";
import { getNetworkEndpoints, Network } from "@injectivelabs/networks";
const endpoints = getNetworkEndpoints(Network.Testnet);
const indexerGrpcMitoApi = new IndexerGrpcMitoApi(endpoints.indexer);
const vault = await indexerGrpcMitoApi.fetchVaults();
console.log(vault);
Fetch the lp token price chart for a vault based on the vault address
import { IndexerGrpcMitoApi } from "@injectivelabs/sdk-ts/client/indexer";
import { getNetworkEndpoints, Network } from "@injectivelabs/networks";
const endpoints = getNetworkEndpoints(Network.Testnet);
const indexerGrpcMitoApi = new IndexerGrpcMitoApi(endpoints.indexer);
const vaultAddress = "inj...";
const from = 50; /* optional pagination params */
const to = 150; /* optional pagination params */
const lpTokenPriceChart = await indexerGrpcMitoApi.fetchLpTokenPriceChart({
vaultAddress,
from,
to,
});
console.log(lpTokenPriceChart);
Fetch the tvl token chart for a vault based on the vault address
import { IndexerGrpcMitoApi } from "@injectivelabs/sdk-ts/client/indexer";
import { getNetworkEndpoints, Network } from "@injectivelabs/networks";
const endpoints = getNetworkEndpoints(Network.Testnet);
const indexerGrpcMitoApi = new IndexerGrpcMitoApi(endpoints.indexer);
const vaultAddress = "inj...";
const from = 50; /* optional pagination params */
const to = 150; /* optional pagination params */
const tvlChart = await indexerGrpcMitoApi.fetchTVLChartRequest({
vaultAddress,
from,
to,
});
console.log(tvlChart);
Fetch the vaults associated with a holder of its lp tokens
import { IndexerGrpcMitoApi } from "@injectivelabs/sdk-ts/client/indexer";
import { getNetworkEndpoints, Network } from "@injectivelabs/networks";
const endpoints = getNetworkEndpoints(Network.Testnet);
const indexerGrpcMitoApi = new IndexerGrpcMitoApi(endpoints.indexer);
const holderAddress = "inj...";
const vaults = await indexerGrpcMitoApi.fetchVaultsByHolderAddress({
holderAddress,
});
console.log(vaults);
Fetch the lp token holders from the vault address
import { IndexerGrpcMitoApi } from "@injectivelabs/sdk-ts/client/indexer";
import { getNetworkEndpoints, Network } from "@injectivelabs/networks";
const endpoints = getNetworkEndpoints(Network.Testnet);
const indexerGrpcMitoApi = new IndexerGrpcMitoApi(endpoints.indexer);
const vaultAddress = "inj...";
const holders = await indexerGrpcMitoApi.fetchLPHolders({
vaultAddress,
});
console.log(holders);
Fetch the lp holder’s portfolio
import { IndexerGrpcMitoApi } from "@injectivelabs/sdk-ts/client/indexer";
import { getNetworkEndpoints, Network } from "@injectivelabs/networks";
const endpoints = getNetworkEndpoints(Network.Testnet);
const indexerGrpcMitoApi = new IndexerGrpcMitoApi(endpoints.indexer);
const holderAddress = "inj...";
const portfolio = await indexerGrpcMitoApi.fetchHolderPortfolio(holderAddress);
console.log(portfolio);
Fetch the leaderboard to see Pnl rankings
import { IndexerGrpcMitoApi } from "@injectivelabs/sdk-ts/client/indexer";
import { getNetworkEndpoints, Network } from "@injectivelabs/networks";
const endpoints = getNetworkEndpoints(Network.Testnet);
const indexerGrpcMitoApi = new IndexerGrpcMitoApi(endpoints.indexer);
const leaderboard = await indexerGrpcMitoApi.fetchLeaderboard();
console.log(leaderboard);
Last modified on June 2, 2026