Skip to content

a cross-chain relayer was being counted as a DEX aggregator - #2823

Merged
Flotapponnier merged 1 commit into
devfrom
fix/quote-coverage-cohort-naming
Oct 6, 2026
Merged

Flotapponnier merged 1 commit into
devfrom
fix/quote-coverage-cohort-naming

Conversation

@Flotapponnier

Copy link
Copy Markdown
Collaborator

The Robinhood explainer read:

Four aggregators cover this chain: Mobula, KyberSwap, ParaSwap and Relay.

Relay is not an aggregator. It is a cross-chain relayer, and the rest of the site already says so — it carries type: relay on bridge-fee and bridge-realized-cost. The same actor had two natures depending on which page you opened.

What is not changed, and why

The probe is sound. All five are asked the same question (a 1 USDC quote on a token that graduated in the last 24 hours), and Mobula answers it on /api/2/swap/quoting — a swap quoting endpoint, not a price one. The spec schema's own taxonomy names "Mobula's aggregator side" (spec-schema.ts:126).

So nobody is removed from the cohort: nobody is answering a different question. Removing a member whose measurement is valid would have been the wrong fix for a naming problem.

What changes

  • Every provider carries a type (aggregator ×4, relay ×1), so the page states what each one is instead of flattening a relayer into the aggregator cohort. The field already exists in the schema and bridge-fee already uses it.
  • The Robinhood sentence names the composition instead of calling all four aggregators.
  • A methodology line gives the composition outright, and says why the relayer is scored here at all.

Why it matters more than usual here

The page is read as a ranking of DEX aggregators, and OpenChainBench is built by one of the five. A cohort that overclaims what its members are costs more on this page than it would on another: a reader who spots it will not conclude "category error".

Verified

pnpm validate 235 specs, pnpm typecheck, pnpm test 430 pass / 0 fail. One file, 7 insertions, 1 deletion.

The Robinhood explainer read "Four aggregators cover this chain: Mobula,
KyberSwap, ParaSwap and Relay." Relay is not an aggregator. It is a
cross-chain relayer, and the rest of the site says so: it carries
type: relay on bridge-fee and bridge-realized-cost. The same actor had
two natures depending on the page.

What the probe does is sound and is not changed. All five are asked the
same question, a 1 USDC quote on a token that graduated hours ago, and
Mobula answers it on /api/2/swap/quoting, a swap quoting endpoint rather
than a price one. The spec schema's own taxonomy names Mobula's
aggregator side. Nobody is removed from the cohort, because nobody is
answering a different question.

What was wrong is the naming around the measurement. Every provider now
carries a type, so the page states what each one is rather than
flattening a relayer into the aggregator cohort, and a methodology line
gives the composition outright: four aggregators and one relayer, with
the reason the relayer is scored here at all.

Found because the page is read as a ranking of DEX aggregators, and
OpenChainBench is built by one of the five. A cohort that overclaims what
its members are costs more here than it would elsewhere.
@Flotapponnier
Flotapponnier merged commit 9232bfb into dev Oct 6, 2026
2 checks passed
@Flotapponnier
Flotapponnier deleted the fix/quote-coverage-cohort-naming branch October 6, 2026 11:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant