Analyzing Decentralized Exchanges with the Bitquery Explorer and DEXrabbit
How to analyze DEX markets, tokens, pairs and traders without writing a query, using DEXrabbit and the Bitquery Explorer, and how to open the GraphQL query behind any view when you want the data in your own app.

The 2020 version of this post walked through DEX charts on the old Bitquery explorer, when Uniswap had most of the market and the explorer covered Ethereum alone. Both tools and market have moved on. DEX analysis now lives in DEXrabbit, a dashboard built on the same data as the DEX API that covers Ethereum, Solana, BNB Chain, Base, Polygon, Tron, Optimism, Arbitrum and Robinhood Chain, while the Bitquery Explorer covers tokens, addresses and transactions. Every DEXrabbit view carries a "Get API" button that opens the exact GraphQL query behind it, so what starts as browsing ends as a query you can ship. This post walks the DEX views in the order an analysis usually runs and shows the query under each.
DEX market share on a chain
Start at a chain's DEX markets page, such as DEX markets on Ethereum. The overview ranks every protocol on the chain by volume, trade count and active users over the last day, with tabs for protocol rankings, activity and trends. It answers the question the 2020 post answered with a single chart, which venue dominates, and adds who trades there and how that share is moving.
One reading note. Volume in USD depends on a USD price for every token in every pool, and a mispriced long-tail pool can put an absurd figure against a small protocol. When a ranking looks wrong, switch to trade count and active users, which cannot be distorted that way, or rank in the query with a per-trade USD cap.
The query behind the overview groups the last 24 hours of trades by protocol family on the Crypto Trades API, excluding Seaport, which is an NFT marketplace:
query DexMarketShare {
Trading {
Trades(
where: {
Pair: {
Market: {
NetworkBid: { is: "bid:eth" }
ProtocolFamily: { notIn: ["Seaport"] }
}
}
Block: { Time: { since_relative: { hours_ago: 24 } } }
}
orderBy: { descendingByField: "trades" }
limit: { count: 10 }
) {
Pair {
Market {
ProtocolFamily
}
}
trades: count(distinct: TransactionHeader_Hash)
traders: uniq(of: Trader_Address)
usd: sum(of: AmountsInUsd_Quote)
}
}
}
Change bid:eth to bid:solana, bid:bsc or bid:base for the same table on another chain; the Solana DEX markets page is the same view for Solana, where the venue list looks very different.
One DEX in detail
Click a protocol, or open it directly by protocol name, for example Uniswap v3 on Ethereum. The page shows the venue's day at a glance, then three tabs: last trades as a live stream with pair, side, size, price and transaction; pairs ranked by volume with short-term price changes; and top traders by volume with their buy and sell split. Protocol names follow the API's convention, so uniswap_v2, uniswap_v3 and uniswap_v4 are separate pages, as are pancake_swap_v3, curve_v1 and the rest.
The live trades tab is this subscription; drop subscription for query and add limit and orderBy for a snapshot:
subscription {
Trading {
Trades(
where: {
Pair: {
Market: {
NetworkBid: { is: "bid:eth" }
Protocol: { is: "uniswap_v3" }
}
}
}
) {
Block {
Time
}
Side
Trader {
Address
}
Pair {
Token {
Symbol
}
QuoteToken {
Symbol
}
Pool {
Address
}
}
Amounts {
Base
}
AmountsInUsd {
Quote
}
PriceInUsd
TransactionHeader {
Hash
}
}
}
}
A token and its markets
Search for a token by symbol or address to reach its page, for example PEPE on Ethereum. The header carries price, market cap, fully diluted valuation and supply, and the summary line names the DEX protocols it trades on, its top pair and its most active wallets. The tabs are the analysis: a price chart, a cluster map of connected wallets, trades, pairs, DEX markets and top traders.
This is where the 2020 post's advice still holds. A token whose volume comes from many pairs and many traders is being traded; one whose volume sits in a single pair between a handful of wallets is being painted, and the pairs and top traders tabs show which in a minute. The header numbers come from the Tokens cube:
query TokenHeader {
Trading {
Tokens(
where: {
Token: {
Address: { is: "0x6982508145454ce325ddbe47a25d4ec3d2311933" }
Network: { is: "Ethereum" }
}
Interval: { Time: { Duration: { eq: 60 } } }
}
limit: { count: 1 }
orderBy: { descending: Block_Time }
) {
Token {
Symbol
Name
}
Price {
IsQuotedInUsd
Ohlc {
Close
}
}
Supply {
MarketCap
FullyDilutedValuationUsd
TotalSupply
}
Volume {
Usd
}
}
}
}
The Uniswap pools post covers reserves and liquidity for the pools behind a token, and the DEX price index post explains how the displayed price is computed from those pools.
Pairs, traders and categories
Three more views round out an analysis:
- Pairs. Every token page and DEX page lists pairs with the last price, short-term changes, day volume, trade count and unique traders, which is the fastest way to find where a token's real liquidity sits.
- Top traders. On a DEX page they are the wallets driving that venue; on a token page, the wallets driving that token. Both link to the wallet's trade history, and the Traders API is the query form.
- Categories. Crypto categories groups tokens into curated sets, such as liquid staking tokens, tokenized stocks, real-world assets, AI agents, wrapped BTC and Pump.fun tokens, each with live multi-chain prices and day volume, for sector-level comparison rather than one token at a time.
From a view to your own app
Each "Get API" button opens the query in the Bitquery IDE, where you can edit fields, filters, networks and time ranges and run it with your own token. Live views carry a "Get Stream" button for the subscription form. The queries above are the ones those buttons open, simplified. When a dashboard view is enough, the dashboard is the product; when it is not, the query under it is a starting point that already returns the numbers you were looking at.
The Bitquery Explorer complements DEXrabbit for the rest of the chain: token pages with holders and transfers, address pages with balances and history, and transaction pages with decoded calls and events. Between the two, the 2020 post's whole workflow, from market share down to a token's latest trades, is a set of links rather than a set of screenshots.
Supported protocols
The 2020 post listed seventeen Ethereum protocols. The DEX API now indexes hundreds of venues across the chains DEXrabbit covers, and on Ethereum alone the market page lists Uniswap across its versions, Curve, Balancer, PancakeSwap, Fluid, 1inch, KyberNetwork, DODO, Bancor and 0x fills. New venues appear on the market page as soon as they are indexed, which is the quickest way to check coverage for a chain.
FAQ
Where did the DEX pages of the Bitquery explorer go?
To DEXrabbit. The explorer keeps token, address and transaction pages; DEX markets, DEX detail pages, pairs, traders and categories live on DEXrabbit, on the same data.
Can I get the data behind a DEXrabbit view?
Yes. Every view has a "Get API" button that opens its GraphQL query in the IDE, and live views have "Get Stream" for the subscription. Run it with an API token from the IDE or through the DEX API.
Which chains does DEXrabbit cover?
Ethereum, Solana, BNB Chain, Base, Polygon, Tron, Optimism, Arbitrum and Robinhood Chain, each with its own DEX markets page.
Why does a small DEX sometimes show enormous USD volume?
A long-tail token in one of its pools has a bad USD price, and the volume sum inherits it. Trade count and active users are immune; for USD rankings, cap the per-trade USD amount in the query.
Related reading
Subscribe to our newsletter
Subscribe and never miss any updates related to our APIs, new developments & latest news etc. Our newsletter is sent once a week on Monday.