Queries
The subgraph can be queried to retrieve important information about EmberSwap, pairs, tokens, transactions, users, and more. This page will provide examples for common queries.
To try these queries and run your own visit the subgraph sandbox.
Global Data
To query global data you can pass in the EmberSwap Factory address and select from available fields.
Global Stats
All time volume in USD, total liquidity in USD, all time transaction count.
Global Historical lookup
To get a snapshot of past state, use The Graph's block query feature and query at a previous block. See this post to get more information about fetching block numbers from timestamps. This can be used to calculate things like 24hr volume.
Pair Data
Pair Overview
Fetch a snapshot of the current state of the pair with common values. This example fetches the EMBER/BCH pair.
All pairs in EmberSwap
The Graph limits entity return amounts to 1000 per query as of now. To get all pairs on EmberSwap use a loop and graphql skip query to fetch multiple chunks of 1000 pairs. The query would look like this{ query pairs($skip: Int!) { pairs(first: 1000, skip: $skip) { id } } }
Most liquid pairs
Order by liquidity to get the most liquid pairs in EmberSwap.
Recent Swaps within a Pair
Get the last 100 swaps on a pair by fetching Swap events and passing in the pair address. You'll often want token information as well.
Pair Daily Aggregated
Day data is useful for building charts and historical views around entities. To get stats about a pair in daily buckets query for day entities bounded by timestamps. This query gets the first 100 days after the given unix timestamp on the EMBER/BCH pair.
Token Data
Token data can be fetched using the token contract address as an ID. Token data is aggregated across all pairs the token is included in. Any token that is included in some pair in EmberSwap can be queried.
Token Overview
Get a snapshot of the current stats on a token in EmberSwap. This query fetches current stats on EMBER. The allPairs field gets the first 200 pairs EMBER is included in sorted by liquidity in derived USD.
All Tokens in EmberSwap
Similar to fetching all pairs (see above), you can query all tokens in EmberSwap. Because The Graph service limits return size to 1000 entities use graphql skip query. (Note fetching more than 1000 entities will not work in the graph sandbox and more resembles the structure of a query you'd pass to some graphql middleware like Apollo).
Token Transactions
To get transactions that include a token you'll need to first fetch an array of pairs that the token is included in (this can be done with the allPairs field on the Token entity.) Once you have an array of pairs the token is included in, filter on that in the transaction lookup.
This query fetches the latest 30 mints, swaps, and burns involving EMBER. The allPairs array could look something like this where we include the EMBER/BCH pair address and the EMBER/flexUSD pair address.
Token Daily Aggregated
Like pair and global daily lookups, tokens have daily entities that can be queries as well. This query gets daily information for EMBER. Note that you may want to sort in ascending order to receive your days from oldest to most recent in the return array.
BCH Price
You can use the Bundle entity to query current USD price of BCH in EmberSwap based on a weighted average of stablecoins.
Last updated