# Frontend (Info App) Queries - uniswap-v3 endpoint (https://api.thegraph.com/subgraphs/name/ianlapham/uniswap-v3-alt) * https://github.com/Uniswap/uniswap-v3-info/blob/master/src/data/pools/chartData.ts ``` query poolDayDatas($startTime: Int!, $skip: Int!, $address: Bytes!) { poolDayDatas( first: 1000 skip: $skip where: { pool: $address, date_gt: $startTime } orderBy: date orderDirection: asc ) { date volumeUSD tvlUSD } } ``` * https://github.com/Uniswap/uniswap-v3-info/blob/master/src/data/pools/poolData.ts ``` query pools { pools(where: {id_in: $poolString}, block: {number: $block}, orderBy: totalValueLockedUSD, orderDirection: desc) { id feeTier liquidity sqrtPrice tick token0 { id symbol name decimals derivedETH } token1 { id symbol name decimals derivedETH } token0Price token1Price volumeUSD txCount totalValueLockedToken0 totalValueLockedToken1 totalValueLockedUSD } } ``` * https://github.com/Uniswap/uniswap-v3-info/blob/master/src/data/pools/tickData.ts ``` query surroundingTicks( $poolAddress: String! $tickIdxLowerBound: BigInt! $tickIdxUpperBound: BigInt! $skip: Int! ) { ticks( first: 1000 skip: $skip where: { poolAddress: $poolAddress, tickIdx_lte: $tickIdxUpperBound, tickIdx_gte: $tickIdxLowerBound } ) { tickIdx liquidityGross liquidityNet price0 price1 } } query pool($poolAddress: String!) { pool(id: $poolAddress) { tick token0 { symbol id decimals } token1 { symbol id decimals } feeTier sqrtPrice liquidity } } ``` * https://github.com/Uniswap/uniswap-v3-info/blob/master/src/data/pools/topPools.ts ``` query topPools { pools(first: 50, orderBy: totalValueLockedUSD, orderDirection: desc) { id } } ``` * https://github.com/Uniswap/uniswap-v3-info/blob/master/src/data/pools/transactions.ts ``` query transactions($address: Bytes!) { mints(first: 100, orderBy: timestamp, orderDirection: desc, where: { pool: $address }) { timestamp transaction { id } pool { token0 { id symbol } token1 { id symbol } } owner sender origin amount0 amount1 amountUSD } swaps(first: 100, orderBy: timestamp, orderDirection: desc, where: { pool: $address }) { timestamp transaction { id } pool { token0 { id symbol } token1 { id symbol } } origin amount0 amount1 amountUSD } burns(first: 100, orderBy: timestamp, orderDirection: desc, where: { pool: $address }) { timestamp transaction { id } pool { token0 { id symbol } token1 { id symbol } } owner amount0 amount1 amountUSD } } ``` * https://github.com/Uniswap/uniswap-v3-info/blob/master/src/data/protocol/chart.ts ``` query uniswapDayDatas($startTime: Int!, $skip: Int!) { uniswapDayDatas(first: 1000, skip: $skip, where: { date_gt: $startTime }, orderBy: date, orderDirection: asc) { id date volumeUSD tvlUSD } } ``` * https://github.com/Uniswap/uniswap-v3-info/blob/master/src/data/protocol/overview.ts ``` query uniswapFactories { factories( block: { number: $block } first: 1) { txCount totalVolumeUSD totalFeesUSD totalValueLockedUSD } } ``` * https://github.com/Uniswap/uniswap-v3-info/blob/master/src/data/protocol/transactions.ts ``` query transactions { transactions(first: 500, orderBy: timestamp, orderDirection: desc) { id timestamp mints { pool { token0 { id symbol } token1 { id symbol } } owner sender origin amount0 amount1 amountUSD } swaps { pool { token0 { id symbol } token1 { id symbol } } origin amount0 amount1 amountUSD } burns { pool { token0 { id symbol } token1 { id symbol } } owner origin amount0 amount1 amountUSD } } } ``` * https://github.com/Uniswap/uniswap-v3-info/blob/master/src/data/search/index.ts ``` query tokens($value: String, $id: String) { asSymbol: tokens(where: { symbol_contains: $value }, orderBy: totalValueLockedUSD, orderDirection: desc) { id symbol name totalValueLockedUSD } asName: tokens(where: { name_contains: $value }, orderBy: totalValueLockedUSD, orderDirection: desc) { id symbol name totalValueLockedUSD } asAddress: tokens(where: { id: $id }, orderBy: totalValueLockedUSD, orderDirection: desc) { id symbol name totalValueLockedUSD } } query pools($tokens: [Bytes]!, $id: String) { as0: pools(where: { token0_in: $tokens }) { id feeTier token0 { id symbol name } token1 { id symbol name } } as1: pools(where: { token1_in: $tokens }) { id feeTier token0 { id symbol name } token1 { id symbol name } } asAddress: pools(where: { id: $id }) { id feeTier token0 { id symbol name } token1 { id symbol name } } } ``` * https://github.com/Uniswap/uniswap-v3-info/blob/master/src/data/tokens/chartData.ts ``` query tokenDayDatas($startTime: Int!, $skip: Int!, $address: Bytes!) { tokenDayDatas( first: 1000 skip: $skip where: { token: $address, date_gt: $startTime } orderBy: date orderDirection: asc ) { date volumeUSD totalValueLockedUSD } } ``` * https://github.com/Uniswap/uniswap-v3-info/blob/master/src/data/tokens/poolsForToken.ts ``` query topPools($address: Bytes!) { asToken0: pools(first: 200, orderBy: totalValueLockedUSD, orderDirection: desc, where: { token0: $address }) { id } asToken1: pools(first: 200, orderBy: totalValueLockedUSD, orderDirection: desc, where: { token1: $address }) { id } } ``` * https://github.com/Uniswap/uniswap-v3-info/blob/master/src/data/tokens/priceData.ts ``` query blocks { tBlockTimestamp:token(id:$tokenAddress, block: { number: $blockNumber }) { derivedETH }, bBlockTimestamp: bundle(id:"1", block: { number: $blockNumber }) { ethPriceUSD } } query tokenHourDatas($startTime: Int!, $skip: Int!, $address: Bytes!) { tokenHourDatas( first: 100 skip: $skip where: { token: $address, periodStartUnix_gt: $startTime } orderBy: periodStartUnix orderDirection: asc ) { periodStartUnix high low open close } } ``` * https://github.com/Uniswap/uniswap-v3-info/blob/master/src/data/tokens/tokenData.ts ``` query tokens { tokens(where: {id_in: $tokenString}, block: {number: $block}), orderBy: totalValueLockedUSD, orderDirection: desc) { id symbol name derivedETH volumeUSD volume txCount totalValueLocked feesUSD totalValueLockedUSD } } ``` * https://github.com/Uniswap/uniswap-v3-info/blob/master/src/data/tokens/topTokens.ts ``` query topPools { tokens(first: 50, orderBy: totalValueLockedUSD, orderDirection: desc) { id } } ``` * https://github.com/Uniswap/uniswap-v3-info/blob/master/src/data/tokens/transactions.ts ``` query transactions($address: Bytes!) { mintsAs0: mints(first: 500, orderBy: timestamp, orderDirection: desc, where: { token0: $address }) { timestamp transaction { id } pool { token0 { id symbol } token1 { id symbol } } owner sender origin amount0 amount1 amountUSD } mintsAs1: mints(first: 500, orderBy: timestamp, orderDirection: desc, where: { token0: $address }) { timestamp transaction { id } pool { token0 { id symbol } token1 { id symbol } } owner sender origin amount0 amount1 amountUSD } swapsAs0: swaps(first: 500, orderBy: timestamp, orderDirection: desc, where: { token0: $address }) { timestamp transaction { id } pool { token0 { id symbol } token1 { id symbol } } origin amount0 amount1 amountUSD } swapsAs1: swaps(first: 500, orderBy: timestamp, orderDirection: desc, where: { token1: $address }) { timestamp transaction { id } pool { token0 { id symbol } token1 { id symbol } } origin amount0 amount1 amountUSD } burnsAs0: burns(first: 500, orderBy: timestamp, orderDirection: desc, where: { token0: $address }) { timestamp transaction { id } pool { token0 { id symbol } token1 { id symbol } } owner amount0 amount1 amountUSD } burnsAs1: burns(first: 500, orderBy: timestamp, orderDirection: desc, where: { token1: $address }) { timestamp transaction { id } pool { token0 { id symbol } token1 { id symbol } } owner amount0 amount1 amountUSD } } ``` * https://github.com/Uniswap/uniswap-v3-info/blob/master/src/hooks/useEthPrices.ts ``` query prices($block24: Int!, $block48: Int!, $blockWeek: Int!) { current: bundles(first: 1) { ethPriceUSD } oneDay: bundles(first: 1, block: { number: $block24 }) { ethPriceUSD } twoDay: bundles(first: 1, block: { number: $block48 }) { ethPriceUSD } oneWeek: bundles(first: 1, block: { number: $blockWeek }) { ethPriceUSD } } ``` - ethereum-blocks endpoint (https://api.thegraph.com/subgraphs/name/blocklytics/ethereum-blocks) https://github.com/Uniswap/uniswap-v3-info/blob/master/src/hooks/useBlocksFromTimestamps.ts ``` query blocks { tTimestamp1:blocks(first: 1, orderBy: timestamp, orderDirection: desc, where: { timestamp_gt: $timestamp1, timestamp_lt: $timestamp1Plus600 }) { number } tTimestamp2:blocks(first: 1, orderBy: timestamp, orderDirection: desc, where: { timestamp_gt: $timestamp2, timestamp_lt: $timestamp2Plus600 }) { number } } ``` - Checking subgraph health (https://thegraph.com/docs/deploy-a-subgraph#checking-subgraph-health) https://github.com/Uniswap/uniswap-v3-info/blob/master/src/data/application/index.ts ``` query health { indexingStatusForCurrentVersion(subgraphName: "uniswap/uniswap-v2") { synced health chains { chainHeadBlock { number } latestBlock { number } } } } ```