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