Skip to content

release: 0x off benches 304 and 033, its key is dead - #3276

Merged
Flotapponnier merged 1 commit into
mainfrom
dev
Oct 24, 2026
Merged

Flotapponnier merged 1 commit into
mainfrom
dev

Conversation

@Flotapponnier

@Flotapponnier Flotapponnier commented Oct 24, 2026 •

Copy link
Copy Markdown
Collaborator

One change: 0x comes off benches 304 and 033 (#3275).

Its API answers 403 "You cannot consume this service" — word for word the error zerox.env records as the reason the previous key was replaced on 19 October. The replacement is dead the same way, and each bench turned that into a claim about 0x:

  • 304 declared ten providers and published nine. A declared row that never appears reads as "this aggregator does not quote these pairs".
  • 033 published the row — unresponsive: true, successRate 0, p50 0 on ethereum, base, arbitrum and bsc. The page printed 0x as the unresponsive provider in a latency table. The thing that is unresponsive is our key.

The harness adapter stays, so renewing the key brings the provider back with one spec block.

What ships with it

Five cache keys, because a provider set is not only a list: bench-unfiltered v100, all-benchmarks v93, bench-filters v41 (both specs declare a chain dimension), providers v20, and the provider-set guard hash.

A live URL retires. 0x is measured in no bench now, so /products/0x — a 200 listed in the sitemap — goes into REMOVED_PRODUCT_SLUGS for the 410 and the sitemap exclusion, plus the middleware matcher, whose own test caught the missing entry. This is the same guard the Blast rollback argued for: the worker's blob keeps a provider in its product list for a sweep or two after the spec changes, so without it the sitemap advertises a URL that has started 404ing.

Copy. The gas-unit example on 304 and the keyed-provider count on 033 named 0x and became wrong, not merely stale. And one number was already wrong before this change: the Ethereum tab claimed "7 measured providers" while eleven published; it is now {{count:chain:ethereum}}.

After the deploy

The worker clones dev at build, so the boards keep their old provider set until a rebuild plus roughly 72 minutes of display floor. Two things to watch then: bench 304's Robinhood tab should go from three aggregators to four (ParaSwap, #3272, already on main and waiting on the same rebuild), and 0x should be absent from every tab of both benches rather than present and empty.

Enso is left declared: its key is exhausted the same way (429 credit_quota_exceeded) and it still reads unavailable on 033, but the disclaimer names it explicitly, so the page is not making a silent claim.

Gates on the branch: pnpm validate 253 specs, tsc --noEmit clean, bun test src/ 719 pass.

… 0x for it (#3275)

0x's API answers 403 "You cannot consume this service". That is word for word
the error zerox.env records as the reason the previous key was replaced on
19 October, so the replacement is dead the same way.

The two benches told a reader two different lies about it.

On 304 (quote output) 0x was declared and never published: ten providers on
the board's list, nine in its data. A declared row that never appears reads
as "this aggregator does not quote these pairs".

On 033 (quote latency) it was worse, because the row DID publish:
availability unavailable, unresponsive true, successRate 0, p50 0, on
ethereum, base, arbitrum and bsc. The page printed 0x as the unresponsive
provider in a latency table. The thing that is unresponsive is our
credential.

The harness adapter stays. Nothing is wrong with the code and deleting it
would mean rewriting it when a key arrives; a provider the spec does not
declare never reaches a board. The spec is what makes a claim to a reader.

What the removal drags with it, because a provider set is not only a list:

  bench-unfiltered  v99  -> v100   the set changed
  all-benchmarks    v92  -> v93    lockstep
  bench-filters     v40  -> v41    both specs declare a chain dimension
  providers         v19  -> v20    product pages
  provider-set hash                9ca6a160 -> eecad3db

0x is now measured in no bench, so getProvider returns nothing and
/products/0x 404s. It was a live 200 listed in the sitemap, so it goes in
REMOVED_PRODUCT_SLUGS for the 410 and the sitemap exclusion, and in the
middleware matcher, which is a literal list that its own test pins: that
test is what caught the missing entry. Same shape as the goldrush note
already there, and the reason it matters twice is that the worker's blob
keeps a provider in its product list for a sweep or two after the spec
changes, which is what rolled the Blast deploy back.

/compare/0x-vs-paraswap also stops existing. It is noindex, follow and not
in the sitemap, so there is nothing to retire.

Three pieces of copy named 0x and are now wrong rather than stale:
the gas-unit example on 304 (ParaSwap reports in wei too, so it carries the
example), and the keyed-provider count on 033, which was four and is three.

One number was already wrong before this change and is the same class of
defect: the Ethereum tab said "across the 7 measured providers" while eleven
published. It is now {{count:chain:ethereum}}. bench-template.test.ts says a
hand-typed count made 29 specs contradict themselves on 2026-10-02.

Checked rather than assumed: the lifi bullet claims its tool list includes
"seven providers measured separately here". LI.FI's /v1/tools names exactly
seven of our cohort (kyberswap, bebop, openocean, enso, paraswap, nordstern,
route) and 0x is not among them, so that bullet is correct and untouched.

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
@Flotapponnier
Flotapponnier merged commit 1215c27 into main Oct 24, 2026
7 checks passed
Flotapponnier added a commit that referenced this pull request Oct 24, 2026
release: remove the raw placeholder #3276 put on the Ethereum tab, and close the gate
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