Zecwallet-CLI v1.0 is here!

I’m excited to announce that v1.0 of Zecwallet-CLI is now available!
Download now

What is Zecwallet-CLI?

Zecwallet-CLI is a lightclient for Zcash. This means it doesn’t need to download the full block chain to send and receive transactions, which cuts the amount of data that it downloads by over 95%! You can get start (almost) instantly sending and receiving fully shielded zcash transactions.

  • Full support for incoming and outgoing Memos!
  • Full support for t-addresses (incoming + outgoing!)
  • Full support for HD wallets, deriving all shielded and transparent addresses from the same seed. This means your full wallet is backed up with just the seed phrase. All transactions, balances and memos can be recovered with just the seed phrase.

Remember to backup your seed phrase

Please take a look at the README to view help and other info!

image

If you run into issues or have questions, please feel free to comment here of file issues. I’m now working on the UI version of Zecwallet, which should be available in a few weeks.

This project is possible thanks to a grant from the Zcash Foundation. I’d like to thank several people that helped me get this out of the door: @acityinohio, @gtank from the Zcash Foundation for supporting Zecwallet from the start, @str4d, @lindanaeunlee, @kevin.gorham, larryruane, @geffen, and the entire ECC Wallet team that helped me debug issues and answered my questions, and @garethtdavies, @hloo, @ChileBob, @dimitris.apostolou and everyone else that helped me beta test this!

14 Likes

Super cool! A couple Q’s:

I downloaded the new release, and the help menus still say it’s for TAZ. I think I’m on mainnet though, as I got a normal zs for my new wallet. Am I right to think that? :sweat_smile:

Am I correct that I can only send to one recipient in the current version?

Thanks for your great work!

1 Like

Thanks for trying it out!

  1. I think I missed some strings where it still says “TAZ” instead of “ZEC”. Sorry, will fix.
  2. Yes, only 1 recipient right now, but multi recipient is trivial and should be available in the next release.
2 Likes

Works like a charm. Man that was fast. Really awesome

lfoGVDwc

2 Likes

Woohoo, first production deployment of our reference wallet’s Rust libraries! Awesome work @adityapk00 :smiley:

10 Likes

Great stuff :+1:

Can you add privacy considerations to the README? As I understand, it will download all transactions in a block if it detects a wallet tx in that block (in order to retrieve the memo)? Given there is a very reasonable chance currently that there may be only a single fully shielded tx in a block there is a strong likelihood that the server may learn some additional information? I think it would be useful to clarify expectations before it is widely used.

7 Likes

This is exciting, thanks for doing this @adityapk00 .
I’d like to know whether/when the lightwallet will support viewing keys. Does it already? Or are viewing keys even available in the reference wallet? I did some cursory searching, didn’t find a definitive statement about the current state of viewing keys.

A link to an authoritative-and-current statement about viewing keys would be greatly appreciated! Unless, of course, the answer is as simple as: “The lightwallet fully supports viewing keys.” in which a link would be unnecessary! :wink:

Thanks in advance!

1 Like

The lightclient code supports viewing keys right now, but it’s not exposed to the user via commands yet. The wallet scans incoming and outgoing transactions using the IncomingViewKey and OutgoingViewKey exclusively, and needs the spending key only to spend transactions.

You can see the wallet code here: https://github.com/adityapk00/zecwallet-light-cli/blob/master/lib/src/lightwallet.rs#L99

The wallet stores the FullViewingKey, and uses that to keep up to date with the chain.

I need to add import/export commands to allow users to support it. Should come to the lightclient in the next few weeks.

1 Like

Awesome! Thanks for the link. This is great stuff!

2 Likes

Zecwallet-CLI v1.1

Download from github

Encrypted Wallets

Zecwallet-CLI can now encrypt your wallet on disk, protecting your private keys while stored on disk. When a wallet is encrypted, Zecwallet-CLI will use your viewkeys to download new transactions and keep up with the blockchain. To spend money from the wallet, you can unlock your wallet, spend money, and then lock it up again.

When a wallet is encrypted:

  • Private keys for both z and t addresses are encrypted, both on disk and in memory
  • Receive ZEC on both z and t addresses like normally. You can check your balance and transaction history
  • Unlock is needed to spend money from the wallet.

Bip39 Bug

This release also contains a fix for a address derivation bug that derived non-standard addresses for z and t addresses after the first one. Zecwallet-CLI contains a new command fixbip39bug that can automatically correct your wallet’s addresses. No funds are at risk.

More details: https://github.com/adityapk00/zecwallet-light-cli/blob/master/bip39bug.md

5 Likes