Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 15 additions & 33 deletions benchmarks/dex-network-coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ slug: dex-network-coverage
number: "090"
title: DEX indexer with most blockchains, live coverage ranking
seo_title: "DEX indexer most chains 2026"
seo_description: "Which DEX indexer supports the most blockchains? Live coverage ranking across GeckoTerminal, Codex, DefiLlama, DexPaprika and Sim by Dune."
seo_description: "Which DEX indexer supports the most blockchains? Live coverage ranking across GeckoTerminal, Codex, DexPaprika and Sim by Dune."
subtitle: Number of blockchains where each major DEX indexer actively indexes pools + swap volumes, audited every six hours against each provider's public networks endpoint.
category: Aggregators
status: live
Expand All @@ -20,29 +20,28 @@ seo_intro: |
can this API return pool addresses, live swap events, OHLCV candles
and trending pools. Providers on this leaderboard run their own DEX
pool indexer as a product (GeckoTerminal `/networks`, Codex
`getNetworks`, DefiLlama `/chains`, DexPaprika `/networks`, Sim by
Dune `/evm/supported-chains`). Asset-registry coverage (chains where
an API knows tokens for contract-address lookup) is a different
question measured on the sister bench asset-registry-coverage.
`getNetworks`, DexPaprika `/networks`, Sim by Dune
`/evm/supported-chains`). Asset-registry coverage (chains where an
API knows tokens for contract-address lookup) is a different question
measured on the sister bench asset-registry-coverage.

abstract: |
We benchmark how many networks each major DEX indexer publishes as
actively indexed for pools + swap volumes. The harness fetches the
official listing every six hours from five providers (GeckoTerminal,
Codex, DefiLlama, DexPaprika, Sim by Dune), deduplicates by chain id
or platform slug and counts. Mainnet only. Asset-registry coverage
(chains where the provider knows tokens for contract-address lookups)
is measured on bench asset-registry-coverage because it answers a
different question, an API can list tokens on 300 chains through a
market-data pipeline while running DEX pool indexing on only a
dozen. Both leaderboards live under Aggregators so a reader can
compare a provider on the axis that matches their product.
official listing every six hours from four providers (GeckoTerminal,
Codex, DexPaprika, Sim by Dune), deduplicates by chain id or platform
slug and counts. Mainnet only. Asset-registry coverage (chains where
the provider knows tokens for contract-address lookups) is measured
on bench asset-registry-coverage because it answers a different
question, an API can list tokens on 300 chains through a market-data
pipeline while running DEX pool indexing on only a dozen. Both
leaderboards live under Aggregators so a reader can compare a
provider on the axis that matches their product.

methodology:
- "Source: each provider's public DEX-indexer networks endpoint."
- "GeckoTerminal: GET /api/v2/networks (paginated, no auth). Chains where GeckoTerminal actively indexes DEX pools + trades."
- "Codex: GraphQL `getNetworks` query at https://graph.codex.io/graphql with an official API key. Chains covered by Defined.fi's DEX data pipeline."
- "DefiLlama: GET https://api.llama.fi/chains (no auth). Chains tracked by DefiLlama's TVL crawler, every chain with at least one indexed DeFi protocol, DEX chains are a subset."
- "DexPaprika: GET https://api.dexpaprika.com/networks (no auth). CoinPaprika's dedicated DEX tracker product, separate from the market-data API."
- "Sim by Dune: GET https://api.sim.dune.com/v1/evm/supported-chains (no auth). EVM only, mainnets filtered via the `mainnet` tag."
- "Cadence: full refresh every 6 hours."
Expand All @@ -53,7 +52,6 @@ findings:
- "{{best_name}} currently leads at {{best_p50}} chains across {{count}} measured providers. The count is read live from each provider's DEX-networks endpoint, so the number reflects where each API actively indexes DEX pools + swap volumes today, not a marketing claim."
- "{{name:geckoterminal}} sits at {{p50:geckoterminal}} chains via `/api/v2/networks`. GeckoTerminal indexes wherever CoinGecko's DEX pipeline reaches, so the count tracks the CoinGecko DEX-rollout roadmap rather than a standalone listing decision."
- "{{name:codex}} clocks {{p50:codex}} chains via `getNetworks`. Defined.fi historically prioritises depth on EVM + Solana DEX coverage rather than breadth across niche chains, which surfaces here as a tighter count with stronger per-chain DEX quality than a raw breadth ranking implies."
- "{{name:defillama}} publishes {{p50:defillama}} chains via `/chains`. Broader than DEX-only (includes lending, LSTs, restaking, bridges) because the endpoint tracks every chain with at least one indexed DeFi protocol, DEX chains are a subset. The count is the canonical open reference for chains with meaningful onchain financial activity."
- "DEX-indexer breadth is one axis of a data API. Asset-registry breadth (bench asset-registry-coverage) and per-chain head lag (bench aggregator-head-lag) measure the other axes a serious DEX-integration decision needs."

source: https://github.com/ChainBench/OpenChainBench/tree/main/harnesses/network-coverage
Expand All @@ -67,8 +65,6 @@ faq:
a: "{{best_name}} currently leads at {{best_p50}} chains across {{count}} measured providers. The count is read every six hours directly from each provider's own DEX-networks endpoint and deduplicated by chain id, so the leaderboard reflects where each API actively indexes DEX pools + swap volumes today, not a claim from a marketing page."
- q: "Why is this bench separate from asset-registry-coverage?"
a: "DEX-pool coverage and asset-registry coverage are two different products, not a single metric. GeckoTerminal indexes DEX pools on ~265 chains via `/networks`; CoinPaprika lists 300+ chains in `/v1/contracts` because it indexes token metadata everywhere. Comparing them on one leaderboard makes the number meaningless, a market-data API always wins on chain count while a DEX indexer always wins on pool-level depth. This bench answers the DEX-indexing question. The sister bench asset-registry-coverage answers the token-lookup question."
- q: "Does DefiLlama really index DEX pools on 400+ chains?"
a: "DefiLlama's `/chains` endpoint tracks every chain with at least one indexed DeFi protocol (DEXes, lending, LSTs, restaking, bridges, oracles), so the count is broader than DEX-only. DEX chains are a subset. DefiLlama sits on the leaderboard because the same crawler backs their DEX-volumes aggregator, and the endpoint is the canonical open reference for `chains with meaningful onchain financial activity`. Read alongside the more DEX-specific counts from GeckoTerminal, Codex and DexPaprika for the DEX-only view."
- q: "Why isn't CoinGecko / Mobula / CoinPaprika on this leaderboard?"
a: "Those providers are measured on the sister bench asset-registry-coverage because their product is chain-scoped token metadata + market data, not DEX pool indexing. CoinGecko powers GeckoTerminal on the DEX side, but the token-registry number and the DEX-indexed number are measured separately because they answer different questions. Mobula and CoinPaprika are market-data APIs, not DEX pool indexers, DexPaprika is CoinPaprika's dedicated DEX product and is on this leaderboard."
- q: "How often is the chain count refreshed?"
Expand All @@ -77,8 +73,7 @@ faq:
a: "Any chain a provider lists as a production network for DEX indexing, identified by a unique chain id or slug. Ethereum, Solana, Base, Arbitrum, BNB, Avalanche and so on each count once regardless of how the provider labels them internally. Testnet listings are filtered server-side where the provider exposes a testnet flag. Sim by Dune is EVM only by construction of the `/v1/evm/supported-chains` endpoint."

# Real metrics exposed by the network-coverage harness:
# networks_supported_total{provider="geckoterminal"|"codex"|
# "defillama"|"dexpaprika"|"dune"}
# networks_supported_total{provider="geckoterminal"|"codex"|"dexpaprika"|"dune"}
# -> gauge, the unique-chain count from the latest successful refresh.

providers:
Expand Down Expand Up @@ -108,19 +103,6 @@ providers:
sample_size: networks_supported_total{provider="codex"}
series: networks_supported_total{provider="codex"}

- slug: defillama
name: DefiLlama
tag: TVL + DEX-volumes aggregator
formula: "Count of chains returned by DefiLlama's public `/chains` endpoint (chains with at least one indexed DeFi protocol; DEX chains are a subset), refreshed every 6 hours."
queries:
p50: networks_supported_total{provider="defillama"}
p90: networks_supported_total{provider="defillama"}
p99: networks_supported_total{provider="defillama"}
mean: networks_supported_total{provider="defillama"}
success: clamp_max(networks_supported_total{provider="defillama"} > bool 0, 1)
sample_size: networks_supported_total{provider="defillama"}
series: networks_supported_total{provider="defillama"}

- slug: dexpaprika
name: DexPaprika
tag: CoinPaprika's DEX product
Expand Down
Loading
Loading