Tracked Data

Swap

type Swap @entity {
  # transaction hash + "#" + index in swaps Transaction array
  id: ID!
  # pointer to transaction
  transaction: Transaction!
  # timestamp of transaction
  timestamp: BigInt!
  # pool swap occured within
  pool: Pool!
  # token swap from
  token0: Token!
  # token swap to
  token1: Token!
  # sender of the swap
  sender: Bytes!
  # the EOA that initiated the txn
  origin: Bytes! 
  # delta of token0 swapped
  amount0: BigDecimal!
  # delta of token1 swapped
  amount1: BigDecimal!
  # amount of liquidity left in pool after swap
  liquidity: BigInt!
  # derived info
  amountUSD: BigDecimal!
  # The sqrt(price) of the pool after the swap, as a Q64.96
  sqrtPriceX96: BigInt!
  # the tick after the swap
  tick: BigInt!
  fee: Int!
  # index within the txn
  logIndex: BigInt
  # running sum of gas for current tx
  gasAccumulated: BigInt!
  gasInWeiAccumulated: BigInt!
}

TokenDayData

type TokenDayData @entity {
  # token address concatendated with date
  id: ID!
  # timestamp rounded to current day and divided by 86400
  date: Int!
  # pointer to the token
  token: Token!
  # volume in token units
  volume: BigDecimal!
  # volume in derived USD
  volumeUSD: BigDecimal!
  # volume in USD even on pools with less reliable USD values
  untrackedVolumeUSD: BigDecimal!
  # liquidity across all pools in token units
  totalValueLocked: BigDecimal!
  # liquidity across all pools in derived USD
  totalValueLockedUSD: BigDecimal!
  # price at end of period in USD
  priceUSD: BigDecimal!
  # fees in USD
  feesUSD: BigDecimal!
  # opening price USD
  open: BigDecimal!
  # high price USD
  high: BigDecimal!
  # low price USD
  low: BigDecimal!
  # close price USD
  close: BigDecimal!
}

UniswapDayData

type UniswapDayData @entity {
  # timestamp rounded to current day and divided by 86400
  id: ID!
  # timestamp rounded to current day and divided by 86400
  date: Int!
  # total daily volume in Uniswap derived in terms of ETH
  volumeETH: BigDecimal!
  # total daily volume in Uniswap derived in terms of USD
  volumeUSD: BigDecimal!
  # total daily volume in Uniswap derived in terms of USD untracked
  volumeUSDUntracked: BigDecimal!
  # fees in USD
  feesUSD: BigDecimal!
  # number of daily transactions
  txCount: BigInt!
  # tvl in terms of USD
  tvlUSD: BigDecimal!
}

PoolDayData

type PoolDayData @entity {
  # timestamp rounded to current day and divided by 86400
  id: ID!
  # timestamp rounded to current day and divided by 86400
  date: Int!
  # pointer to pool
  pool: Pool!
  # in range liquidity at the end of a period
  liquidity: BigInt!
  # current price tracker at the end of a period
  sqrtPrice: BigInt!
  # price of token0 - derived from sqrtPrice
  token0Price: BigDecimal!
  # price of token1 - derived from sqrtPrice
  token1Price: BigDecimal!
  # current tick at the end of a period
  tick: BigInt
  # tvl derived in USD at the end of a period
  tvlUSD: BigDecimal!
  # volume in token0
  volumeToken0: BigDecimal!
  # volume in token1
  volumeToken1: BigDecimal!
  # volume in USD
  volumeUSD: BigDecimal!
  # fees in USD
  feesUSD: BigDecimal!
  # number of transactions during period
  txCount: BigInt!
  # opening price of token0
  open: BigDecimal!
  # high price of token0
  high: BigDecimal!
  # low price of token0
  low: BigDecimal!
  # close price of token0
  close: BigDecimal!
}

PoolHourData

type PoolHourData @entity {
  # format: <pool address>-<timestamp>
  id: ID!
  # unix timestamp for start of an hour
  periodStartUnix: Int!
  # pointer to pool
  pool: Pool!
  # in range liquidity at the end of a period
  liquidity: BigInt!
  # current price tracker at the end of a period
  sqrtPrice: BigInt!
  # price of token0 - derived from sqrtPrice
  token0Price: BigDecimal!
  # price of token1 - derived from sqrtPrice
  token1Price: BigDecimal!
  # current tick at the end of a period
  tick: BigInt
  # tvl derived in USD at the end of a period
  tvlUSD: BigDecimal!
  # volume in token0
  volumeToken0: BigDecimal!
  # volume in token1
  volumeToken1: BigDecimal!
  # volume in USD
  volumeUSD: BigDecimal!
  # fees in USD
  feesUSD: BigDecimal!
  # number of transactions during period
  txCount: BigInt!
  # opening price of token0
  open: BigDecimal!
  # high price of token0
  high: BigDecimal!
  # low price of token0
  low: BigDecimal!
  # close price of token0
  close: BigDecimal!
}

TokenHourData

type TokenHourData @entity {
  # token address concatendated with date
  id: ID!
  # unix timestamp for a start of an hour
  periodStartUnix: Int!
  # pointer to token
  token: Token!
  # volume in token units
  volume: BigDecimal!
  # volume in derived USD
  volumeUSD: BigDecimal!
  # volume in USD even on pools with less reliable USD values
  untrackedVolumeUSD: BigDecimal!
  # liquidity across all pools in token units
  totalValueLocked: BigDecimal!
  # liquidity across all pools in derived USD
  totalValueLockedUSD: BigDecimal!
  # price at the end of a period in USD
  priceUSD: BigDecimal!
  # fees in USD
  feesUSD: BigDecimal!
  # opening price USD
  open: BigDecimal!
  # high price USD
  high: BigDecimal!
  # low price USD
  low: BigDecimal!
  # close price USD
  close: BigDecimal!
}

PoolManager

type PoolManager @entity {
  # poolManager address
  id: ID!
  hookCount: BigInt!
  # amount of pools created
  poolCount: BigInt!
  # all0-time amount of transactions
  txCount: BigInt!
  # all-time total volume in derived USD
  totalVolumeUSD: BigDecimal!
  # all-time total volume in derived ETH
  totalVolumeETH: BigDecimal!
  # all-time total swap fees in USD
  totalFeesUSD: BigDecimal!
  # all-time total swap fees in USD
  totalFeesETH: BigDecimal!
  # all-time volume even through less reliable USD values
  untrackedVolumeUSD: BigDecimal!
  # TVL derived in USD
  totalValueLockedUSD: BigDecimal!
  # TVL derived in ETH
  totalValueLockedETH: BigDecimal!
  # TVL derived in USD untracked
  totalValueLockedUSDUntracked: BigDecimal!
  # TVL derived in ETH untracked
  totalValueLockedETHUntracked: BigDecimal!
  # current owner of the factory
  owner: ID!
}

Pool

type Pool @entity {
  # pool address
  id: ID!
  # creation
  createdAtTimestamp: BigInt!
  # block pool was created at
  createdAtBlockNumber: BigInt!
  # token0
  token0: Token!
  # token1
  token1: Token!
  # fee amount
  feeTier: BigInt!
  # in range liquidity
  liquidity: BigInt!
  # current price tracker
  sqrtPrice: BigInt!
  # token0 per token1
  token0Price: BigDecimal!
  # token1 per token0
  token1Price: BigDecimal!
  # current tick
  tick: BigInt
  # tick spacing
  tickSpacing: BigInt!
  # current observation index
  observationIndex: BigInt!
  # all-time token0 swapped
  volumeToken0: BigDecimal!
  # all-time token1 swapped
  volumeToken1: BigDecimal!
  # all-time USD swapped
  volumeUSD: BigDecimal!
  # all-time USD swapped, not filtered for unreliable USD pools
  untrackedVolumeUSD: BigDecimal!
  # fees in USD
  feesUSD: BigDecimal!
  feesToken0: BigDecimal!
  feesToken1: BigDecimal!
  # all-time number of transactions
  txCount: BigInt!
  # all-time fees collected token0
  collectedFeesToken0: BigDecimal!
  # all-time fees collected token1
  collectedFeesToken1: BigDecimal!
  # all-time fees collected derived USD
  collectedFeesUSD: BigDecimal!
  # total token 0 across all ticks
  totalValueLockedToken0: BigDecimal!
  # total token 1 across all ticks
  totalValueLockedToken1: BigDecimal!
  # TVL in derived ETH
  totalValueLockedETH: BigDecimal!
  # TVL in USD
  totalValueLockedUSD: BigDecimal!
  # TVL derived in USD untracked
  totalValueLockedUSDUntracked: BigDecimal!
  # Fields used to help relate derivatives
  liquidityProviderCount: BigInt! # used to detect new exchanges
  # hourly snapshots of pool data
  poolHourData: [PoolHourData!]! @derivedFrom(field: "pool")
  # daily snapshots of pool data
  poolDayData: [PoolDayData!]! @derivedFrom(field: "pool")
  hookAddress: Bytes!
  # hook address
  hook: Hook!

  gasAccumulatedBySwaps: BigInt!
  gasAccumulatedByModifyLiqs: BigInt!
  gasAccumulatedBySwapsInEth: BigInt!
  gasAccumulatedByModifyLiqsInEth: BigInt!

  swapsCount: BigInt!
  addLiqCount: BigInt!
  removeLiqCount: BigInt!

  lastTx: String

  # derived fields
  modifyLiquidities: [ModifyLiquidity!]! @derivedFrom(field: "pool")
  swaps: [Swap!]! @derivedFrom(field: "pool")
  ticks: [Tick!]! @derivedFrom(field: "pool")
}

Token

type Token @entity {
  # token address
  id: ID!
  # token symbol
  symbol: String!
  # token name
  name: String!
  # token decimals
  decimals: BigInt!
  # token total supply
  totalSupply: BigInt!
  # volume in token units
  volume: BigDecimal!
  # volume in derived USD
  volumeUSD: BigDecimal!
  # volume in USD even on pools with less reliable USD values
  untrackedVolumeUSD: BigDecimal!
  # fees in USD
  feesUSD: BigDecimal!
  # transactions across all pools that include this token
  txCount: BigInt!
  # number of pools containing this token
  poolCount: BigInt!
  # liquidity across all pools in token units
  totalValueLocked: BigDecimal!
  # liquidity across all pools in derived USD
  totalValueLockedUSD: BigDecimal!
  # TVL derived in USD untracked
  totalValueLockedUSDUntracked: BigDecimal!
  # Note: for chains where ETH is not the native token, this will be the derived
  # price of that chain's native token, effectively, this should be renamed
  # derivedNative
  derivedETH: BigDecimal!
  # pools token is in that are white listed for USD pricing
  whitelistPools: [Pool!]!
  # derived fields
  tokenDayData: [TokenDayData!]! @derivedFrom(field: "token")
}

Bundle

type Bundle @entity {
  id: ID!
  # price of ETH in usd
  ethPriceUSD: BigDecimal!
}

Hook

type Hook @entity {
  id: ID!
  address: Bytes!
  deployedAtTimestamp: BigInt!
  deployedAtBlocknumber: BigInt!
  txHash: Bytes!
  deployer: Bytes!

  # all time USD swapped
  volumeUSD: BigDecimal!
  # all time USD swapped, unfiltered for unreliable USD pools
  untrackedVolumeUSD: BigDecimal!

  # fees in USD
  feesUSD: BigDecimal!
  # all time fees collected derived USD
  collectedFeesUSD: BigDecimal!
  
  # tvl derived ETH
  totalValueLockedETH: BigDecimal!
  # tvl USD
  totalValueLockedUSD: BigDecimal!
  # TVL derived in USD untracked
  totalValueLockedUSDUntracked: BigDecimal!
  
  gasAccumulatedBySwaps: BigInt!
  gasAccumulatedByModifyLiqs: BigInt!
  gasAccumulatedBySwapsInEth: BigInt!
  gasAccumulatedByModifyLiqsInEth: BigInt!

  swapsCount: BigInt!
  addLiqCount: BigInt!
  removeLiqCount: BigInt!

  pools: [Pool!]! @derivedFrom(field: "hook")
}

PositionManager

type PositionManager @entity {
  id: ID!
  lastTx: Bytes
  lastLogIndex: BigInt
  lastTokenId: String
}

Position

type Position @entity {
  # tokenId
  id: ID!
  #TODO:
  poolId: String!
  liquidity: BigInt!
  # lower tick of the position
  tickLower: BigInt!
  # upper tick of the position
  tickUpper: BigInt!
  # tokenId
  tokenId: BigInt!
  # address of current owner
  owner: String!
  # the EOA that minted the position
  origin: String!
  # created time
  createdAtTimestamp: BigInt!
  # subscribe events
  subscriptions: [Subscribe!]! @derivedFrom(field: "position")
  # unsubscription events
  unsubscriptions: [Unsubscribe!]! @derivedFrom(field: "position")
  # transfer events
  transfers: [Transfer!]! @derivedFrom(field: "position")
}

Transfer

type Transfer @entity {
  # transaction hash + '-' + log index
  id: ID!
  # token id of position
  tokenId: BigInt!
  # address of previous owner
  from: String!
  # address of new owner
  to: String!
  # pointer to transaction
  transaction: Transaction!
  # log index
  logIndex: BigInt!
  # time of tx
  timestamp: BigInt!
  # the EOA that initiated the tx
  origin: String!
  # pointer to position
  position: Position!
}

ModifyLiquidity

type ModifyLiquidity @entity {
  # transaction hash + "#" + index in mints Transaction array
  id: ID!
  # which txn the ModifyLiquidity was included in
  transaction: Transaction!
  # time of txn
  timestamp: BigInt!
  # pool position is within
  pool: Pool!
  # allow indexing by tokens
  token0: Token!
  # allow indexing by tokens
  token1: Token!
  # the address that modified the liquidity
  sender: Bytes
  # txn origin
  origin: Bytes! # the EOA that initiated the txn
  # amount of liquidity modified
  amount: BigInt!
  # amount of token 0 modified
  amount0: BigDecimal!
  # amount of token 1 modified
  amount1: BigDecimal!
  # derived amount based on available prices of tokens
  amountUSD: BigDecimal
  # lower tick of the position
  tickLower: BigInt!
  # upper tick of the position
  tickUpper: BigInt!
  salt: Bytes!
  #TODO:
  covertedSalt: String!
  # index within the txn
  logIndex: BigInt
  gasAccumulated: BigInt!
  gasInWeiAccumulated: BigInt!
}

Tick

type Tick @entity {
  # format: <pool address>#<tick index>
  id: ID!
  # pool address
  poolAddress: String
  # tick index
  tickIdx: BigInt!
  # pointer to pool
  pool: Pool!
  # total liquidity pool has as tick lower or upper
  liquidityGross: BigInt!
  # how much liquidity changes when tick crossed
  liquidityNet: BigInt!
  # calculated price of token0 of tick within this pool - constant
  price0: BigDecimal!
  # calculated price of token1 of tick within this pool - constant
  price1: BigDecimal!
  # created time
  createdAtTimestamp: BigInt!
  # created block
  createdAtBlockNumber: BigInt!
}

Last updated