Uniswap API on Elysium: v2, v3 and v4 Trades, Pools and Streams
Uniswap runs v2, v3 and v4 contracts on Elysium (chain ID 99901). Bitquery decodes swaps on all three and returns them through GraphQL queries and WebSocket subscriptions. Every query below is limited to Uniswap's own contracts, so trades on other DEXs that reuse the Uniswap code are left out.
Trades on every Elysium DEX together are on the Elysium DEX Trades page. Uniswap on other chains has its own pages, for example Ethereum Uniswap API.
To query or stream data outside the Bitquery IDE, you need an API access token: How to generate Bitquery API token ➤
Uniswap contracts on Elysium
The addresses come from Uniswap's deployment file for chain 99901 (deployments/99901.md in the Uniswap/contracts repository on GitHub), read on 14 November 2026. The Elysium explorer shows verified source for the factory and PoolManager contracts.
| Version | Contract | Address | Bitquery filter |
|---|---|---|---|
| v2 | UniswapV2Factory | 0xbbbcc62853a5fa27b93d6bab3e6f7ce841e25df2 | Trade.Dex.OwnerAddress |
| v3 | UniswapV3Factory | 0x1707327f626496a7b5b3872e7e4d2879df7d7a9f | Trade.Dex.OwnerAddress |
| v4 | PoolManager | 0xe2e105d3f7209a9da11f83ccf3e7398a753823f1 | Trade.Dex.SmartContract, or Pair.Market.Program in the Trading cubes |
| v4 | PositionManager | 0x1d1c51b9d07fd27d36412a2b66cc23d19eb3e518 | Transaction.To on pool creation |
Two facts shape the numbers:
- Several DEXs share the protocol name. Bitquery labels every Uniswap v3 style pool as
uniswap_v3, including pools of Aero and Ramses V3. The factory address inTrade.Dex.OwnerAddressseparates them. - Launchpads build on the v4 PoolManager. Montra, Ascend and other launchpads create their token pools on Uniswap's PoolManager with their own hooks, so v4 figures include those tokens. See Elysium Launchpads.
Uniswap volume by version
Counts trades, USD volume, traders and pool contracts for Uniswap v2, v3 and v4 in one request. From the first block in the API (13 November 2026, 22:48 UTC) to 14 November 2026, 05:53 UTC, it returned 45,741 trades and $6.64M on v4, 269 trades on v2 and 254 trades on v3.
{
EVM(network: elysium) {
DEXTrades(
where: {
any: [
{Trade: {Dex: {OwnerAddress: {in: ["0xbbbcc62853a5fa27b93d6bab3e6f7ce841e25df2", "0x1707327f626496a7b5b3872e7e4d2879df7d7a9f"]}}}}
{Trade: {Dex: {SmartContract: {is: "0xe2e105d3f7209a9da11f83ccf3e7398a753823f1"}}}}
]
}
) {
Trade { Dex { ProtocolName } }
trades: count
volumeUsd: sum(of: Trade_Buy_AmountInUSD)
traders: uniq(of: Transaction_From)
pools: uniq(of: Trade_Dex_SmartContract)
}
}
}
All v4 pools live inside the PoolManager contract, so pools is 1 for v4.
Latest Uniswap v4 trades
The Trading cubes return each swap with the trader, the side, both tokens and USD values. Pair.Market.Program holds the PoolManager address.
{
Trading {
Trades(
where: {Pair: {Market: {NetworkBid: {is: "bid:elysium"}, Program: {is: "0xe2e105d3f7209a9da11f83ccf3e7398a753823f1"}}}}
orderBy: {descending: Block_Time}
limit: {count: 20}
) {
Block { Time }
TransactionHeader { Hash }
Trader { Address }
Side
Pair {
Market { Protocol Program }
Token { Symbol Address }
QuoteToken { Symbol Address }
}
Amounts { Base Quote }
AmountsInUsd { Base }
Price
}
}
}
Native HYPE has an empty Address in the Trading cubes.
Top Uniswap v4 pairs by volume
Ranks token pairs on the PoolManager by USD volume in the last 24 hours, with trade and trader counts. On 14 November 2026 the top pair was HYPE against USDC.
{
Trading {
Trades(
where: {
Pair: {Market: {NetworkBid: {is: "bid:elysium"}, Program: {is: "0xe2e105d3f7209a9da11f83ccf3e7398a753823f1"}}}
Block: {Time: {since_relative: {hours_ago: 24}}}
}
orderBy: {descendingByField: "volumeUsd"}
limit: {count: 10}
) {
Pair {
Token { Symbol Address }
QuoteToken { Symbol Address }
}
trades: count
traders: uniq(of: Trader_Address)
volumeUsd: sum(of: AmountsInUsd_Base)
}
}
}
Uniswap v2 and v3 trades by factory
Trade.Dex.OwnerAddress is the factory that created the pool. This query returns the latest swaps in pools of Uniswap's v2 and v3 factories, with both tokens and USD amounts.
{
EVM(network: elysium) {
DEXTrades(
where: {Trade: {Dex: {OwnerAddress: {in: ["0xbbbcc62853a5fa27b93d6bab3e6f7ce841e25df2", "0x1707327f626496a7b5b3872e7e4d2879df7d7a9f"]}}}}
orderBy: {descending: Block_Time}
limit: {count: 20}
) {
Block { Time }
Transaction { Hash From }
Trade {
Dex { ProtocolName OwnerAddress SmartContract }
Buy { Amount AmountInUSD PriceInUSD Currency { Symbol SmartContract } }
Sell { Amount AmountInUSD Currency { Symbol SmartContract } }
}
}
}
}
Trade.Dex.SmartContract is the pool contract for v2 and v3.
New Uniswap v3 pools
The v3 factory emits PoolCreated for each new pool. The arguments carry both tokens, the tick spacing and the pool address.
{
EVM(network: elysium) {
Events(
where: {Log: {SmartContract: {is: "0x1707327f626496a7b5b3872e7e4d2879df7d7a9f"}, Signature: {Name: {is: "PoolCreated"}}}}
orderBy: {descending: Block_Time}
limit: {count: 10}
) {
Block { Time }
Transaction { Hash From }
Arguments {
Name
Value {
... on EVM_ABI_Address_Value_Arg { address }
... on EVM_ABI_BigInt_Value_Arg { bigInteger }
... on EVM_ABI_Integer_Value_Arg { integer }
}
}
}
}
}
New v4 pools come from the PoolManager's Initialize event. That query is on the Elysium Liquidity Pools page.
Stream Uniswap v4 trades over WebSocket
The subscription pushes each new swap on the PoolManager as Bitquery indexes it. Connection steps are in WebSocket subscriptions.
subscription {
Trading {
Trades(
where: {Pair: {Market: {NetworkBid: {is: "bid:elysium"}, Program: {is: "0xe2e105d3f7209a9da11f83ccf3e7398a753823f1"}}}}
) {
Block { Time }
TransactionHeader { Hash }
Trader { Address }
Side
Pair {
Token { Symbol Address }
QuoteToken { Symbol Address }
}
Amounts { Base Quote }
AmountsInUsd { Base }
Price
}
}
}
The same swaps are in the Kafka topic elysium.dextrades.proto: Kafka Streams for Elysium.
FAQ
Which Uniswap versions run on Elysium?
Uniswap v2, v3 and v4. Uniswap's deployment file for chain 99901 lists a factory for v2 and v3 and a PoolManager for v4. Most trades are on v4: 45,741 of 46,264 Uniswap trades in the API on 14 November 2026.
What is the Uniswap v4 PoolManager address on Elysium?
0xe2e105d3f7209a9da11f83ccf3e7398a753823f1. It differs from the PoolManager address on other chains, so do not reuse an address from Ethereum or Base.
Why does a uniswap_v3 filter return Aero and Ramses trades?
ProtocolName describes the pool design. Aero and Ramses V3 pools follow the Uniswap v3 design, so they carry the same label. Filter Trade.Dex.OwnerAddress by the Uniswap v3 factory to keep Uniswap's own pools.
Are launchpad tokens included in Uniswap v4 data?
Yes. Launchpads such as Montra and Ascend create pools on Uniswap's PoolManager. To separate them, filter the Initialize event by hook address as shown on the Elysium Launchpads page.
Ready to run this in production?
Get an API key and run these queries in minutes, or talk to us about plans and enterprise delivery.