Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
125 commits
Select commit Hold shift + click to select a range
04831ab
feat: add pm-fee-comparison and pm-geographic-access harnesses
Flotapponnier Jul 28, 2026
07b51c5
Merge pull request #1656 from ChainBench/feat/pm-fee-geo-harnesses
Flotapponnier Jul 28, 2026
a482414
fix(pm-fee-geo): unit alignment (bps/100=pct) + geo avg by venue
Flotapponnier Jul 28, 2026
5863fc6
Merge pull request #1657 from ChainBench/feat/pm-fee-geo-harnesses
Flotapponnier Jul 28, 2026
0c7e51d
fix(pm-geo): p99 query to eu-west only (us-east not deployed yet)
Flotapponnier Jul 29, 2026
fbaa13e
Merge pull request #1658 from ChainBench/feat/pm-fee-geo-harnesses
Flotapponnier Jul 29, 2026
c070c6a
fix(pm): include resolved markets in Polymarket vol24h + remove Manif…
Flotapponnier Jul 29, 2026
95c127b
fix(pm): Myriad retry, DeFiLlama vol24h, Myriad onchain, remove Predi…
Flotapponnier Jul 29, 2026
636fa66
fix(pm): Myriad retry, DeFiLlama vol24h, Myriad onchain, remove Predi…
Flotapponnier Jul 29, 2026
7a15525
fix(geo): forecastex probe url -> /markets page
Flotapponnier Jul 29, 2026
3fd182f
merge: resolve conflict, keep /markets url
Flotapponnier Jul 29, 2026
0f32416
Merge pull request #1661 from ChainBench/feat/pm-data-quality-fixes
Flotapponnier Jul 29, 2026
423fef8
retire pm-geographic-access and pm-fee-comparison benches (#1663)
Flotapponnier Jul 29, 2026
130e2c1
sync: main → dev (auto-merge 07d2abf4)
Jul 29, 2026
ca11e2e
drop pm-geographic-access and pm-fee-comparison benches, fix predicti…
Flotapponnier Jul 29, 2026
ba28bd7
add trade pub lag to pm-ws-latency, drop pm-data-freshness bench and …
Flotapponnier Jul 29, 2026
e609afb
cleanup: remove all pm-data-freshness and dead Codex refs (#1666)
Flotapponnier Jul 29, 2026
a615217
audit: regenerate bench-published (93 entries), drop dead manifold co…
Flotapponnier Jul 29, 2026
8ad65be
restore: reports pages/nav/sitemap dropped in dev←main sync
Flotapponnier Jul 29, 2026
b899dd0
Merge pull request #1668 from ChainBench/fix/restore-reports-on-dev-2
Flotapponnier Jul 29, 2026
fcc0a2d
fix: remove dead predexon feed, hide feeds tab when empty (#1670)
Flotapponnier Jul 29, 2026
3cdc350
report: remove hardcoded September reference in What to Watch Next
Flotapponnier Jul 29, 2026
3001ebd
Merge pull request #1671 from ChainBench/fix/rpc-report-sept-ref
Flotapponnier Jul 29, 2026
ba2d4af
fix: delete predexon logo, remove from manifest, clean PM page copy (…
Flotapponnier Jul 29, 2026
07e06ed
fix: end-of-line label collision + padR increase for clean PNG export…
Flotapponnier Jul 29, 2026
c422065
fix: hide range tabs and TopN from PNG export (#1674)
Flotapponnier Jul 29, 2026
7517f80
feat: /data-api hub — 9 benches, by-benchmark + by-provider pivot (#1…
Flotapponnier Jul 29, 2026
f6dc6ff
fix: drop DefiLlama from dex-network-coverage + fix hub value formatt…
Flotapponnier Jul 29, 2026
b869c55
feat(data-api): regional sub-scores in bench + provider pivot (#1678)
Flotapponnier Jul 29, 2026
3c6867e
fix(data-api): cap chain strip to 3 pills + overflow count (#1679)
Flotapponnier Jul 29, 2026
426e15d
feat: dexpaprika product page + compact chain-chips + provider links …
Flotapponnier Jul 29, 2026
0d100fb
fix: alternatives 404 + sitemap timeout fallback
Flotapponnier Jul 29, 2026
3b571fb
Merge pull request #1681 from ChainBench/fix/alternatives-404-sitemap…
Flotapponnier Jul 29, 2026
cd3ec5e
fix: clickable chain/region pills + Data APIs in footer (#1682)
Flotapponnier Jul 29, 2026
9b19de0
fix: separate Region/Chain labels + Data APIs footer (#1683)
Flotapponnier Jul 29, 2026
b34a757
fix(pm-ws-latency): extend histogram buckets + clarify Kalshi delta-o…
Flotapponnier Jul 29, 2026
880a078
fix: merge region+chain pills into one flex row (#1686)
Flotapponnier Jul 29, 2026
a2c2072
fix: stale KV fallback + never cache null on /perps cohort fetch (#1687)
Flotapponnier Jul 29, 2026
68e56d9
fix: remove Data APIs from main nav (#1688)
Flotapponnier Jul 29, 2026
3373bc0
feat: pm-resolution-delay multi-venue (Polymarket + Kalshi) (#1689)
Flotapponnier Jul 29, 2026
c464132
fix(kalshi-res): exclude Exotics (auto-parlays), add event category c…
Flotapponnier Jul 29, 2026
7dfc138
fix(kalshi-res): watchlist filter + event category cache (#1691)
Flotapponnier Jul 29, 2026
cecb353
fix(kalshi-res): skip KXMV* in pollClosed (6s closed window race)
Flotapponnier Jul 29, 2026
491a62d
fix(kalshi-res): skip KXMV* in pollClosed (6s closed window race) (#1…
Flotapponnier Jul 29, 2026
d70f108
fix: update Wikidata Q ID to Q140756438 (Q140172649 deleted)
Flotapponnier Jul 29, 2026
5f281fa
fix: 7D/30D chart shows 0.0s on latency benches (#1694)
Flotapponnier Jul 29, 2026
ea35a54
feat: auto-detect available time ranges in chart + video exporter
Flotapponnier Jul 29, 2026
b35fdfa
fix: forward availableRanges through ExportVideoModal to ModalBody
Flotapponnier Jul 29, 2026
18bc7f3
feat(data-api): add chain sub-scores to By Provider pivot cells (#1695)
Flotapponnier Jul 29, 2026
9453815
Merge pull request #1693 from ChainBench/fix/wikidata-q-id
Flotapponnier Jul 29, 2026
869e76b
Merge pull request #1696 from ChainBench/feat/smart-range-tabs
Flotapponnier Jul 29, 2026
ad540ba
fix(pm-ws-latency): remove Kalshi from rank_matrix (#1697)
Flotapponnier Jul 29, 2026
e7a4338
fix(data-api): chain chips show #1 rank + missing labels (#1698)
Flotapponnier Jul 29, 2026
3d0b741
feat(pm-venues): add Metaculus + Betfair to api-latency and rate-limi…
Flotapponnier Jul 29, 2026
43c9f89
fix(data-api): remove chain chips from By Provider pivot (#1700)
Flotapponnier Jul 29, 2026
a1a6b9b
feat(data-api): per-region chain wins in By Provider pivot (#1701)
Flotapponnier Jul 29, 2026
ff5b6c7
fix: remove betfair venue (geo-restricted from FR + EU probe nodes) (…
Flotapponnier Jul 29, 2026
f23e236
fix(data-api): clickable bench cells in By Provider pivot (#1704)
Flotapponnier Jul 29, 2026
954a047
fix: etherscan per-sec rate limit no longer aborts cycle, drop Linea …
Flotapponnier Jul 31, 2026
e232403
fix: pm bench audit — venue coverage, copy accuracy, ramp exclusion (…
Flotapponnier Jul 31, 2026
69ed09d
fix: polymarket-us hub row links to external site instead of 404 prod…
Flotapponnier Jul 31, 2026
33066f6
fix: shorten methodology bullets to stay under Zod 500/240-char caps …
Flotapponnier Jul 31, 2026
297659e
fix: shorten provider tags under Zod 80-char cap (#1710)
Flotapponnier Jul 31, 2026
afdd899
fix: shorten provider tags under Zod 80-char cap in pm-api-latency (#…
Flotapponnier Jul 31, 2026
a108526
fix: em-dash in findings/subtitle/methodology + bust stale pm-hub cac…
Flotapponnier Jul 31, 2026
d12294a
feat: add perp-active-markets bench #116 (gains #2 overall, #1 EVM)
Flotapponnier Aug 2, 2026
b4921d7
Merge pull request #1713 from ChainBench/feat/perp-active-markets
Flotapponnier Aug 2, 2026
c103bb8
fix: add p90/p99 quantile queries to perp-active-markets providers
Flotapponnier Aug 2, 2026
0d4df72
Merge pull request #1714 from ChainBench/fix/perp-active-markets-quan…
Flotapponnier Aug 2, 2026
a9f1b0b
feat: add bench 117/118/119 - gains showcase trio (cost slope, mark d…
Flotapponnier Aug 2, 2026
a56d89e
feat: add bench 117/118/119 - gains showcase trio (cost slope, mark d…
Flotapponnier Aug 2, 2026
7919b0e
feat: gains chain badge multi-chain, alternatives page, fees-at-size …
Flotapponnier Aug 2, 2026
ce9d448
Merge pull request #1716 from ChainBench/feat/gains-bench-trio
Flotapponnier Aug 2, 2026
83cfde6
fix: add ignoring(notional) to perp-cost-slope ratio queries
Flotapponnier Aug 2, 2026
813eff8
fix: add ignoring(notional) to perp-cost-slope ratio queries (#1717)
Flotapponnier Aug 2, 2026
38febe8
feat: add active-markets, fees-at-size bench cards to /perp venue pages
Flotapponnier Aug 2, 2026
8721c65
Merge pull request #1718 from ChainBench/fix/perp-cost-slope-ignoring…
Flotapponnier Aug 2, 2026
61c90f4
feat: add perp bench cards to /alternatives/[slug] for perp venues
Flotapponnier Aug 2, 2026
f845b09
Merge pull request #1719 from ChainBench/fix/perp-cost-slope-ignoring…
Flotapponnier Aug 2, 2026
eabbfdc
feat(rpc): add kava-rpc (121) and zora-rpc (122) benches
Flotapponnier Aug 2, 2026
12521f7
fix: drop Paradex from perp-cost-slope (book too thin to fill 1M on E…
Flotapponnier Aug 2, 2026
4b04eb1
fix: drop Paradex from perp-cost-slope (#1721)
Flotapponnier Aug 2, 2026
897433e
fix: em/en dashes and disclaimer length in validator-yield-hyperliqui…
Flotapponnier Aug 2, 2026
f6918df
feat: perp bench cards + kava/zora RPC + cost-slope fixes (#1722)
Flotapponnier Aug 2, 2026
75ce5cc
fix: count-leaderboard stats for lower-is-better benches
Flotapponnier Aug 2, 2026
df46423
fix: move loadBenchFromBlob out of perp-venue-context module scope
Flotapponnier Aug 2, 2026
32c3382
fix: move loadBenchFromBlob out of perp-venue-context (fixes /perp 50…
Flotapponnier Aug 2, 2026
43658af
fix: fill rate display as pct, add perp-fill-rate-1m bench 124
Flotapponnier Aug 2, 2026
92dfda4
Merge pull request #1724 from ChainBench/fix/perp-cost-slope-ignoring…
Flotapponnier Aug 2, 2026
d05cd08
feat(bench): add perp-exit-custody bench 123 with permissions scan data
Flotapponnier Aug 2, 2026
bb32fc6
feat: add unit x for dimensionless ratios, apply to perp-cost-slope
Flotapponnier Aug 2, 2026
3793ecb
feat: add RPC benches 125-129 (Abstract, ApeChain, Lisk, Swellchain, …
Flotapponnier Aug 2, 2026
2fa8459
fix: use correct .webp extension for DefiLlama logos
Flotapponnier Aug 2, 2026
20a5c28
Merge pull request #1727 from ChainBench/feat/rpc-wave2-chains
Flotapponnier Aug 2, 2026
c31d720
Merge pull request #1726 from ChainBench/feat/perp-exit-custody
Flotapponnier Aug 3, 2026
eb15588
fix: add x to UnitSchema in snapshot.ts
Flotapponnier Aug 3, 2026
b6aa522
fix: add x unit to ALLOWED_BY_UNIT in views.ts
Flotapponnier Aug 3, 2026
07ef698
Merge pull request #1728 from ChainBench/fix/snapshot-unit-x
Flotapponnier Aug 3, 2026
8280bff
fix: group headerActions in count-leaderboard to prevent justify-betw…
Flotapponnier Aug 3, 2026
51fc07e
fix: Polymarket spread ref = ticker mid_price (#1729)
Flotapponnier Aug 3, 2026
686d668
fix: drop polymarket from perp-cost-slope (prediction market, not per…
Flotapponnier Aug 3, 2026
e1302e9
Merge pull request #1730 from ChainBench/fix/perp-cost-slope-drop-pol…
Flotapponnier Aug 3, 2026
4d0a2fc
fix: x unit 3 decimal places near 1, fix fmtValue double-x suffix
Flotapponnier Aug 3, 2026
3e0d2e1
Merge pull request #1731 from ChainBench/fix/perp-cost-slope-x-precision
Flotapponnier Aug 3, 2026
66ef820
fix: set perp-exit-custody, perp-fill-rate-1m, perp-fees-at-size to d…
Flotapponnier Aug 3, 2026
3c1ea4a
fix: set perp-exit-custody, perp-fill-rate-1m, perp-fees-at-size to d…
Flotapponnier Aug 3, 2026
532d63e
fix: retire perp-open-interest (multi-chain OI aggregation structural…
Flotapponnier Aug 3, 2026
1af6050
Merge pull request #1733 from ChainBench/fix/retire-perp-oi
Flotapponnier Aug 3, 2026
8e0eb2b
fix: drop perp-open-interest bench
Flotapponnier Aug 3, 2026
c3d9ff7
Merge pull request #1735 from ChainBench/fix/drop-perp-oi
Flotapponnier Aug 3, 2026
d4c157e
fix: remove noStore() after unstable_cache — resolves DYNAMIC_SERVER_…
Flotapponnier Aug 3, 2026
d070699
Merge pull request #1736 from ChainBench/fix/drop-perp-oi
Flotapponnier Aug 3, 2026
033649a
feat(bench-119): auto-enrich incident registry from DeFiLlama daily
Flotapponnier Aug 3, 2026
7224357
fix: force-dynamic on /perp/[slug] + drop 3 draft perp benches
Flotapponnier Aug 3, 2026
5a87656
Merge pull request #1737 from ChainBench/fix/perp-slug-force-dynamic
Flotapponnier Aug 3, 2026
6db7ba9
feat: add publicnode + ankr to kava-rpc (5 providers)
Flotapponnier Aug 3, 2026
301f383
feat: perp-exit-custody harness (static gauges + Ostium/gains live pr…
Flotapponnier Aug 3, 2026
b46be71
feat: products-style bench rankings on /perp/[slug] pages
Flotapponnier Aug 3, 2026
fd97b4d
Merge pull request #1739 from ChainBench/feat/perp-slug-products-style
Flotapponnier Aug 3, 2026
f4eaef8
fix: handle +Inf in CountLeaderboard and fmtValue for no-exit custody…
Flotapponnier Aug 3, 2026
d33836c
fix: emit +Inf for no-exit venues (CountLeaderboard now handles it co…
Flotapponnier Aug 3, 2026
f6f9a54
Merge pull request #1740 from ChainBench/fix/inf-leaderboard
Flotapponnier Aug 3, 2026
7b3ec2a
remove static.go (already merged via fix/inf-leaderboard with math.Inf)
Flotapponnier Aug 3, 2026
96cf1d3
Merge pull request #1738 from ChainBench/feat/perp-exit-custody-harness
Flotapponnier Aug 3, 2026
e1d23c8
feat: protocol above rankings + badges + compare on /perp/[slug] (#1741)
Flotapponnier Aug 3, 2026
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
2 changes: 1 addition & 1 deletion alternatives/bitquery.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ slug: bitquery
target_product: Bitquery
target_url: https://bitquery.io
description: GraphQL API for blockchain data, multi-chain
benchmark: network-coverage
benchmark: asset-registry-coverage

intro: |
Bitquery is a GraphQL surface on top of indexed onchain data, with the schema as the actual product: queries declare exactly the fields needed across transfers, trades, DEX events and account state, and the indexer fans those out across chains. Pricing is point-based, with each field, filter and join consuming from a monthly point budget rather than from a flat request quota, which means a single dashboard with many panels can hit the ceiling well before request volume looks high. Chain coverage is broad but uneven in depth: some networks expose full DEX trade indexing, others only basic transfers. The team usually compared next is the one whose chain list either covers a long-tail network Bitquery does not, or covers the same network with a flatter pricing model that does not penalise wide GraphQL fragments on a per-field basis.
Expand Down
2 changes: 1 addition & 1 deletion alternatives/coingecko.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ slug: coingecko
target_product: CoinGecko
target_url: https://www.coingecko.com/en/api
description: Crypto price + market data API, multi-chain
benchmark: network-coverage
benchmark: asset-registry-coverage

intro: |
CoinGecko is a coin-centric price and market data REST API built around a curated asset list (the `/coins` universe) rather than around on-chain events. Tokens are added through a listing process, prices land on the API after that process completes, and the free tier is famously throttled (around 30 requests per minute on the demo key) which pushes any real product onto a paid plan within days of integration. The on-chain DEX side ships as a separate `/onchain` namespace inherited from GeckoTerminal, with its own quotas. Teams usually leave CoinGecko at one of two points: when the launch cadence of the tokens they care about outpaces the listing pipeline, or when the per-minute cap on the free tier forces a migration before the product is monetised enough to justify the enterprise tier.
Expand Down
16 changes: 16 additions & 0 deletions alternatives/gains.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
slug: gains
target_product: gains.trade
target_url: https://gains.trade
description: Oracle-priced perpetuals on Arbitrum, Base, Polygon and ApeChain
benchmark: perp-fees

intro: |
gains.trade v8 is an oracle-priced perpetuals venue running on Arbitrum, Base, Polygon and ApeChain. It settles against a GNS staking vault rather than a central orderbook, with the position open fee read directly on-chain from the fees contract and the spread term computed from half of the on-chain spreadP parameter. Because there is no orderbook, there is no price impact when executing against it: a $1M trade costs exactly the same number of basis points as a $1k trade. This benchmark measures the live all-in cost of opening a $1000 ETH long 10x position across major perpetual venues, every five minutes, by reading taker fees from each venue's own API and walking each orderbook for $1000 of buy-side notional. gains.trade is queried via eth_call on Base: pairs(N) gives the spreadP and feeIndex for each market, then fees(feeIndex) gives the open fee (totalPositionSizeFeeP). Values are in 1e10 precision per Gains v8 convention. The same harness queries Hyperliquid, Lighter, dYdX v4 and GMX v2. Funding rate is published separately because it accrues per hour held, not at open.

seo_title: "gains.trade alternatives: live benchmark"
seo_description: Compare gains.trade against Hyperliquid, Lighter, dYdX, GMX v2 on live taker fee plus spread crossed at $1k, $100k and $1M notional, refreshed every five minutes.

status: live

positioning: |
gains.trade v8 uses a decentralized GNS staking vault rather than an orderbook. Traders open positions against the vault, priced against a Chainlink or Pyth oracle rather than a live book. The vault absorbs trader profits and receives trader losses, with GNS stakers backstopping it in exchange for a share of protocol fees. This oracle-driven model is architecturally distinct from CLOB venues: there is no maker side, no maker rebate to earn, and the fee schedule is a single flat percentage of position size. For the perp-fees axis, this has one important implication: a $1M trade costs the same basis points as a $1k trade, because there is no book to walk and no price impact to eat. The all-in cost at any size equals the open fee plus half of spreadP, both read live from on-chain. The venue covers 364 active markets across crypto, forex, tokenized stocks, commodities and stock indices, the widest multi-asset catalog among EVM perp DEXes. The typical use case is directional traders on mid-cap or exotic pairs that lack deep orderbook liquidity on any CLOB venue; teams running large block trades also benefit from the flat cost structure versus a deep-but-not-infinite orderbook.
2 changes: 1 addition & 1 deletion alternatives/the-graph.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ slug: the-graph
target_product: The Graph
target_url: https://thegraph.com
description: Decentralised indexing protocol with subgraph queries
benchmark: network-coverage
benchmark: asset-registry-coverage

intro: |
The Graph is a decentralised indexing protocol where each dataset (a subgraph) is written, deployed and queried independently rather than read off a pre-built schema. Queries are GQL against indexer nodes, billed in GRT, with a hosted gateway in front. The model means data shape is owned by whoever wrote the subgraph: a missing field, a stale index or a deprecated mapping is on the publisher, not on a central API team. Chain coverage tracks what indexers have chosen to support, which leans heavily EVM and lags on newer L2s and non-EVM networks until someone publishes a subgraph for them. The two reasons teams move off are the cost of running a private subgraph at production load, and the operational burden of debugging an indexer regression on a chain the public hosted service does not cover.
Expand Down
43 changes: 0 additions & 43 deletions answers/which-prediction-market-data-api-is-the-freshest.yml

This file was deleted.

Loading
Loading