Definition

Can we use Agnostic as a backend for Uniswap analytics?

The example

Can we display a price curve of ETH/USDC projected from swap happening on-chain over time to thousands of users with the freshest data?

It shouldn't be an issue with a well-designed protocol like Uniswap and Agnostic powerful live aggregation and serving capabilities.

The Uniswap V3 data model

Fortunately, Uniswap publishes many valuable Events, allowing us to track the protocol activity with our `evm_event_*` data collection. Let's explore the documentation and find the Swap event signature; it's the one we are looking for here.

event Swap(
  address sender,
  address recipient,
  int256 amount0,
  int256 amount1,
  uint160 sqrtPriceX96,
  uint128 liquidity,
  int24 tick
)

In this version of Uniswap, we have very interesting values: sqrtPriceX96 and tick. In the previous versions, we had to calculate the price from the amounts directly. Let's try to look at the tick.

So, with this explanation from the documentation:

We should be able to get the price with this simple formula:

pow(1.0001, tick)

Last updated