{"slug":"token-trade-coverage","title":"Most complete onchain trade data API, live coverage across Solana, EVM and Stellar","subtitle":"For each reference token per chain, we fetch every trade in a fixed measurement window from each provider and compare against the union baseline. Higher percent means the provider returned more of the true trade set, with fewer missed DEXs and fewer dropped fills.","category":"Aggregators","metric":"Trade capture rate","unit":"pct","status":"live","higherIsBetter":true,"filters":null,"value":100,"leader":{"name":"Mobula","slug":"mobula","value":100},"rankings":[{"name":"Mobula","slug":"mobula","ms":{"p50":100,"p90":100,"p99":100,"mean":100},"successRate":100,"sampleSize":1439},{"name":"Codex","slug":"codex","ms":{"p50":19.6402,"p90":29.3548,"p99":37.5,"mean":19.6402},"successRate":98.6101,"sampleSize":1439},{"name":"Bitquery","slug":"bitquery","ms":{"p50":7.35178,"p90":10.4869,"p99":14.741,"mean":7.35178},"successRate":100,"sampleSize":1439}],"sparkline":[94.1695,94.1695,95.402,96.8448,96.8448,96.2749,96.9333,96.9333,98.4012,94.817,94.817,94.817,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,92.4648,92.4648,92.4648,100,100,100,100,100,100,100,100,100,100,100,100,80,80,80,77.9487,77.9487,77.9487,80,80,80,100,100,100,100,100,100,100,100,100,90,90,90,97.344,97.344,97.344,100,100,100,100,100,100,100],"sampleSize":4317,"asOf":"2026-07-24T15:28:19.001Z","headline":"Mobula leads trade capture rate at 100.0% (24h avg) on Most complete onchain trade data API, live coverage across Solana, EVM and Stellar.","quote":"Mobula leads trade capture rate at 100.0% (24h avg) on Most complete onchain trade data API, live coverage across Solana, EVM and Stellar. Source: OpenChainBench (https://openchainbench.com/benchmarks/token-trade-coverage).","cite":{"plain":"OpenChainBench. \"Most complete onchain trade data API, live coverage across Solana, EVM and Stellar\". Retrieved 2026-07-24. https://openchainbench.com/benchmarks/token-trade-coverage","bibtex":"@misc{ocb_token_trade_coverage,\n  author = {OpenChainBench},\n  title  = {Most complete onchain trade data API, live coverage across Solana, EVM and Stellar},\n  year   = {2026},\n  url    = {https://openchainbench.com/benchmarks/token-trade-coverage},\n  note   = {Retrieved 2026-07-24}\n}","apa":"OpenChainBench. (2026). Most complete onchain trade data API, live coverage across Solana, EVM and Stellar. Retrieved July 24, 2026, from https://openchainbench.com/benchmarks/token-trade-coverage","ris":"TY  - GEN\r\nAU  - OpenChainBench\r\nTI  - Most complete onchain trade data API, live coverage across Solana, EVM and Stellar\r\nPY  - 2026\r\nUR  - https://openchainbench.com/benchmarks/token-trade-coverage\r\nY2  - 2026-07-24\r\nER  - \r\n"},"pageUrl":"https://openchainbench.com/benchmarks/token-trade-coverage","ogImage":"https://openchainbench.com/api/og/token-trade-coverage","source":"https://github.com/ChainBench/OpenChainBench/tree/main/harnesses/token-trade-coverage","methodology":["Reference tokens: a fixed set per chain, chosen for enough trade volume in the measurement window that a coverage gap is visible above sampling noise.","Measurement window: 60 minutes rolling. The window is the same for every provider in a given cycle so counts are directly comparable.","Mobula: `GET https://api.mobula.io/api/2/trades/filters?from={ts_ms}&to={ts_ms}` with `Authorization: <API_KEY>`. Cursor pagination, limit=5000.","Bitquery: `POST https://streaming.bitquery.io/graphql` with `X-API-KEY`. GraphQL query on `DEXTradeByTokens` with `Block.Time.since` / `till` on the realtime dataset. Hard limit 10000 per call.","Codex: `POST https://graph.codex.io/graphql` with `Authorization: <API_KEY>`. GraphQL query on `getTokenEvents` with `timestamp` bounds. Cursor pagination.","Stellar coverage measured only for providers that ship an official Stellar trades endpoint. Providers with no Stellar support are excluded from the Stellar row rather than counted as zero (that would penalise all three providers unfairly against a chain none of them promised).","Capture rate: `provider_count / max(provider_count across all providers on that (chain, token)) * 100`. Union baseline is the largest observed count, not a synthetic ground truth.","Cadence: every 30 minutes per (provider, chain, token). One measurement is short (a handful of API calls per token) so the full cycle finishes well inside the 30-minute window.","Failure handling: HTTP timeouts and 5xx count as zero trades for that cycle. Persistent 5xx (three cycles in a row) surfaces as `unresponsive` on the leaderboard, not silent zeros."],"license":"CC-BY-4.0"}