This repository contains the canonical Protobuf definitions for the Zcash Light Wallet protocol.
Before the creation of this repository, copies of wallet RPC .proto files existed in several
repositories across the Zcash ecosystem. This posed a challenge for protocol developers,
wallet maintainers, and infrastructure providers who would have to look up the Ad Hoc
canonical files for their own use and changes were hard to propagate and communicate. There was also
a danger of projects deploying incompatible changes, such as using the same field or tag number for
a new message field.
This repository IS not a specification of the Zcash Light Client protocol. The Zcash Light Client Protocol is described in ZIP-307.
These files define the GRPC API for the ZIP 307 light wallet service using proto 3.
We recommend using git subtree to update downstream repositories to use the lastest tagged versions
of this repository.
git subtree -p $(TARGET_PATH) pull [email protected]:zcash/lightwallet-protocol.git $(LATEST_VERSION) --squash
We assume YourProject is a git repository. Begin with a clean working tree. (Pulling in lightwallet-protocol creates its own commit; any changes you're making to your project should be in separate commits.)
You can install the tree command using your OS package manager of choice (although is not necessary).
$ cd YourProject
$ git subtree -p lightwallet-protocol/ pull [email protected]:zcash/lightwallet-protocol.git v0.4.0 --squash
$ tree .
├── lightwallet-protocol
│ ├── LICENSE
│ └── walletrpc
│ ├── compact_formats.proto
│ └── service.proto
... (other directories)
- Zashi [iOS | Android]
- Ywallet (Dart/Flutter)
Light client protocol development is steered by the Light Client Working Group.
This workgroup meets bi-weekly and is invite-only, but you can reach out through this channel of the Zcash R&D Discord server.