Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
3 changes: 2 additions & 1 deletion benchmarks/privacy-round-trip.yml
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -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."
Expand Down
1 change: 1 addition & 0 deletions benchmarks/shielded-payout-coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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."
Expand Down
Binary file added public/logos/thorchain.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 6 additions & 0 deletions src/data/provider-registry.ts
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,12 @@ export type ProviderRegistryEntry = {
};

export const PROVIDER_REGISTRY: Record<string, ProviderRegistryEntry> = {
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:
Expand Down
1 change: 1 addition & 0 deletions src/lib/logo-manifest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -548,6 +548,7 @@ const RAW: Record<string, string> = {
// 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",
Expand Down
4 changes: 3 additions & 1 deletion src/lib/providers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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).
Expand Down
2 changes: 1 addition & 1 deletion src/lib/spec-provider-set.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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");
});
});
Loading