Zcash × Brave WalletPersonal project

Type to search. Use ↑ ↓ and Enter to open a result.

Upstream

Zcash libraries, protocol specifications and servers that Brave Wallet’s source actually depends on, compared with what Brave builds today. Upstream releases are not changes to Brave: a release only matters to users once Brave adopts it and ships a build.

Readiness and server-side switches

Next network upgrade: NU7 (ZIP 259, Draft)

Testnet activation: 4465026 · Mainnet: TBD (To be set on OCT 20)

Brave: its pinned librustzcash fork does not define the final consensus branch ID 0x77190AD9 (NU7 exists only behind an unstable build flag). Fork source

Upstream librustzcash main: defines it. Upstream source

Brave takes the consensus branch ID for signing from the light-client server at runtime (GetLightdInfo), so the practical effect at activation depends on that path as well. Checked .

ZEC swaps and bridges (gate3 backend)

Zcash routing is turned off in the public code

app/api/swap/constants.py @ 173a2408: SWAP_DISABLED_CHAINS includes Chain.ZCASH.

This is the public repository of Brave’s swap backend. The deployed service could differ; deployment timing is not public. It applies to every platform and browser version.

Field-trial studies touching Zcash (brave-variations)

  • ZCashStudy_EnabledWithShieldingOnNewVersions: Every enrolled client (all cohorts alike): enables BraveWalletZCash, zcash_shielded_transactions_enabled=true. Cohorts with weight 0 (no clients assigned by weight): Default. versions 139.1.81.129 – 152.*; WINDOWS, MAC, LINUX, ANDROID; RELEASE, NIGHTLY, BETA. Applies to current builds: Desktop release 1.97.59 (155.1.97.59) no; Android release 1.97.57 (155.1.97.57) no; iOS release 1.96.62 (154.1.96.62) no; Desktop beta 1.98.47 (155.1.98.47) / 1.99.44 (156.1.99.44) no; Android beta 1.98.52 (155.1.98.52) no; iOS beta 1.99.44 (156.1.99.44) no; Desktop nightly 1.100.5 (156.1.100.5) / 1.100.7 (156.1.100.7) no; Android nightly 1.100.5 (156.1.100.5) no; iOS nightly 1.100.7 (156.1.100.7) no.
  • ZCashStudy_DisabledOnOldVersions: Every enrolled client (all cohorts alike): disables BraveWalletZCash. Cohorts with weight 0 (no clients assigned by weight): Default. versions any – 139.1.81.128; WINDOWS, MAC, LINUX, ANDROID; RELEASE, NIGHTLY, BETA. Applies to current builds: Desktop release 1.97.59 (155.1.97.59) no; Android release 1.97.57 (155.1.97.57) no; iOS release 1.96.62 (154.1.96.62) no; Desktop beta 1.98.47 (155.1.98.47) / 1.99.44 (156.1.99.44) no; Android beta 1.98.52 (155.1.98.52) no; iOS beta 1.99.44 (156.1.99.44) no; Desktop nightly 1.100.5 (156.1.100.5) / 1.100.7 (156.1.100.7) no; Android nightly 1.100.5 (156.1.100.5) no; iOS nightly 1.100.7 (156.1.100.7) no.
  • iOSWalletWebUIStudy_ZcashEnabledWithShielding: Every enrolled client (all cohorts alike): enables BraveWalletZCash, zcash_shielded_transactions_enabled=true. Cohorts with weight 0 (no clients assigned by weight): Default. versions 146.1.89.116 – 152.*; IOS; NIGHTLY, BETA. Applies to current builds: Desktop release 1.97.59 (155.1.97.59) no; Android release 1.97.57 (155.1.97.57) no; iOS release 1.96.62 (154.1.96.62) no; Desktop beta 1.98.47 (155.1.98.47) / 1.99.44 (156.1.99.44) no; Android beta 1.98.52 (155.1.98.52) no; iOS beta 1.99.44 (156.1.99.44) no; Desktop nightly 1.100.5 (156.1.100.5) / 1.100.7 (156.1.100.7) no; Android nightly 1.100.5 (156.1.100.5) no; iOS nightly 1.100.7 (156.1.100.7) no.
  • iOSWalletWebUIStudy_ZcashEnabledWithShielding: Every enrolled client (all cohorts alike): enables BraveWalletZCash, zcash_shielded_transactions_enabled=true. Cohorts with weight 0 (no clients assigned by weight): Default. versions 147.1.89.144 – 152.*; IOS; RELEASE. Applies to current builds: Desktop release 1.97.59 (155.1.97.59) no; Android release 1.97.57 (155.1.97.57) no; iOS release 1.96.62 (154.1.96.62) no; Desktop beta 1.98.47 (155.1.98.47) / 1.99.44 (156.1.99.44) no; Android beta 1.98.52 (155.1.98.52) no; iOS beta 1.99.44 (156.1.99.44) no; Desktop nightly 1.100.5 (156.1.100.5) / 1.100.7 (156.1.100.7) no; Android nightly 1.100.5 (156.1.100.5) no; iOS nightly 1.100.7 (156.1.100.7) no.

Studies override compiled-in defaults at runtime when their filters match a build. Read at 86c21c7c.

Rust crates: Brave’s resolved versions vs upstream

Brave’s versions come from third_party/rust/chromium_crates_io/Cargo.lock at each channel build’s brave-core tag and at master. When Brave’s Zcash crate links several versions of a crate, each is listed, highest first; “possible” marks a version the dependency graph could neither confirm nor rule out. “Path” means the crate is built from Brave’s own fork of librustzcash rather than crates.io, so version labels inside the fork are nominal.

CrateImpactBrave masterBrave v1.98.47 (desktop/beta)Brave v1.96.62 (ios/release)Brave v1.99.44 (ios/beta)Brave v1.98.52 (android/beta)Brave v1.100.5 (desktop/nightly, android/nightly)Brave v1.99.45 (github/beta)Brave v1.97.59 (desktop/release)Brave v1.100.7 (ios/nightly)Brave v1.98.58 (github/release)Brave v1.100.9 (github/nightly)Brave v1.97.57 (android/release)Upstream stableUpstream newestAdoption
orchardOrchard/Ironwood note encryption, bundles and proving (circuit feature) in Brave's zcash Rust crate high
  • 0.15.0
  • 0.15.0
  • 0.15.0
  • 0.15.0
  • 0.15.0
  • 0.15.0
  • 0.15.0
  • 0.15.0
  • 0.15.0
  • 0.15.0
  • 0.15.0
  • 0.15.0
0.16.00.16.0behind latest stable (0.16.0)
zcash_primitivesTransaction components and merkle tree (built from Brave's librustzcash fork) high
  • 0.29.0 path
  • 0.29.0 path
  • 0.29.0 path
  • 0.29.0 path
  • 0.29.0 path
  • 0.29.0 path
  • 0.29.0 path
  • 0.29.0 path
  • 0.29.0 path
  • 0.29.0 path
  • 0.29.0 path
  • 0.29.0 path
0.30.10.31.0-pre.2behind latest stable (0.30.1) · built from Brave’s librustzcash fork
zcash_protocolConsensus/network constants (built from Brave's librustzcash fork) high
  • 0.10.0 path
  • 0.10.0 path
  • 0.10.0 path
  • 0.10.0 path
  • 0.10.0 path
  • 0.10.0 path
  • 0.10.0 path
  • 0.10.0 path
  • 0.10.0 path
  • 0.10.0 path
  • 0.10.0 path
  • 0.10.0 path
0.10.60.11.0-pre.1behind latest stable (0.10.6) · built from Brave’s librustzcash fork
zcash_client_backendShardtree serialization (built from Brave's librustzcash fork) high
  • 0.24.0-rc.1 path
  • 0.24.0-rc.1 path
  • 0.24.0-rc.1 path
  • 0.24.0-rc.1 path
  • 0.24.0-rc.1 path
  • 0.24.0-rc.1 path
  • 0.24.0-rc.1 path
  • 0.24.0-rc.1 path
  • 0.24.0-rc.1 path
  • 0.24.0-rc.1 path
  • 0.24.0-rc.1 path
  • 0.24.0-rc.1 path
0.24.00.25.0-pre.2behind latest stable (0.24.0) · built from Brave’s librustzcash fork
zcash_encodingSerialization helpers (built from Brave's librustzcash fork) medium
  • 0.4.0 path
  • 0.4.0 path
  • 0.4.0 path
  • 0.4.0 path
  • 0.4.0 path
  • 0.4.0 path
  • 0.4.0 path
  • 0.4.0 path
  • 0.4.0 path
  • 0.4.0 path
  • 0.4.0 path
  • 0.4.0 path
0.5.00.5.0behind latest stable (0.5.0) · built from Brave’s librustzcash fork
zcash_note_encryptionBatch trial decryption used during scanning high
  • 0.4.1
  • 0.4.1
  • 0.4.1
  • 0.4.1
  • 0.4.1
  • 0.4.1
  • 0.4.1
  • 0.4.1
  • 0.4.1
  • 0.4.1
  • 0.4.1
  • 0.4.1
0.5.10.5.1behind latest stable (0.5.1)
shardtreeNote commitment tree storage used by sync high
  • 0.7.0
  • 0.7.0
  • 0.7.0
  • 0.7.0
  • 0.7.0
  • 0.7.0
  • 0.7.0
  • 0.7.0
  • 0.7.0
  • 0.7.0
  • 0.7.0
  • 0.7.0
0.8.00.8.0behind latest stable (0.8.0)
incrementalmerkletreeCommitment tree primitives medium
  • 0.8.2
  • 0.8.2
  • 0.8.2
  • 0.8.2
  • 0.8.2
  • 0.8.2
  • 0.8.2
  • 0.8.2
  • 0.8.2
  • 0.8.2
  • 0.8.2
  • 0.8.2
0.9.00.9.0behind latest stable (0.9.0)
zip32HD key derivation (transitive via orchard) medium
  • 0.2.1
  • 0.2.1
  • 0.2.1
  • 0.2.1
  • 0.2.1
  • 0.2.1
  • 0.2.1
  • 0.2.1
  • 0.2.1
  • 0.2.1
  • 0.2.1
  • 0.2.1
0.3.00.3.0behind latest stable (0.3.0)
halo2_proofsProving system (transitive via orchard circuit feature) medium
  • 0.3.2
  • 0.3.2
  • 0.3.2
  • 0.3.2
  • 0.3.2
  • 0.3.2
  • 0.3.2
  • 0.3.2
  • 0.3.2
  • 0.3.2
  • 0.3.2
  • 0.3.2
0.4.00.4.0behind latest stable (0.4.0)
halo2_gadgetsCircuit gadgets (transitive; subject of CVE-2026-54496) medium
  • 0.5.0
  • 0.5.0
  • 0.5.0
  • 0.5.0
  • 0.5.0
  • 0.5.0
  • 0.5.0
  • 0.5.0
  • 0.5.0
  • 0.5.0
  • 0.5.0
  • 0.5.0
0.6.00.6.0behind latest stable (0.6.0)
pasta_curvesCurve arithmetic (transitive) low
  • 0.5.1
  • 0.5.1
  • 0.5.1
  • 0.5.1
  • 0.5.1
  • 0.5.1
  • 0.5.1
  • 0.5.1
  • 0.5.1
  • 0.5.1
  • 0.5.1
  • 0.5.1
0.6.10.6.1behind latest stable (0.6.1)
reddsaSignatures (transitive) low
  • 0.5.1
  • 0.5.1
  • 0.5.1
  • 0.5.1
  • 0.5.1
  • 0.5.1
  • 0.5.1
  • 0.5.1
  • 0.5.1
  • 0.5.1
  • 0.5.1
  • 0.5.1
0.6.10.6.1behind latest stable (0.6.1)
sinsemillaHash (transitive) low
  • 0.1.0
  • 0.1.0
  • 0.1.0
  • 0.1.0
  • 0.1.0
  • 0.1.0
  • 0.1.0
  • 0.1.0
  • 0.1.0
  • 0.1.0
  • 0.1.0
  • 0.1.0
0.2.00.2.0behind latest stable (0.2.0)

librustzcash fork: brave-core pins brave/librustzcash@f01f50d642 (brave_ironwood_support). Compared with zcash/librustzcash main: 2 commits ahead, 1023 behind; merge base 54efc30cd6 (). Compare on GitHub

Security advisories

From the GitHub Advisory Database (by package) and RustSec. Each advisory’s vulnerable ranges are compared with Brave’s resolved versions at master and current channel builds.

Light-client protocol and servers

Brave Wallet syncs Zcash through the lightwalletd CompactTxStreamer gRPC protocol. Endpoints compiled into brave-core master: https://3xpl.com/zcash/transaction, https://blockexplorer.one/zcash/testnet/tx, https://testnet.zec.rocks/, https://zcash.wallet.brave.com/. The mainnet endpoint is a Brave-operated proxy; which server software runs behind it is not public.

Protocol specifications (ZIPs)

ZIPTitleStatusLast change
ZIP 225Version 5 Transaction FormatFinalZIPs 225, 229, 258: specify the version group ID via protocol spec § 7.1.2, not a ZIP
ZIP 229Version 6 Transaction FormatDraftzip-0229, zip-0213: describe the NU6.3 version 6 consensus-rule changes
ZIP 258Deployment of the NU6.3 Network UpgradeDraftZIP 204: specify protocol version assignment; ZIP 258: assign NU6.3 versions
ZIP 259Deployment of the NU7 Network UpgradeDraftZIP 259: Define the NSM Value Balance and correct ZIP citations
ZIP 302Standardized Memo Field FormatDraftChange @str4d and @daira's email addresses to their personal addresses.
ZIP 316Unified Addresses and Unified Viewing Keys[Revision 0] Active, [Revision 1] Withdrawn, [Revision 2] DraftFix the punctuation-after-math problem once and for all.
ZIP 317Proportional Transfer Fee Mechanism[Revision 0] Active, [Revision 1: NU6.3] Draft, [Revision 2] DraftApply suggestions from code review
ZIP 318Orchard to Ironwood MigrationDraftApply suggestions from review (nits and fixing an inaccurate time calculation)
ZIP 326NU6.3 Consequences for WalletsDraftZIP 326: apply review suggestions (nuttycom, #1319)
ZIP 2005Ironwood Quantum RecoverabilityProposed(zip-2005) fix: remove dangling K
ZIP 2009Reduce Marginal Fee to 1000 Zatoshis and Raise the Weight Ratio Cap to 10DraftFix fat-fingered move of ZIP 2009 to its correct location.

Recent upstream releases

Watch topics

Research and proposals that could matter to Brave Wallet later. They are tracked as upstream work unless Brave’s own source shows adoption. Performance figures belong to their publishers and were not measured in Brave Wallet.