A multichain Uniswap V3 subgraph migration built with Envio HyperIndex. Migrated from The Graph subgraph to HyperIndex for faster data access and multichain support.
The GraphQL API exposes pool statistics, swap history, liquidity positions, fee data, and token metadata across all active chains. You can use this to power analytics dashboards, trading interfaces, liquidity trackers, and cross-chain Uniswap V3 data aggregations.
From UniswapV3Factory and UniswapV3Pool contracts:
PoolCreated- new pool deployments with token pair and fee tierInitialize- pool initialization with price and tickMint- liquidity additionsBurn- liquidity removalsCollect- fee collectionSwap- all swaps with amounts, price, and liquidity
Ethereum Mainnet, Optimism
Additional chains (Arbitrum, Base, Polygon, BSC, Avalanche, Blast, Unichain) are available in the config and can be enabled.
- All entity IDs that use EVM addresses are stored in lowercase
- IDs are prefixed with the chain ID:
<chainId>-<address>to avoid cross-chain clashes - Unlike the original subgraph, tokens do not have a
totalSupplyfield (cannot be updated reliably via events) - GraphQL query structure differs from The Graph. See the query conversion guide
- Node.js v22 or newer
- pnpm v8 or newer
- Docker Desktop
# Install dependencies
pnpm install
# Run locally (starts indexer + GraphQL API at http://localhost:8080)
pnpm devThe GraphQL Playground is available at http://localhost:8080. Local password: testing.
pnpm codegen# Get ETH price
{
Bundle {
ethPriceUSD
id
}
}# Get pools with liquidity
{
Pool(limit: 10, order_by: {totalValueLockedUSD: desc}) {
id
liquidity
token0 { symbol decimals }
token1 { symbol decimals }
totalValueLockedUSD
volumeUSD
}
}# Get whitelisted tokens
{
Token(where: {isWhitelisted: {_eq: true}}) {
id
name
symbol
decimals
poolCount
}
}- Envio HyperIndex - multichain indexing framework
- HyperSync - high-performance blockchain data retrieval
- Migrated from the Uniswap V3 Subgraph