ZecWallet Lightclient CLI beta

Thanks to a grant from the Zcash Foundation, I’ve been working on a ZecWallet lightclient for Zcash. The lightclient has:

  • Full support for incoming, outgoing memos
  • Full support for t-addresses and z-addresses (send and receive)
  • Downloads only a fraction of the blockchain

The CLI version of the lightclient is now ready for a private beta test! If you’re interested in trying it out, please comment below or send me a message. The beta test is:

  • Testnet only at the moment
  • Command line version only

If you like trying out beta software and don’t mind filing bugs, please help me test it out!

Depending on how the beta test goes, I think we can open up the CLI beta to everyone in a couple of weeks, and then in 4-5 weeks, you’ll see a full ZecWallet integration as well.


This is really exciting; I would love to test it out!


This is great, @adityapk00!

What is the CLI interface and how does it compare to the zcashd RPC?


The CLI interface is basically a command line version of ZecWallet. It is an interactive prompt, where you can type commands like “getaddresses” or “getbalance” or “rescan” or “send” etc…, and view the output right there.

Of course, there’s an underlying RPC, but I’m split on whether to expose that to the user (Doesn’t seem very user friendly). The RPC is modelled after the zcashd RPC, but of course, not 100% compatible, because this is a lightwallet.


I’d love to test this too


So exciting; I would love to test too!

1 Like

I would also be interested in testing this.

1 Like

I’d love to test it!

This is great! I’d love to test it out!

Welcome to all the new users!

1 Like

Thanks to everyone that’s signed up! I expect the binaries will be ready tomorrow for y’all to test it out. Just setting up the server today.


Can we get some coins with those wallets too, please :slight_smile:

v0.1-beta-1 of Zeclite is available for beta testing! You can download the binaries now from https://github.com/adityapk00/lightwalletclient/releases/tag/0.1-beta

Please see the README here for more information!


  • Just unzip the binary and run it
  • Zeclite will automatically try to connect to the lightclient server and download blocks. This should be very fast (only a few seconds)
  • Zeclite is an interactive CLI wallet, so you can type “help” at the prompt to see options
    • “list” - view transaction history
    • “balance” - view balances and addresses
    • “send” - send outgoing transactions
  • There are likely serious bugs, so please file issues in github if you see anything funny.

All feedback is welcome!

If you need testnet coins, please comment here with your address and I’ll send you some!


You can also use my testnet faucet https://faucet.zcash.garethtdavies.com/


First test of this went really smoothly :+1: . I want to nuke my local data so I can resync from scratch, where is this data persisted (macOS) - I know I can use rescan/sync but I want to simulate running it from scratch again.

The first tx received and I got a memo, I thought lightwalletd specifically didn’t include this information. Are you handling this in a different way?

    "block_height": 609362,
    "txid": "c8d3e4cf44e8ba0da6f9355c3d83aae35b76e97a08e58148b824272b836d57bc",
    "amount": 1000000000,
    "address": "ztestsapling1frpfev4gv4cxzt5lwkmvu34nuurzrcxpyj4j5xeyus2t8zsa0m6sz44nnsg8qgfhqz9fv0jfqjj",
    "memo": "Thanks for using zfaucet!"

I’m glad it’s working.

The wallet is stored next to the regular zcash wallet in the Zcash directory , and is called “zeclite.wallet.dat”. So, on a Mac, it should be in Library/Application Support/Zcash/testnet3

I’ve also forked lightwalletd for zeclite, and added support for transparent addresses and full support for memos.


Interesting, I thought the whole point of stripping it was that the memo took up a huge % of the tx size so this greatly increases the bandwidth required?


Nice. Need memo support for it to work with Zatsuma :grinning:

1 Like

No, it doesn’t change the bandwidth required. What happens is that when Zeclite detects that one of the Tx belongs to the wallet, it goes to the server and fetches the full Tx, and then extracts the memo from that.

This, of course, means that the server learns which Txns belong to you. I’m adding a feature where zecite will download “decoy” transactions to hide even this info from the server. (Another option is to download the full block, so the server doesn’t learn which tx belongs to you)


Works well for me so far. Good job!