ZecWallet LightClient CLI Mainnet beta!

This is beta software, please use with caution

ZecWallet LightClient CLI is now available in beta for the mainnet.

zeclite-cli is a LightClient for Zcash that can run in interactive CLI mode. It connects to the Zcash network using the lightclient protocol, which dramatically reduces the amount of data needed to use Zcash.

Download

Full Node LightClient
Data downloaded to get started ~23,000,000 kB 530 kB
Data downloaded every week to keep up with network 200,000 kB 200 kB
Disk Storage required ~24,000,000 kB 80 kB

The Lightclient supports the full feature set of ZecWallet, including:

  • Support for transparent and sapling addresses
  • Full support for incoming and outgoing memos
  • Store full transaction history in the wallet!

Apart from the network bandwidth and storage improvements, ZecWallet light client adds the following features:

  • All transparent and sapling addresses are derived from the same seed phrase. You only need to back up the seed phrase once.
  • The wallet is fully recoverable only with the seed phrase, including all transaction data
  • (coming soon) Support for encrypting wallets, so you need a password to send funds, but no password to keep syncing
  • (coming soon) Support for incoming and outgoing view keys

To get started, just download the binary from the github page and run it. More instructions are in the README

This is beta software, please use with caution

Things to watch out for

  • Some privacy features are missing. Right now, the lightwalletd can learn what txids belong to you by watching your requests
  • The wallet automatically shields all your transparent funds at the first opportunity
14 Likes

New beta release - v0.2.1 : https://github.com/adityapk00/lightwalletclient/releases/tag/0.2.1

IMPORTANT NOTE

  • This version changes the wallet format. A new wallet will be created
  • If you used the previous beta, your old funds will NOT automatically move over to this wallet. You need to manually move them over (Run the old binary and use the “send” command to transfer funds)

Fixes in this version:

  • Fix the wallet format so that it is compatible with other Zcash wallets. The seed from the wallet is now interoperable with other zcash wallets
  • Rename the wallet to zecwallet-cli
  • Fixed-size logging
  • Ability to store multiple keys in the wallet
6 Likes

Really exciting to see this all coming together!

I recommend only supporting full viewing keys, because this ensures that your viewed wallet state is always consistent.

Will it be possible to run a public server? I am thinking of a system with multiple different public servers just like with Monero’s remote nodes. Would be cool to have a Zcash Onion Service LightClient server for enhanced privacy on the network layer.

1 Like

Yes. Anyone can run a public server. The server software is here: https://github.com/adityapk00/lightwalletd

3 Likes

Exciting stuff!!!

What’s next? Guessing GUI version, hopefully a Droid version… this is going to be great :slight_smile:

1 Like

Yup. I’m working on a GUI version (Zecwallet), which should be available over the next 3-4 weeks.

4 Likes

How do viewkeys work? Could I share one of my zaddr viewkey’s with someone to give them access to view it’s transactions AND memos?

Yes, basically. A viewkey lets someone look at your zaddr txns but its your key so you choose who to share it with.

Useful for compliance & audits when dealing with authorised snoopy people.

1 Like

I have an idea… :slight_smile:

How about if it could trigger external scripts in a similar way to ‘walletnotify’ ? That would make it easy to integrate with other projects that need a node to track incoming payments.

A new, updated version of zecwallet-cli is available. This is the release candidate version, and if everything goes well, we’ll release the final version later this week.

Download: https://github.com/adityapk00/zecwallet-lite-lib/releases

Notes:

  • Add a new “recover” command to recover corrupted wallets
  • Allow connecting to locally running lightwalletd servers
  • Fetch all Txs in a block that the wallet has a Tx in, to ensure the server doesn’t learn which Txns belong to the wallet
  • Add a non-interactive mode allow running commands directly, enabling use in batch scripts
5 Likes

Huge! Thanks for this, and congratulations!

1 Like

This is super exciting! Thanks for all the great work!

1 Like

Did you intend to link to the archived github repo?

Sorry, I had to move the repo. This is the correct link: https://github.com/adityapk00/zecwallet-lite-lib

1 Like