diff --git a/benchmarks/privacy-round-trip.yml b/benchmarks/privacy-round-trip.yml index 85944b1eb..88e12cb9f 100644 --- a/benchmarks/privacy-round-trip.yml +++ b/benchmarks/privacy-round-trip.yml @@ -1,7 +1,7 @@ slug: privacy-round-trip number: "306" title: Privacy round trip cost, what going into Zcash and back loses -seo_title: "Privacy round trip cost: Zcash and Dash in and out" +seo_title: "Privacy round trip cost: what Zcash in and out loses" seo_description: "{{best_name}} loses the least on a round trip into a privacy asset and back, {{best_p50}} at the measured size. {{declared_count}} rails compared." subtitle: "Basis points and minutes lost converting a liquid asset into a privacy asset and back out, on non-custodial rails, at three sizes." category: Bridges @@ -48,6 +48,7 @@ abstract: | methodology: - "The two rails do not start from the same asset, because forcing one on both would mean quoting a pair one of them serves badly. The size tier is the shared axis and each rail sends its own: Maya sends 0.001, 0.01 and 0.1 BTC, NEAR Intents sends 100, 1,000 and 10,000 USDC on Base. The published figure is basis points of round-trip loss, which is unit-free and therefore comparable across both." + - "Rows are rails and the asset is Zcash, because it is the only privacy asset all three rails carry. Maya also quotes Dash and is measured on it, but a Dash row here would be one rail wide and would compare a venue against nothing. The asset comparison lives on the exit cost board." - "The All sizes tab is the median of the tiers measured on the same tick, not a fourth size and not an average: it is the one summary that does not privilege a trade size. Nothing is pooled from fewer than two tiers." - "A tier label is an approximation. The BTC amounts are fixed in BTC rather than re-derived from a price each tick, so the dollar value of Maya's rungs drifts with the BTC price while the tier name does not. The exact amounts are above and in the harness." - "Time is the sum of the two legs' own quoted durations, which is what each rail says the swap will take, not a measured settlement." diff --git a/benchmarks/shielded-payout-coverage.yml b/benchmarks/shielded-payout-coverage.yml index 62a42084e..914acba07 100644 --- a/benchmarks/shielded-payout-coverage.yml +++ b/benchmarks/shielded-payout-coverage.yml @@ -49,6 +49,7 @@ abstract: | to probe more widely. methodology: + - "Zcash is the asset here because it is the only one measured that HAS a shielded address format. Monero is private by default, with no transparent variant to choose between, and Dash offers optional mixing over ordinary addresses rather than a second address type. The question this board asks only exists for Zcash." - "Two dry quotes per rail per source chain per tick, one to a transparent t-address and one to a shielded unified address. Nothing is ever signed or sent; the harness holds no key and no wallet." - "The transparent quote is the control and runs first. A shielded refusal is recorded only when the control was accepted on the same source chain, so a rail that is down or out of liquidity never reads as refusing privacy." - "The shielded address is a mainnet unified address from Zcash's own published test vectors, bech32m verified at startup, and the transparent one is an address the rail itself handed over. Shielded addresses never appear on chain by design, so a published test vector is the only sound source for one." diff --git a/public/logos/thorchain.png b/public/logos/thorchain.png new file mode 100644 index 000000000..7d177ca08 Binary files /dev/null and b/public/logos/thorchain.png differ diff --git a/src/data/provider-registry.ts b/src/data/provider-registry.ts index e92ee08ae..faa41d6a9 100644 --- a/src/data/provider-registry.ts +++ b/src/data/provider-registry.ts @@ -111,6 +111,12 @@ export type ProviderRegistryEntry = { }; export const PROVIDER_REGISTRY: Record = { + thorchain: { + url: "https://thorchain.org", + description: + "Cross-chain liquidity protocol settling native swaps between Bitcoin, Ethereum, Zcash and others without wrapped assets. Streams large swaps into hundreds of sub-swaps to cut slippage, trading time for price.", + }, + xmr: { url: "https://www.getmonero.org", description: diff --git a/src/lib/logo-manifest.ts b/src/lib/logo-manifest.ts index 6622ac592..f87202aa5 100644 --- a/src/lib/logo-manifest.ts +++ b/src/lib/logo-manifest.ts @@ -548,6 +548,7 @@ const RAW: Record = { // shares the mark. A separate logo would invent a project that does not // exist; the row name carries the distinction the board compares. "part-blind": "/logos/part.png", + thorchain: "/logos/thorchain.png", maya: "/logos/maya.png", zec: "/logos/zcash.svg", dash: "/logos/dash.png", diff --git a/src/lib/providers.ts b/src/lib/providers.ts index 43e590e9c..c0438f7ac 100644 --- a/src/lib/providers.ts +++ b/src/lib/providers.ts @@ -893,7 +893,9 @@ const buildProvidersCached = unstable_cache( // sat in until #3273. // v23: six coin marks and six registry entries for bench 308, whose rows // were all rendering as initials. - ["providers-v23"], + // v24: thorchain gains a mark and a registry entry; it was the last row on + // the privacy boards still rendering as initials. + ["providers-v24"], // 900 s: the provider index feeds products / compare / answers, whose // numbers move slowly, and this revalidate is also the effective ISR // period of those ~500 pages (Next takes the min across a route's caches). diff --git a/src/lib/spec-provider-set.test.ts b/src/lib/spec-provider-set.test.ts index fadf35570..c0fb0f75d 100644 --- a/src/lib/spec-provider-set.test.ts +++ b/src/lib/spec-provider-set.test.ts @@ -80,6 +80,6 @@ describe("the provider set behind the cache keys", () => { "Then set EXPECTED to the hash in this failure, and add the provider", `to PRODUCT_NAMES if it needs a display name. Providers now: ${count}.`, ].join("\n"), - ).toBe("ac884c87096fd8d6"); + ).toBe("e1f812a907d115f2"); }); });