Skip to content
Merged
Changes from all commits
Commits
Show all changes
216 commits
Select commit Hold shift + click to select a range
9689cf0
solana cohort: solana-official logo alias, leorpc logo + light chip, …
Jul 12, 2026
b493572
Merge pull request #1135 from ChainBench/chore/solana-cohort-pages
Flotapponnier Jul 12, 2026
d80b67d
nft harness: keyless OpenSea mode, empty x-api-key header caused 401s…
Flotapponnier Jul 13, 2026
7c6f4f1
nft harness: delist rarible, free tier is 100 requests per month (#1137)
Flotapponnier Jul 13, 2026
a98ae7a
robinhood chain: chains hub entry, chain-kpis, l2-block-time (HTTP po…
Jul 13, 2026
dda42b6
Merge pull request #1138 from ChainBench/feat/robinhood-chain-hub
Flotapponnier Jul 13, 2026
be49b75
bridge-monitor: on-chain balance fallback + degraded flag
Jul 13, 2026
90658e0
bridge-monitor: self-healing metrics + slack notifiers
Jul 13, 2026
2283c97
bridge-monitor: auto-rebalancer, corrective transfer via cheapest bridge
Jul 13, 2026
ca1efe8
bridge-monitor: tier downgrade ladder + rebalancer wiring in pre-flight
Jul 13, 2026
91656a9
bridge-monitor: stuck-fund reaper, hourly stranded gauge + corrective…
Jul 13, 2026
bc7e169
bridge-monitor: gas auto-top-up via LiFi same-chain swap, gated by de…
Jul 13, 2026
9626ac4
bridge-monitor: unit tests for refill route, ladder, stranded hours; …
Jul 13, 2026
3b55ed3
bridge-monitor: keyless dry-run support for reaper + RunDryRun
Jul 13, 2026
ed084d8
bridge-monitor: comment style cleanup in pre-flight docs
Jul 13, 2026
d2c3d00
bridge-monitor: daily spend tracker keyed by UTC date, persisted; exe…
Jul 13, 2026
b7b3b08
bridge-monitor: fix double-send on in-flight rebalance, slot-wide bud…
Jul 13, 2026
19357b4
bridge-monitor: SIMULATE_BALANCES only honored in dry-run mode
Jul 13, 2026
1b68417
tx executor: preserve hash on ambiguous send errors, split dry-run sp…
Jul 13, 2026
ded0e81
Merge pull request #1140 from ChainBench/feat/bridge-self-healing-fixes
Flotapponnier Jul 13, 2026
cbe1eb8
executor: add missing chain label, first real single-test panicked po…
Flotapponnier Jul 13, 2026
548d109
bridge-monitor: point Mobula calls at demo-api.mobula.io (#1142)
Flotapponnier Jul 13, 2026
1a19724
tokenized-stock-peg: bench 076, onchain tokenized equities vs Nasdaq …
Jul 13, 2026
22bd7fc
Merge pull request #1143 from ChainBench/feat/tokenized-stock-peg
Flotapponnier Jul 13, 2026
84d61a3
spec: missing store blob for a live bench throws instead of caching t…
Flotapponnier Jul 13, 2026
31d40ea
tsp: parse the flat spark shape (close/timestamp arrays), log empty p…
Jul 13, 2026
6397da4
Merge pull request #1145 from ChainBench/fix/tsp-spark-parser
Flotapponnier Jul 13, 2026
3002075
tsp: drop invalid rank_matrix_query, 1m reference candles, fee-band +…
Jul 13, 2026
734aac9
Merge pull request #1146 from ChainBench/fix/tsp-spec-validation
Flotapponnier Jul 13, 2026
88991bb
rwa: new category, tokenized-stock-peg moves in, 11 equity logos + re…
Jul 13, 2026
1ccad7c
Merge pull request #1147 from ChainBench/feat/rwa-category-stock-pages
Flotapponnier Jul 13, 2026
a3128eb
rwa: xstocks-peg (077) + usdy-nav-basis (078), issuer label on the ts…
Jul 13, 2026
b0e1392
Merge pull request #1148 from ChainBench/feat/xstocks-usdy-benches
Flotapponnier Jul 13, 2026
8d06d98
rwa: complete product pages, hood/qqq/coin/orca/pyth logos + dual-iss…
Jul 13, 2026
16c7f12
Merge pull request #1149 from ChainBench/chore/rwa-product-pages-comp…
Flotapponnier Jul 13, 2026
5bca1b3
registry: googl links to google.com, abc.xyz 403s aggressively
Jul 13, 2026
f71c744
Merge pull request #1150 from ChainBench/fix/googl-url
Flotapponnier Jul 13, 2026
ed3678f
cardano: cache koios epoch params 1h (public tier was exhausted); ste…
Jul 13, 2026
1928867
Merge pull request #1151 from ChainBench/fix/koios-cadence-stellar-re…
Flotapponnier Jul 13, 2026
29a4594
fix(store+bridge-monitor): fail-fast on missing blob + sub-50ms histo…
Flotapponnier Jul 13, 2026
e1dc0ee
fix: 3 machine-readable surface bugs (citable unit scaling, stat filt…
Flotapponnier Jul 13, 2026
47f0f6c
feat: /api/compare/{a}/{b} + openapi.json coverage (Wave 1 P0/P1) (#1…
Flotapponnier Jul 13, 2026
bae07d0
feat: Wave 1 P2 batch — cite MIME, sparkline SVG, Dataset PropertyVal…
Flotapponnier Jul 13, 2026
6b57a7f
bridge-monitor: Mobula EIP-712 signature-confirm flow (fixes stuck de…
Flotapponnier Jul 13, 2026
ac908f1
robinhood chain vague 1: weekend drift (079) + arb latency (080) + su…
Jul 14, 2026
d8eda8d
Merge pull request #1161 from ChainBench/feat/robinhood-vague1
Flotapponnier Jul 14, 2026
04c12af
subsidy is a chain KPI, not a bench: kill standalone spec, add 3 card…
Jul 14, 2026
47c7e79
Merge pull request #1163 from ChainBench/fix/subsidy-not-a-bench
Flotapponnier Jul 14, 2026
72311c9
pm-api-latency: add Predexon (bench 6th provider), fresh key deployed…
Jul 14, 2026
d3f709e
Merge pull request #1166 from ChainBench/feat/predexon-pm-provider
Flotapponnier Jul 14, 2026
604a64b
usdy: 3-retry on Orca RPC to fix 40% success rate (#1168)
Flotapponnier Jul 14, 2026
a0cf8f4
bench vague 2: ship 081-085 (ws latency, oracle freshness, rpc reliab…
Flotapponnier Jul 14, 2026
aa68026
hyperliquid frontend page: add ProviderLogo in the hero next to the name
Jul 14, 2026
0cd090b
Merge pull request #1171 from ChainBench/fix/hyperliquid-frontend-logo
Flotapponnier Jul 14, 2026
349b786
hl frontends: add slash, topdog, markets-mobile logos + registry entr…
Jul 14, 2026
6269bdf
Merge pull request #1173 from ChainBench/chore/hl-frontend-logos-3
Flotapponnier Jul 14, 2026
7f54aa5
idx-latency: swap Alchemy for Mobula in the cohort (paid-plan key, be…
Flotapponnier Jul 14, 2026
a7a0206
fix(bench): sample-size PromQL + leader reliability floor (#1175)
Flotapponnier Jul 15, 2026
d73812e
fix(registry): remove duplicate topdog entry (#1177)
Flotapponnier Jul 15, 2026
fba5e8e
vague2 QA: unit sec for true-seconds benches (fixes 0.0s heros), soft…
Flotapponnier Jul 15, 2026
5f699b0
add bench 086 polkadot-rpc: first Substrate chain in the RPC cluster …
Flotapponnier Jul 15, 2026
5280a4c
product pages: 9 block-builder registry entries + verified logos, ora…
Flotapponnier Jul 15, 2026
5fff7bf
085: add bobthebuilder provider row (real share, was metrics-only) (#…
Flotapponnier Jul 15, 2026
e809f1d
polkadot-rpc bench 086 + /chains/polkadot + Parity product (#1184)
Flotapponnier Jul 15, 2026
99e7c49
fix: dedup onfinality key in logo-manifest (already declared line 49)…
Flotapponnier Jul 15, 2026
5e3ac15
store: last-known-good snapshot fallback (no more awaiting after firs…
Flotapponnier Jul 15, 2026
c65d1c7
chain-kpis: add polkadot to registry (DOT native, stables via Asset H…
Flotapponnier Jul 16, 2026
1e62b2e
live-feed status: Feed down pill + banner on aggregator-head-lag (#1193)
Flotapponnier Jul 16, 2026
d332a3e
series gaps: null the chart line when a feed goes silent (unless chan…
Flotapponnier Jul 16, 2026
ea73d01
add bench 087 ws-head-latency-base + 088 ws-head-latency-solana (#1196)
Flotapponnier Jul 16, 2026
25a495a
ws-head-latency: multi-region (harness region label + spec region tab…
Flotapponnier Jul 16, 2026
c57a528
ws-head-latency: align region env var with rpc-capabilities (REGION n…
Flotapponnier Jul 16, 2026
361f321
chart: red band overlay for null-bucket downtime windows (#1203)
Flotapponnier Jul 16, 2026
a8f3d71
rename ws-head-latency -> ws-head-latency-ethereum for sibling slug p…
Flotapponnier Jul 16, 2026
d295f71
network-coverage: drop coinstats (free tier credits exhausted) (#1206)
Flotapponnier Jul 16, 2026
eafec54
Revert "network-coverage: drop coinstats (free tier credits exhausted…
Flotapponnier Jul 16, 2026
7dea9b2
downtime bands: provider-colored tint + name/silent label + edge mark…
Flotapponnier Jul 16, 2026
60748a5
downtime bands: pill labels + vertical stacking on overlap (#1211)
Flotapponnier Jul 16, 2026
8e2f1ab
tsp-arb-latency: lower trigger 50 -> 25 bps + credit sub-poll closure…
Flotapponnier Jul 16, 2026
3f9308f
downtime pill: drop the leading dot indicator, center the label (#1213)
Flotapponnier Jul 16, 2026
726945e
downtime pill: 'DATA MISSING' wording + skip leading gaps (#1215)
Flotapponnier Jul 16, 2026
509fa32
drop bench 084 indexer-latency (harness pruned, spec deleted) (#1218)
Flotapponnier Jul 16, 2026
3ed6c2d
video/render: strict Zod body schema before upstream forward (#1216)
Flotapponnier Jul 16, 2026
b7ca6eb
mcp: allowlist perp_funding_*, perp_venue_*, perp_execution_* prefixe…
Flotapponnier Jul 16, 2026
b46aa74
aggregator-head-lag: drop 'unless changes==0' from series queries (#1…
Flotapponnier Jul 16, 2026
a29e354
seo: 200 placeholders + sitemap threshold buffer (#1222)
Flotapponnier Jul 16, 2026
a18a8dc
aggregator-head-lag: restore outage detection with backfill-safe guar…
Flotapponnier Jul 16, 2026
04ba908
ws-head-latency: sub-ms histogram floor + keyed slots for base/solana…
Flotapponnier Jul 16, 2026
72bbd16
ship: ungate bench 085 evm-block-builders on prod (#1227)
Flotapponnier Jul 16, 2026
540c4b7
loader: propagate 24h series null-runs to 7d/30d (#1229)
Flotapponnier Jul 16, 2026
e176f0f
propagateNullsToCoarser: use absolute time-ago instead of window frac…
Flotapponnier Jul 16, 2026
83aa310
tsp-arb-latency: drop 5 illiquid tickers (TSLA GOOGL AMZN MSFT SPY) (…
Flotapponnier Jul 16, 2026
0d6e84b
perp-fees harness: fix Paradex depth-skip, gains SOL slot, dYdX walk …
Flotapponnier Jul 16, 2026
d2efd22
downtime bands: opt-in via live_activity, skip on other benches (#1235)
Flotapponnier Jul 16, 2026
ff4dd28
batch 2: MEV chips + rpc copy + Aster/edgeX + Cardano/Sui/Cosmos/Avax…
Flotapponnier Jul 16, 2026
981926a
rpc-capabilities: add 4 keyless providers (ThirdWeb Blast Gateway.fm …
Flotapponnier Jul 16, 2026
1c6cc32
ws-head-latency: add Onfinality Ethereum to keyless cohort (#1241)
Flotapponnier Jul 16, 2026
868108a
drop oracle-freshness (082) spec + sync REMOVED with main state (#1245)
Flotapponnier Jul 16, 2026
34bdddf
SEO/E-E-A-T pack: /team page, Person schema, 23 positioning, 8 expert…
Flotapponnier Jul 16, 2026
26914c3
alternatives: render positioning + clean paragraph line-wrap (#1250)
Flotapponnier Jul 16, 2026
2cf4487
hotfix: strip glued expert_take_reviewed from status line (#1251)
Flotapponnier Jul 16, 2026
e023524
hotfix: strip glued status line in 8 answer YAMLs (#1252)
Flotapponnier Jul 16, 2026
159fbec
answers: drop visible byline on expert_take blocks (#1253)
Flotapponnier Jul 16, 2026
b5c67e1
drop bench 080 tokenized-stock-arb-latency (Rob Chain pools too illiq…
Flotapponnier Jul 16, 2026
68453ee
jsonld: add 'name' to TechArticle nodes for Google Rich Results valid…
Flotapponnier Jul 17, 2026
b0ce3ef
share-card: propagate region/kind/venue filters + compose dynamic tit…
Flotapponnier Jul 17, 2026
d7f0fcb
Revert "share-card: propagate region/kind/venue filters + compose dyn…
Flotapponnier Jul 17, 2026
7124c27
Revert "Revert "share-card: propagate region/kind/venue filters + com…
Flotapponnier Jul 17, 2026
1d39d71
aggregator-head-lag: peer-activity clause (on/chain,region) fixes poo…
Flotapponnier Jul 17, 2026
f1ab0d1
share-card: filter negative p50 in sortByP50 (fixes HTTP 500 on RPC b…
Flotapponnier Jul 17, 2026
d0dea4b
share-modal: explicit dimension pickers (chain / region / kind / venu…
Flotapponnier Jul 17, 2026
15bc496
aggregator-head-lag: ws_connected guard filters out harness-reconnect…
Flotapponnier Jul 17, 2026
4b665ac
hotfix(share-card): revert region/kind/venue passthrough + title over…
Flotapponnier Jul 17, 2026
e9c1dda
aggregator-head-lag: strip ws_connected clause from geckoterminal (RE…
Flotapponnier Jul 17, 2026
a2694f0
share-card: fix HTTP 500 on RPC benches (Satori AVIF/WebP + CSS var c…
Flotapponnier Jul 17, 2026
8a59728
TimeSeriesChart: forward chain prop to /api/series so chain tab switc…
Flotapponnier Jul 17, 2026
5ab4058
share-card: scale title font by length (fix layout overflow on long t…
Flotapponnier Jul 17, 2026
0359c29
share-card: flexShrink:0 on title+subtitle to stop Satori collapsing …
Flotapponnier Jul 17, 2026
9647d39
share-card: cap leaderboard top 10 (fix overflow on wide cohorts) (#1…
Flotapponnier Jul 17, 2026
116687b
share-card: cap leaderboard 8 rows (10 still overflows footer) (#1278)
Flotapponnier Jul 17, 2026
34a449e
TimeSeriesChart: remove DATA MISSING pill labels, keep tinted band on…
Flotapponnier Jul 17, 2026
ac783e0
share-card: cap leaderboard 6 rows (8 still overflows with 2-line tit…
Flotapponnier Jul 17, 2026
2ff2892
share-card: cap snapshot to top 8 series (legend overflow on wide coh…
Flotapponnier Jul 17, 2026
46b3672
share-card: snapshot cap drops to 6 when title wraps (rpc-capabilitie…
Flotapponnier Jul 17, 2026
dec41a1
share-card: shrink snapshot chart 280→220 (2-row legend overlapped fo…
Flotapponnier Jul 17, 2026
f07ec4f
share-card: propagate region/kind/venue filters through modal → route…
Flotapponnier Jul 17, 2026
d663378
share-card: label region/kind/venue pills by their kind (not CHAIN) (…
Flotapponnier Jul 17, 2026
3da1621
TimeSeriesChart: drop downtime bands entirely; gaps in the line speak…
Flotapponnier Jul 18, 2026
88ce85f
seo: fix GSC Dataset warnings (embed creator/publisher + distribution…
Flotapponnier Jul 18, 2026
40e6dc7
chore: audit-cleanup safe batch — drop orphan components + untrack .c…
Flotapponnier Jul 18, 2026
849b6d4
seo: keep inline creator on bench Dataset (GSC flags @id-only refs as…
Flotapponnier Jul 18, 2026
b3beda1
chore: prune 6 dead exports in src/lib (#1296)
Flotapponnier Jul 18, 2026
1159c04
consolidate solana-official + solana-labs into 'solana' provider (#1299)
Flotapponnier Jul 18, 2026
40735d4
Phase 1 aggregate broadcast (VPS-served): worker writes /state/aggreg…
Flotapponnier Jul 18, 2026
efb51e8
Phase 3 worker: extend publish-aggregate with per-bench + per-variant…
Flotapponnier Jul 19, 2026
d38f02b
drop mobula from all PM benches + PM hub (they stopped serving 2026-0…
Flotapponnier Jul 19, 2026
38f9475
drop codex-vs-mobula compare pair (only PM data-freshness had both, m…
Flotapponnier Jul 19, 2026
5fe1000
feat(rwa-yield-accuracy): bench 089 scaffold + USDY rebase probe (#1324)
Flotapponnier Jul 23, 2026
383e9d0
feat(rwa-yield-accuracy): Sprint 2 — BUIDL/USTB dividend + BENJI/OUSG…
Flotapponnier Jul 23, 2026
292a761
feat(rwa-yield-accuracy): Sprint 3 — restrict V1 to USDY, mark bench …
Flotapponnier Jul 23, 2026
0b43f6c
cherry-pick: token-trade-coverage.yml (bench 090) to dev — worker bui…
Flotapponnier Jul 23, 2026
126589f
add osmosis-rpc bench (091) + register Osmosis chain — first Cosmos S…
Flotapponnier Jul 23, 2026
2887f7d
hotfix(osmosis-rpc): split methodology[7] entry (>500 chars Zod cap) …
Flotapponnier Jul 23, 2026
944749f
add benches 092 hyperliquid-rpc + 093 tron-rpc (#1341)
Flotapponnier Jul 24, 2026
19efbf1
add stakely SVG logo (bench 092 hyperliquid-rpc provider) (#1344)
Flotapponnier Jul 24, 2026
094c65b
add hypurrscan + purroofgroup logos (bench 092 providers) (#1346)
Flotapponnier Jul 24, 2026
0e3330a
add 7 RPC benches: cosmos-hub (094) + injective (095) + neutron (096)…
Flotapponnier Jul 24, 2026
3c422eb
add polkachu + lavenderfive + imperator SVG logos (Cosmos RPC provide…
Flotapponnier Jul 24, 2026
0e4c1e6
add thirdweb logo + rename World Chain (Alchemy) -> World Chain (#1352)
Flotapponnier Jul 24, 2026
95945bd
hotfix(products): add thirdweb registry entry (fixes /products/thirdw…
Flotapponnier Jul 24, 2026
df7b412
rwa-yield-accuracy Sprint 4: activate USTB + OUSG, flip bench live
Jul 24, 2026
4616fb8
hotfix(products): relax tripwire for newly-added providers (unblock p…
Flotapponnier Jul 24, 2026
ec1cfd1
Merge pull request #1359 from ChainBench/feat/rwa-yield-ustb-ousg-live
Flotapponnier Jul 24, 2026
5eab4e7
hotfix: drop thirdweb from 4 new benches to unblock prod deploys (#1361)
Flotapponnier Jul 24, 2026
438392f
hotfix: bump rpc-hub-cohort cache v4->v5 (bust sticky-null on chain R…
Flotapponnier Jul 24, 2026
0e87911
rwa-yield-accuracy: add SyrupUSDC (Maple, ERC-4626) to cohort
Jul 24, 2026
dfea874
Merge pull request #1366 from ChainBench/feat/rwa-yield-add-syrupusdc
Flotapponnier Jul 24, 2026
5c4e883
rwa-yield: fix USDY probe via OndoOracle getAssetPrice
Jul 24, 2026
001719e
rename Ink providers to Gelato / QuickNode + add Gelato SVG logo (#1368)
Flotapponnier Jul 24, 2026
6395b34
Merge pull request #1369 from ChainBench/feat/rwa-yield-usdy-oracle-fix
Flotapponnier Jul 24, 2026
6439c40
rwa-yield: add logos + registry entries for usdy/ousg/ustb/syrup-usdc
Jul 24, 2026
ec32c20
Merge pull request #1372 from ChainBench/feat/rwa-yield-logos-registr…
Flotapponnier Jul 24, 2026
b8ebfa9
add bench 101 wormhole-vaa-latency (Wormhole VAA finalization by sour…
Flotapponnier Jul 24, 2026
ad33c4a
token-trade-coverage: flip status draft -> live
Jul 24, 2026
0211f59
Merge pull request #1378 from ChainBench/feat/ttc-live-v3
Flotapponnier Jul 24, 2026
d8e3ac3
sync: main → dev (resolve 16 conflicts)
Jul 24, 2026
6285878
chart index: drop showDowntime prop (removed in dev's chart.tsx via #…
Jul 24, 2026
3b1d306
Merge pull request #1379 from ChainBench/sync/main-to-dev-94a61b3
Flotapponnier Jul 24, 2026
5ea6d5f
hotfix(wormhole-vaa-latency): use indexedAt instead of updatedAt (fix…
Flotapponnier Jul 24, 2026
1dc48b4
sync: main → dev (auto-merge 088c98c)
Jul 24, 2026
96bf458
sync: main → dev (auto-merge 0514f77)
Jul 24, 2026
f46ff2c
drop token-trade-coverage bench 090
Jul 24, 2026
d186273
Merge pull request #1385 from ChainBench/feat/drop-token-trade-coverage
Flotapponnier Jul 24, 2026
739fe3c
chore: restore solana-tx-landing-latency (027) on dev after auto-sync…
Flotapponnier Jul 24, 2026
bb7d3c1
sync: main → dev (auto-merge 73819ad)
Jul 24, 2026
917b61b
hotfix(wormhole-vaa-latency): emit milliseconds not seconds (#1388)
Flotapponnier Jul 24, 2026
d9c517b
sync: main → dev (auto-merge ce3c4b7)
Jul 24, 2026
6db2e4e
sync: main → dev (auto-merge b2757fd)
Jul 24, 2026
387672f
sync: main → dev (auto-merge 0566b1a)
Jul 24, 2026
90e19f8
middleware: 410 Gone for removed products + backfill token-trade-cove…
Jul 24, 2026
be9b369
Merge pull request #1393 from ChainBench/feat/removed-products-410
Flotapponnier Jul 24, 2026
88a1fbc
sync: main → dev (auto-merge d9be7a4)
Jul 24, 2026
0ad15e0
sync: main → dev (auto-merge 648199d)
Jul 24, 2026
3a52e1c
jsonld: add name to FAQPage + Answer (fixes GSC 'Item: N/A' on FAQ no…
Jul 24, 2026
b6286f1
Merge pull request #1396 from ChainBench/fix/jsonld-faq-name-fields
Flotapponnier Jul 24, 2026
d1a1cf3
sync: main → dev (auto-merge c215d6f)
Jul 24, 2026
a7c95c6
sync: main → dev (auto-merge 89f7229)
Jul 24, 2026
d524dc9
hotfix(metadata-coverage): switch Jupiter probe to lite-api.jup.ag/to…
Flotapponnier Jul 24, 2026
873b259
sync: main → dev (auto-merge 0997e47)
Jul 24, 2026
43a5c10
add bench 102 token-quote-coverage (draft): DEX aggregator long-tail …
Jul 24, 2026
a43812c
Merge pull request #1401 from ChainBench/feat/bench-102-token-quote-c…
Flotapponnier Jul 24, 2026
ff03340
fix bench 102: venue dimension (was launchpad, not in schema), trim d…
Jul 24, 2026
dba2a66
feat(providers): stub profiles for gelato/thirdweb/wormhole (fix 404 …
Flotapponnier Jul 24, 2026
3de672c
bench 102: add ledger_columns (coverage rate + tokens probed), fix p9…
Jul 24, 2026
8b27fd8
sync: main → dev (auto-merge 762acc5)
Jul 24, 2026
9f75cbd
bench 102: add per_chain_explainer (SEO geo) + sharper methodology
Jul 24, 2026
d34045f
harness: token-quote-coverage (bench 102) — 6 providers, Dexscreener …
Jul 24, 2026
2e437a9
drop 1inch: not needed, no key on VPS
Jul 24, 2026
8009703
fix wormhole bench: extend histogram buckets to 30min for Eth/Arb fin…
Flotapponnier Jul 24, 2026
9e48e13
sync: main → dev (auto-merge b1f9177)
Jul 24, 2026
ff0d339
fix jupiter endpoint (lite-api), mobula EVM-only (/api/2/swap/quoting)
Jul 24, 2026
6dcc315
sync: main → dev (auto-merge 6c3cf18)
Jul 24, 2026
cc779ef
fix(tqc): drop OKX DEX + dead 1inch code (no API key on VPS) (#1407)
Flotapponnier Jul 24, 2026
ffd2b03
fix: template tokens return empty string when no data (#1408)
Flotapponnier Jul 25, 2026
f5d8104
feat(tqc): add Robinhood chain + multi-source discovery (Virtuals/Gec…
Flotapponnier Jul 25, 2026
1fc2b1a
fix(tqc): batch Dexscreener EnrichWithVenue at 30 tokens (#1410)
Flotapponnier Jul 25, 2026
6e07bdd
fix(tqc): pre-assign venue for Virtuals tokens (#1411)
Flotapponnier Jul 25, 2026
8467b66
fix(odos): semaphore to cap concurrent requests and stop 429s (#1412)
Flotapponnier Jul 25, 2026
2142a82
fix agg head-lag: dead WETH/USDbC pool → active Uniswap V3 WETH/USDC …
Flotapponnier Jul 25, 2026
50b19e5
sync: main → dev (auto-merge 3ee7a61)
Jul 25, 2026
3f0f01b
feat(tqc): add ParaSwap (Base+BSC), OpenOcean (Base+BSC+Solana), Rayd…
Flotapponnier Jul 25, 2026
f8fb803
fix(tqc): drop Raydium+OpenOcean (CF blocked), keep ParaSwap
Jul 25, 2026
b31ea11
remove raydium+openocean: CF blocked from VPS (#1416)
Flotapponnier Jul 25, 2026
f2fbcb9
ship bench 102 token-quote-coverage: status draft → live (#1417)
Flotapponnier Jul 25, 2026
33ef4e5
sync: main → dev (auto-merge 0d44a98)
Jul 25, 2026
264c7e9
fix(tqc): remove em dashes from YAML (Zod rejects them) (#1419)
Flotapponnier Jul 25, 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
6 changes: 3 additions & 3 deletions benchmarks/token-quote-coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ per_chain_explainer:
- slug: solana
h2: "Best DEX aggregator for Solana launchpad tokens"
body: |
{{best_name:chain:solana}} currently leads on Solana at {{best_p50:chain:solana}} coverage (24h) across Pump.fun, Moonshot, and Meteora DBC. All three Solana launchpads graduate tokens to on-chain DEX pools: Pump.fun and Moonshot route to Raydium CPMM, while Meteora DBC graduates to DLMM concentrated liquidity pools. The pool-type split is the key differentiatoraggregators that hardcode Raydium AMM routing miss Meteora DBC graduates entirely. Jupiter's strictMode=false mode routes any token with a discoverable on-chain pool, giving it structural advantage on Pump.fun and Moonshot; DLMM coverage depends on whether the aggregator explicitly registers Meteora pool factories. The probe fires a 1 USDC to token quote at each provider once per 30-minute batch, using Dexscreener token-boosts as the discovery feed to avoid self-selection bias.
{{best_name:chain:solana}} currently leads on Solana at {{best_p50:chain:solana}} coverage (24h) across Pump.fun, Moonshot, and Meteora DBC. All three Solana launchpads graduate tokens to on-chain DEX pools: Pump.fun and Moonshot route to Raydium CPMM, while Meteora DBC graduates to DLMM concentrated liquidity pools. The pool-type split is the key differentiator,aggregators that hardcode Raydium AMM routing miss Meteora DBC graduates entirely. Jupiter's strictMode=false mode routes any token with a discoverable on-chain pool, giving it structural advantage on Pump.fun and Moonshot; DLMM coverage depends on whether the aggregator explicitly registers Meteora pool factories. The probe fires a 1 USDC to token quote at each provider once per 30-minute batch, using Dexscreener token-boosts as the discovery feed to avoid self-selection bias.
- slug: base
h2: "Best DEX aggregator for Base launchpad token coverage"
body: |
Expand All @@ -23,7 +23,7 @@ per_chain_explainer:
- slug: robinhood
h2: "DEX aggregator coverage on Robinhood Chain"
body: |
Robinhood Chain (chainId 4663) is Robinhood's EVM-compatible Layer 2, launched in 2025. Tokens on Robinhood launch and graduate via the Pons launchpad to Uniswap V3-based pools, with USDG as the primary stablecoin. The bench probes all EVM aggregators (KyberSwap, Mobula) against Pons-graduated tokens. As of launch, no major third-party aggregator has integrated Robinhood chain routing, so coverage is expected to be near 0% across all providersthis gap is the data point. The bench will capture the first aggregator to integrate Robinhood and reflect coverage improvements in real time.
Robinhood Chain (chainId 4663) is Robinhood's EVM-compatible Layer 2, launched in 2025. Tokens on Robinhood launch and graduate via the Pons launchpad to Uniswap V3-based pools, with USDG as the primary stablecoin. The bench probes all EVM aggregators (KyberSwap, Mobula) against Pons-graduated tokens. As of launch, no major third-party aggregator has integrated Robinhood chain routing, so coverage is expected to be near 0% across all providers,this gap is the data point. The bench will capture the first aggregator to integrate Robinhood and reflect coverage improvements in real time.

category: Aggregators
status: live
Expand Down Expand Up @@ -76,7 +76,7 @@ methodology:
- "Quote probe: 1 USDC → token, fired in parallel to all in-scope providers with a 10s timeout. Input token is always USDC (native USDC on Solana and Base, bridged USDC.e on BNB). A probe is a coverage hit when the HTTP response is 2xx and the parsed outAmount field is a non-zero positive integer or decimal. All other outcomes (4xx, 5xx, no-route JSON, empty outAmount, timeout) record as misses."
- "Aggregator endpoints: Mobula /api/2/swap/quoting (Bearer auth, EVM), Jupiter lite-api.jup.ag/swap/v1/quote (Solana), KyberSwap aggregator-api.kyberswap.com/{chain}/api/v1/routes (EVM), ParaSwap apiv5.paraswap.io/prices (EVM). Each adapter normalises chain identifiers, input/output decimals, and error response shapes before recording outcome."
- "Jupiter strictMode=false: queried without the curated-token filter so Jupiter will attempt routing for any token with a discoverable on-chain pool, matching how most wallets call the API. strictMode=true would trivially exclude new tokens and defeat the purpose of the benchmark."
- "Chain-scope enforcement: Jupiter probes Solana-only. KyberSwap, Mobula, and ParaSwap probe EVM chains. KyberSwap and Mobula also cover Robinhood chain; ParaSwap covers Base and BNB only. Robinhood chain is currently at 0% coverage across all providersan accurate reflection that no major aggregator has integrated Robinhood yet. Providers are never penalised for chains they structurally do not support: Solana cells for EVM-only providers are null, not zero."
- "Chain-scope enforcement: Jupiter probes Solana-only. KyberSwap, Mobula, and ParaSwap probe EVM chains. KyberSwap and Mobula also cover Robinhood chain; ParaSwap covers Base and BNB only. Robinhood chain is currently at 0% coverage across all providers,an accurate reflection that no major aggregator has integrated Robinhood yet. Providers are never penalised for chains they structurally do not support: Solana cells for EVM-only providers are null, not zero."
- "Coverage metric: Prometheus counters token_quote_coverage_success_total and token_quote_coverage_attempts_total carry labels {provider, venue, chain}. The bench queries compute increase(success[24h]) / increase(attempts[24h]) * 100 live at read time. No pre-aggregation; the ratio reflects exactly the tokens probed in the rolling window."
- "Probe cadence and deduplication: each batch cycles through the current Dexscreener token-boosts feed. Tokens are not deduplicated across batches; the same token may appear in multiple 30-minute windows if it remains boosted. The score therefore reflects freshness of the aggregator's current routing graph, not historical coverage depth."
- "Single origin: all probes originate from the eu-west OCB VPS. Regional latency is not a factor in this bench (the outcome is binary hit/miss, not latency). No region dimension in v1."
Expand Down
Loading