zcash/wallet#2 zcash/wallet#2 Wrap the `zcash_client_backend` sync engine as a stateful wallet service application. zcash/wallet#3 zcash/wallet#3 Consider whether we provide drop-in support for at least some `zcashd` RPC APIs. zcash/wallet#2->zcash/wallet#3 zcash/wallet#5 zcash/wallet#5 zcash_client_backend: Required functionality for full `zcashd` wallet replacement. zcash/wallet#2->zcash/wallet#5 zcash/wallet#4 zcash/wallet#4 Implement the subset of `zcashd` RPCs that expose the decided-upon wallet functionality zcash/wallet#3->zcash/wallet#4 zcash/wallet#4->zcash/wallet#5 zcash/zips#659 zcash/zips#659 [protocol spec] 5.6.3.1 Sapling Payment Addresses does not require that DiversifyHash^Sapling(d) ≠ ⊥ zcash/zips#750 zcash/zips#750 Protocol spec updates: Finish NU5/Orchard and backlogged specs zcash/zips#659->zcash/zips#750 zcash/zips#816 zcash/zips#816 Protocol spec version 2025.6.0 zcash/zips#750->zcash/zips#816 zcash/zips#813 zcash/zips#813 Protocol spec version 2025.6.1 zcash/zips#816->zcash/zips#813 zcash/zips#811 zcash/zips#811 NU7 specification zcash/zips#813->zcash/zips#811 zcash/librustzcash#1365 zcash/librustzcash#1365 zcash_client_backend: Restore a wallet from the format standardized in zcash/zips#821 zcash/librustzcash#1365->zcash/wallet#5 zcash/zips#186 zcash/zips#186 [protocol spec] Choice of ovk in section 4.19.1 should reflect implementation zcash/zips#186->zcash/zips#750 zcash/zips#195 zcash/zips#195 [protocol spec] Consensus rules about canonical encodings are misstated in the spec zcash/zips#195->zcash/zips#750 zcash/zips#488 zcash/zips#488 [protocol spec] Clarify the return type of NoteCommitment^Orchard and usage of it vs NoteCommit^Orchard zcash/zips#488->zcash/zips#750 zcash/zips#497 zcash/zips#497 Consider removing version_group_id from V6 and future transactions. zcash/zips#686 zcash/zips#686 [ZIP 230] Transaction V6 zcash/zips#497->zcash/zips#686 zcash/zips#686->zcash/zips#813 zcash/zips#832 zcash/zips#832 NU7 specification audit zcash/zips#811->zcash/zips#832 zcash/zcash#5796 zcash/zcash#5796 Add ability to restore the zcashd wallet from the emergency recovery phrase (mnemonic seed). zcash/zips#698 zcash/zips#698 [protocol spec] Minor nit in notes on Orchard Key Components section zcash/zips#698->zcash/zips#750 zcash/zips#524 zcash/zips#524 Allow Orchard funding stream addresses zcash/zips#524->zcash/zips#811 zcash/zips#814 zcash/zips#814 Set activation height for NU7 zcash/zips#832->zcash/zips#814 zcash/zips#814->zcash/wallet#5 zcash/librustzcash#1721 zcash/librustzcash#1721 Use zcash_script in PCZTs zcash/librustzcash#1695 zcash/librustzcash#1695 `zcash_client_backend`: Add backend functionality required to support `fundrawtransaction` zcash/librustzcash#1721->zcash/librustzcash#1695 zcash/librustzcash#1695->zcash/wallet#5 zcash/librustzcash#1330 zcash/librustzcash#1330 zcash_client_sqlite: `v_tx_outputs` describes one of two tx outputs as not from the account zcash/librustzcash#1335 zcash/librustzcash#1335 Support for multiple accounts zcash/librustzcash#1330->zcash/librustzcash#1335 zcash/librustzcash#1335->zcash/wallet#5 zcash/zips#627 zcash/zips#627 [ZIP 231] Memo Bundles (decouple memos from transaction outputs) zcash/zips#627->zcash/zips#686 zcash/zips#810 zcash/zips#810 Protocol spec updates: Document missing security arguments zcash/zips#810->zcash/zips#816 zcash/zips#755 zcash/zips#755 ZSA UX considerations for AssetId discovery and authentication zcash/zips#830 zcash/zips#830 Complete specifications for ZSAs zcash/zips#755->zcash/zips#830 zcash/zips#830->zcash/zips#813 zcash/librustzcash#1415 zcash/librustzcash#1415 zcash_client_backend: Implement internals of in-memory wallet by migrating tests from `zcash_client_sqlite` zcash/librustzcash#1410 zcash/librustzcash#1410 zcash_client_backend: Introduce "chain access API" to the sync engine zcash/librustzcash#1415->zcash/librustzcash#1410 zcash/librustzcash#1410->zcash/wallet#2 zcash/librustzcash#1360 zcash/librustzcash#1360 Transaction builder support for spending (almost) arbitrary transparent inputs. zcash/librustzcash#1370 zcash/librustzcash#1370 Make it possible to construct proposals that spend stored transparent funds (P2PKH and P2SH) zcash/librustzcash#1360->zcash/librustzcash#1370 zcash/librustzcash#1370->zcash/wallet#5 zcash/librustzcash#1305 zcash/librustzcash#1305 zcash_client_{backend,sql ite}: Correctly track accounts that fund each transaction output. zcash/librustzcash#1305->zcash/librustzcash#1335 zcash/librustzcash#1552 zcash/librustzcash#1552 zcash_client_backend: Add the functionality to restore from `zcashd` wallet.dat and/or wallet dump files produced by `z_exportwallet`. zcash/librustzcash#1552->zcash/wallet#5 zcash/zips#675 zcash/zips#675 [ZIP 332] Wallet Recovery from zcashd HD Seeds zcash/zips#675->zcash/zcash#5796 zcash/librustzcash#1348 zcash/librustzcash#1348 zcash_client_backend: Add the ability to restore from `zcashd` seed phrases. zcash/zips#675->zcash/librustzcash#1348 zcash/wallet#6 zcash/wallet#6 Provide a wallet upgrade path that moves funds held by legacy keys into a unified account. zcash/zips#675->zcash/wallet#6 zcash/librustzcash#1348->zcash/wallet#5 zcash/zips#821 zcash/zips#821 Define a standard wallet export/backup format. zcash/zips#821->zcash/librustzcash#1365 zcash/lightwalletd#498 zcash/lightwalletd#498 Add the ability to query for the transaction that spends a specified transparent outpoint. zcash/librustzcash#1353 zcash/librustzcash#1353 zcash_client_backend: If a seed is reused, transparent UTXO spends from one wallet may not be detected in the other. zcash/lightwalletd#498->zcash/librustzcash#1353 zcash/librustzcash#1353->zcash/wallet#5 zcash/librustzcash#578 zcash/librustzcash#578 Survey key storage and usage of `zcashd` and `zcash_client_sqlite` zcash/librustzcash#578->zcash/zips#675 zcash/librustzcash#578->zcash/zips#821 zcash/librustzcash#1371 zcash/librustzcash#1371 Create structures for storing broader kinds of transparent spending key material zcash/librustzcash#578->zcash/librustzcash#1371 zcash/librustzcash#579 zcash/librustzcash#579 Redesign Rust types for representing wallet key material zcash/librustzcash#578->zcash/librustzcash#579 zcash/librustzcash#1371->zcash/librustzcash#1370 zcash/librustzcash#579->zcash/wallet#5 zcash/librustzcash#1362 zcash/librustzcash#1362 Create a generator and evaluator for arbitrary transparent Zcash script. zcash/librustzcash#1362->zcash/librustzcash#1360 zcash/librustzcash#1362->zcash/librustzcash#1371 zcash/librustzcash#1188 zcash/librustzcash#1188 `zcash_client_backend`: Support import of seed phrases from transparent- only wallets. zcash/librustzcash#1188->zcash/librustzcash#1348 zcash/zips#839 zcash/zips#839 ZIP 254: Deployment of the NU7 Network Upgrade zcash/zips#839->zcash/zips#811 zcash/librustzcash#1490 zcash/librustzcash#1490 Cache incoming viewing keys and detect IVK collisions when adding accounts zcash/librustzcash#1490->zcash/librustzcash#1335 zcash/wallet#20 zcash/wallet#20 Implement `zcashd` wallet methods that can already be satisfied by `zcash_client_backend` zcash/wallet#20->zcash/wallet#5 zcash/zips#430 zcash/zips#430 [protocol spec] In 4.1.11, GroupHash^G(r) should be GroupHash^G(r)* (for Sapling but not Orchard) zcash/zips#430->zcash/zips#750 zcash/zcash#5912 zcash/zcash#5912 NU5 consensus labeled zcash/zcash#3957 zcash/zcash#3957 Link the Code and Protocol zcash/zcash#5912->zcash/zcash#3957 zcash/zcash#3957->zcash/zips#750 zcash/zips#677 zcash/zips#677 [protocol spec] Descriptions of signature fields should reference the section that specifies their validation zcash/zips#677->zcash/zips#750 zcash/zips#622 zcash/zips#622 [protocol spec] Add note that there were no signatures before Canopy that depended on the libsodium weirdness zcash/zips#622->zcash/zips#750 zcash/zips#805 zcash/zips#805 [ZIP 2002] Include the fee explicitly in the transaction format. zcash/zips#805->zcash/zips#686 zcash/zips#277 zcash/zips#277 [protocol spec] Reference scriptPubKey encodings of transparent addresses in 5.6.1 zcash/zips#277->zcash/zips#750 zcash/zips#167 zcash/zips#167 [protocol spec] Spec is ambiguous on key validation for KA^Sprout and JoinSplitSig public keys zcash/zips#167->zcash/zips#750 zcash/zcash#4099 zcash/zcash#4099 Investigate the distribution of P2SH scripts zcash/zcash#4099->zcash/librustzcash#1360 zcash/zcash#4099->zcash/librustzcash#1362 zcash/zips#679 zcash/zips#679 [protocol spec] Section 5.6 of the protocol spec should say that UIVKs and UFVKs are encoded using Bech32m zcash/zips#679->zcash/zips#750 zcash/zips#825 zcash/zips#825 [ZIP 2003] Disallow v4 transactions in NU7 zcash/zips#825->zcash/zips#811 zcash/zips#663 zcash/zips#663 [protocol spec] Make a note in 4.2.2 that the use of DerivePublic is correctly typed zcash/zips#663->zcash/zips#750 zcash/zips#617 zcash/zips#617 [protocol spec] Document how decoding of PHGRProofs in pre-Sapling transactions should be handled for impls that do not verify them zcash/zips#617->zcash/zips#750 zcash/zips#736 zcash/zips#736 Call for comments: ZSA Swaps base proposal zcash/zips#736->zcash/zips#830 zcash/zips#263 zcash/zips#263 [protocol spec] Say that note ciphertexts are indistinguishable from uniform-random zcash/zips#263->zcash/zips#810 zcash/zips#763 zcash/zips#763 [protocol spec] Spec uses inconsistent terms for ask and ak zcash/zips#763->zcash/zips#750 zcash/zips#827 zcash/zips#827 [protocol spec] Document multi-user security of AEAD_CHACHA20_POLY1305's MAC zcash/zips#827->zcash/zips#810 zcash/librustzcash#1414 zcash/librustzcash#1414 zcash_client_backend: Create the framework for an in-memory wallet backend zcash/librustzcash#1414->zcash/librustzcash#1415 zcash/librustzcash#1368 zcash/librustzcash#1368 zcash_client_backend: Introduce (initially internal) "sync API" between the scanning and wallet parts of `scan_cached_blocks` zcash/librustzcash#1368->zcash/wallet#5 zcash/zips#665 zcash/zips#665 [protocol spec] Document in 4.9 the security requirement that the note commitment tree must (at least for Sapling) be positionally binding zcash/zips#665->zcash/zips#810 zcash/librustzcash#1389 zcash/librustzcash#1389 WalletDb::create_account fails adding second account: Attempted to write subtree roots with indices 11..12 which is discontinuous with existing subtree range 16..17. zcash/librustzcash#1389->zcash/librustzcash#1335 zcash/zips#265 zcash/zips#265 [protocol spec] [ZIP 205] Testnet difficulty adjustment: implementation does not match spec zcash/zips#265->zcash/zips#750 zcash/wallet#1 zcash/wallet#1 Determine what subset of zcashd wallet functionality will be required by users in a replacement wallet (independent of how it is accessed) zcash/wallet#1->zcash/wallet#4 zcash/librustzcash#1395 zcash/librustzcash#1395 Enumerate the data that the indexer service needs to provide zcash/wallet#1->zcash/librustzcash#1395 zcash/librustzcash#1395->zcash/librustzcash#1410 zcash/librustzcash#1361 zcash/librustzcash#1361 `zcash_client_backend`: Add support for full transparent coin tracking (P2PKH and P2SH) zcash/librustzcash#1361->zcash/librustzcash#1370 zcash/zips#539 zcash/zips#539 [protocol spec] [ZIP 203] Clarify how transaction lock times are handled zcash/zips#539->zcash/zips#750 zcash/zcash#6869 zcash/zcash#6869 Ensure that last release of zcashd EoS-halts before the first incompatible NU activates zcash/zcash#6869->zcash/zips#814 zcash/zips#194 zcash/zips#194 [protocol spec] Issues with section 4.21 (Block Chain Scanning for Sapling and Orchard) zcash/zips#194->zcash/zips#750 zcash/zips#203 zcash/zips#203 [protocol spec] Include argument about post- quantum privacy for unknown addresses zcash/zips#203->zcash/zips#810 zcash/zips#779 zcash/zips#779 Document that the Bech32 Sapling viewing keys aren't diversifiable and that you might want to use a UVK instead zcash/zips#779->zcash/zips#810 zcash/zips#724 zcash/zips#724 [protocol spec] Document infeasibility of an attack on Poseidon zcash/zips#724->zcash/zips#810 zcash/zips#815 zcash/zips#815 After NU6 has activated, document it as a settled network upgrade zcash/zips#815->zcash/zips#816 zcash/zips#388 zcash/zips#388 [protocol spec] Spec is ambiguous about how to generate Sapling dummy output notes after Canopy zcash/zips#388->zcash/zips#750 zcash/zips#644 zcash/zips#644 [protocol spec] Change all the PRF^expand domain separator bytes to be expressed in hex zcash/zips#644->zcash/zips#750 zcash/zips#415 zcash/zips#415 [protocol spec] 4.17.2 (Spend statement): cm^old is not an auxiliary input zcash/zips#415->zcash/zips#750 zcash/librustzcash#1075 zcash/librustzcash#1075 Design for importing FVKs, IVKs, and even Unified spending keys zcash/librustzcash#1075->zcash/librustzcash#1490 zcash/zips#845 zcash/zips#845 [ZSA] Add ZIP for recommended wallet support of ZSAs zcash/zips#845->zcash/zips#830 zcash/zips#671 zcash/zips#671 [protocol spec] [ZIP 216] Document that it is possible to apply ZIP 216 retroactively zcash/zips#671->zcash/zips#750 zcash/zips#909 zcash/zips#909 [protocol spec] Add 0xAB (for ZIP 32 arbitrary key derivation) to § 4.1.2 Pseudo Random Functions zcash/zips#909->zcash/zips#816 zcash/librustzcash#483 zcash/librustzcash#483 Add pre-overwinter signature hashes to `signature_hash` or return an error. zcash/librustzcash#483->zcash/wallet#5 zcash/wallet#7 zcash/wallet#7 Agree on a sketch of the overall wallet architecture zcash/wallet#7->zcash/librustzcash#1368 zcash/wallet#7->zcash/librustzcash#1395 zcash/zips#664 zcash/zips#664 [protocol spec] [ZIP 216] Sapling pk_d should not allow the zero point zcash/zips#664->zcash/zips#750 zcash/zips#310 zcash/zips#310 [protocol spec] Include a cost analysis of attacks against BLS12-381 (STNFS, Cheon), Jubjub, and Pallas/Vesta zcash/zips#310->zcash/zips#810 zcash/zips#630 zcash/zips#630 [protocol spec] [ZIP 212] zcashd enforces the 0x02 lead byte for coinbase outputs only after end of the original grace period zcash/zips#630->zcash/zips#750 zcash/zips#776 zcash/zips#776 [ZIP 228] Asset Swaps for Zcash Shielded Assets zcash/zips#776->zcash/zips#830 zcash/zips#721 zcash/zips#721 [protocol spec] Add links to audits in Acknowledgements zcash/zips#721->zcash/zips#750 zcash/librustzcash#1363 zcash/librustzcash#1363 Enumerate the capabilities exposed by zcashd APIs for spending transparent coins. zcash/librustzcash#1363->zcash/wallet#3 zcash/librustzcash#1363->zcash/librustzcash#1360 zcash/librustzcash#1363->zcash/librustzcash#1362 zcash/librustzcash#1363->zcash/wallet#1 zcash/zips#184 zcash/zips#184 [protocol spec] Clarify why zero-value notes cannot be used for roadblock attacks (section 8.4) zcash/zips#184->zcash/zips#810 zcash/zips#303 zcash/zips#303 [protocol spec] 4.15.1 refers to BCTV14 for encoding zcash/zips#303->zcash/zips#750 zcash/librustzcash#1372 zcash/librustzcash#1372 `zcash_primitives::legacy `: Enhance transparent `Script` support as necessary zcash/librustzcash#1372->zcash/librustzcash#1371 zcash/librustzcash#1372->zcash/librustzcash#1362 zcash/librustzcash#1436 zcash/librustzcash#1436 Adding a second account with an older birthday height effectively changes height for existing account zcash/librustzcash#1436->zcash/librustzcash#1335 zcash/zips#568 zcash/zips#568 [protocol spec] Document block transparent sigops limit consensus rule zcash/zips#568->zcash/zips#750