Skip to main content

Sample queries

This section provides sample examples on how you can query the subgraph to retrieve information about pools, tokens, transactions and more.

Overall Data#

To query overall data you can pass in the DMM Factory address and select from various fields.

Overall Stats#

All time volume in USD, total liquidity in USD, all time transaction count.

{
DMMFactory(id: "xyz"){
totalVolumeUSD
totalLiquidityUSD
txCount
}
}

Overall Historical lookup#

Use The Graph's block query feature and query at any earlier block to view the stats. This can be used to view things like 24hr volume etc.

{
DMMFactory(id: "xyz", block: {number: abc}){
totalVolumeUSD
totalLiquidityUSD
txCount
}
}

Pools Data#

Pool Overview#

Returns a snapshot of the current state of the pool with common values. This example fetches the DAI/ETH pool.

{
pool(id: "xyz"){
token0 {
id
symbol
name
ETH
}
token1 {
id
symbol
name
ETH
}
reserve0
reserve1
reserveUSD
trackedReserveETH
token0Price
token1Price
volumeUSD
txCount
}
}

All Pools in DMM#

To fetch all pools on DMM might have to use a loop and graphql skip query, beacuse of the limitation of Graph to return to 1000 per query.

{
query pools($skip: Int!) {
pools(first: 1000, skip: $skip) {
id
}
}
}
  • where skip is an incrementing variable passed into your query

Most liquid pools#

In the order of liquidity returns the most liquid pools in DMM.

{
pools(first: 1000, orderBy: reserveUSD, orderDirection: desc) {
id
}
}

You can visit the subgraph sandbox play around to try out these queries and explore any other data you'd like.