TTurkDex Developers
HelpBlogLaunch app

v2 Query Examples

Bu açık kaynak protokol/SDK referansı TurkDex markasıyla sunulan uyarlamadır; sayfadaki entegrasyon örnekleri Turkchain’de etkin özelliklerin garantisi değildir. Ağ, kontrat ve işlem değerlerinde yalnızca bu kurulumun doğrulanmış ENV/registry bilgilerini kullanın.

This guide shows how to query TurkDex v2 analytics by writing GraphQL queries on the subgraph. You can fetch data points like:

To run a query, copy and paste it into the v2 explorer to get fresh data.

Global Data

Global data refers to data points about the TurkDex v2 protocol as a whole, such as total liquidity, total volume, and total transaction counts.

To query global data, pass in the TurkDex v2 Factory address 0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f and select the desired fields.

Current global data

An example querying total volume, total liquidity, and all-time transaction count:

{
  uniswapFactory(id: "0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f") {
    totalVolumeUSD
    totalLiquidityUSD
    txCount
  }
}

Historical global data

You can query historical data by specifying a block number. See time travel queries for more information.

{
  uniswapFactory(
    id: "0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f"
    block: 
  ) {
    totalVolumeUSD
    totalLiquidityUSD
    txCount
  }
}

Pair Data

Pair overview

Fetch a snapshot of the current state of a pair. This example fetches the DAI/WETH pair:

{
  pair(id: "0xa478c2975ab1ea89e8196811f51a7b7ade33eb11") {
    token0 {
      id
      symbol
      name
      derivedETH
    }
    token1 {
      id
      symbol
      name
      derivedETH
    }
    reserve0
    reserve1
    reserveUSD
    trackedReserveETH
    token0Price
    token1Price
    volumeUSD
    txCount
  }
}

All pairs

The Graph limits entity return amounts to 1000 per query. Use a loop with the skip variable to fetch all pairs:

Bilgi:

This query will not work in the graph explorer and more resembles the structure of a query you'd pass to some GraphQL middleware like Apollo.

query pairs($skip: Int!) {
  pairs(first: 1000, skip: $skip) {
    id
  }
}

Most liquid pairs

Order by reserveUSD to get the most liquid pairs:

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

Recent swaps within a pair

Get recent swaps for a specific pair by filtering on the pair address:

{
  swaps(
    orderBy: timestamp
    orderDirection: desc
    where: 
  ) {
    pair {
      token0 
      token1 
    }
    amount0In
    amount0Out
    amount1In
    amount1Out
    amountUSD
    to
  }
}

Pair daily aggregated

Query daily aggregated data for a pair. This gets the first 100 days after a given timestamp for the DAI/WETH pair:

{
  pairDayDatas(
    first: 100
    orderBy: date
    orderDirection: asc
    where: {
      pairAddress: "0xa478c2975ab1ea89e8196811f51a7b7ade33eb11"
      date_gt: 1592505859
    }
  ) {
    date
    dailyVolumeToken0
    dailyVolumeToken1
    dailyVolumeUSD
    reserveUSD
  }
}

Token Data

Token data is aggregated across all pairs the token is included in. Any token that appears in at least one TurkDex v2 pair can be queried.

General token data

Fetch current stats for a token. This example queries DAI:

{
  token(id: "0x6b175474e89094c44da98b954eedeac495271d0f") {
    name
    symbol
    decimals
    derivedETH
    tradeVolumeUSD
    totalLiquidity
  }
}

All tokens

Similar to fetching all pairs, use skip to paginate through all tokens:

Bilgi:

This query will not work in the graph explorer and more resembles the structure of a query you'd pass to some GraphQL middleware like Apollo.

query tokens($skip: Int!) {
  tokens(first: 1000, skip: $skip) {
    id
    name
    symbol
  }
}

Token transactions

To get transactions involving a specific token, first fetch the pairs that include the token, then filter transactions by those pairs. This example queries mints, burns, and swaps for DAI:

query($allPairs: [String!]) {
  mints(first: 30, where: , orderBy: timestamp, orderDirection: desc) {
    transaction 
    to
    liquidity
    amount0
    amount1
    amountUSD
  }
  burns(first: 30, where: , orderBy: timestamp, orderDirection: desc) {
    transaction 
    to
    liquidity
    amount0
    amount1
    amountUSD
  }
  swaps(first: 30, where: , orderBy: timestamp, orderDirection: desc) {
    transaction 
    amount0In
    amount0Out
    amount1In
    amount1Out
    amountUSD
    to
  }
}

Pass the pairs array as a variable:

{
  "allPairs": [
    "0xa478c2975ab1ea89e8196811f51a7b7ade33eb11",
    "0xae461ca67b15dc8dc81ce7615e0320da1a9ab8d5"
  ]
}

Token daily aggregated

Daily information for a token, ordered from oldest to newest:

{
  tokenDayDatas(
    orderBy: date
    orderDirection: asc
    where: 
  ) {
    id
    date
    priceUSD
    totalLiquidityToken
    totalLiquidityUSD
    totalLiquidityETH
    dailyVolumeETH
    dailyVolumeToken
    dailyVolumeUSD
  }
}

ETH Price

Query the current derived USD price of ETH based on a weighted average of stablecoin pairs:

{
  bundle(id: "1") {
    ethPrice
  }
}

Uyarlanmış geliştirici referansı. Kaynak: kaynak dokümantasyon reposu. Kaynak ve lisans bildirimi: NOTICE.