Token Overview
This guide explains how to retrieve token data for M0 protocol tokens. The API provides metadata, holders, and supply information for multiple tokens including:
- $M
- POWER
- ZERO
Query Multiple Tokens
Use the tokens query to retrieve metadata, supply data, and holder information for all tokens:
query TokensOverview {
tokens {
id
name
symbol
decimals
totalSupplys(first: 2, orderBy: blockTimestamp, orderDirection: desc) {
value
blockTimestamp
}
holders(first: 10, orderBy: balance, orderDirection: desc) {
address
balance
}
}
}This query returns:
- Token metadata (name, symbol, decimals, contract address)
- Historical total supply snapshots
- Top token holders and their balances
Use the token query to retrieve data for a specific token:
query TokenOverview($id: String!) {
token(id: $id) {
id
name
symbol
decimals
}
}Important: Indexer Data Lag
The supply data returned by the indexer represents the last-seen state and may not reflect the absolute latest on-chain data. There can be a delay between when a transaction occurs on-chain and when the indexer processes it.
Querying Supply Directly from Chain
For the most up-to-date supply data, query the blockchain directly via RPC:
// Using viem, ethers.js or web3.js
const totalSupply = await tokenContract.totalSupply()Note that the method to retrieve the total supply may vary between contracts. Before querying the blockchain directly, review the contract's ABI and documentation to ensure you're using the correct method.
You can find our token contracts on $M Deployments.

