ZecPaperWallet CLI is now ready for testing!

Thanks to a grant from the Zcash Foundation, the ZecPaperWallet offline paper wallet generator for Sapling addresses is now ready for first beta release, so please help test it out!

You’ll need to install Rust and compile zecpaperwallet. See instructions here, but the summary is:

git clone https://github.com/adityapk00/zecpaperwallet.git
cd zecpaperwallet/cli
cargo build --release

You are now ready to test it out! To generate a single address:


To generate a PDF with 3 addresses

./target/release/zecpaperwallet -z 3 --format pdf zecpaper-output.pdf

The UI frontend for this is being built, and should also be available next week. What other features would you like to see? If you run into issues or want to see other features, please let me know!


The unfortunate thing about paper wallets is that they generally have to be printed. Many printers store data of the documents that are printed. In my opinion, this makes paper wallets unsafe to use for large amounts.

1 Like

Print paper wallet, destroy printer :printer::boom::hammer:



That is actually a very solid solution


Just make sure the printer memory is volatile.

Similar to computers, printers have both volatile memory (like computer RAM) which gets lost when you turn the printer off and non-volatile memory (like computer hard drives) which sticks around until it’s deleted. … Non-volatile memory is what you need to worry about if you just printed a confidential document / paper wallet

Or what @Shawn said


Can you write it down carefully?

1 Like

Let’s compare this to the ZEC wallet. The unfortunate thing about ZEC wallets is that they don’t have a password neither are encrypted in anyway.

The ZEC desktop wallets are just stored on the PC, unsecured!

In my opinion, this makes deskotp wallets way more unsafe than a paper wallet. I mean IF someone has accessto your printer he would as much have access to your PC. IF this would be the case it would be more easier to gain access to the ZEC desktop wallets than to the memory of the printer.

Now if we talk about public printing services it’s a NO-Go anyway. It would be the same like having a desktop ZEC wallet on a PC used in an internet cafe.

This said, if we compare both i can’t see how the paper wallet is more unsafe than an anyway unsecured ZEC desktop wallet?!?!


Of course, you can as well make a photo or make a paint of it.

1 Like

Pre-built binaries for all platforms are available to download here:


You know what I thought of? If I make a arm64 binary, then you can buy a Raspberry Pi + Cheap printer for a total of $80, generate + print a paper wallet, then destroy the Raspberry Pi and the printer.

That way, you have a paranoid-level offline zcash private key for “just” ~$80. That would be cool!


Thx god i’am far away from such paranoia level, but for others it’s for sure an idea. If they buy it 2nd hand it should be even below $50…

1 Like

I just compiled from source on a Raspberry Pi (running a 64bit OS) and it works great.


That is a great idea :slight_smile:
I imagine a small setup up printing z addresses on demand at the counter of a bar :slight_smile: Great working add!

« Push the button to get your own private z wallet » a congrats message and some explanations on what they just printed out …

Édit: And a message saying that ideally they shouldn’t trust this wallet since they shouldn’t trust this computer … damn …

1 Like

Just added official support + pre-build binaries for ARMv8! https://twitter.com/zecwallet/status/1139581425336721408


Thanks for the tool! This is awesome.


zecpaperwallet now has a UI frontend to make generating shielded paper wallets easier.

Download: Releases · adityapk00/zecpaperwallet · GitHub



Excellent!!! :slight_smile:

Here’s an idea - how about a viewing key? Would be nice to keep track of funds in cold storage.

I wanted to display the viewing key as well, but since zcashd doesn’t have support for it yet, I decided to hold off. I’ll add it right after zcashd adds full support for view keys :slight_smile:


@adityapk00 Is it possible to add support for BIP39 or something similar? I know that is what ledger uses for t addresses and it would be nice if this was an option. :slight_smile:

1 Like

zecpaperwallet uses BIP39 for sapling addresses (It prints out the seed and the BIP39 path). It doesn’t use it for t-addresses intentionally, since that is the behavior of the underlying zcashd (HD addresses for sapling, random addresses for t-addrs)

I thought about doing BIP39 for t-addresses as well, but thought it might get confusing since it is different from zcashd.