Two new wallet GUI's: one for desktop and one for android


#1

I have written two programs that work as GUI's for the official zcash wallet.

The first of them is pyzcto, a python/qt app. I developed it having linux in mind, but I guess it wouldn't be too hard to port it to mac or windows. It is still not fully polished, but overall it works pretty well (although maybe the user interface is not the most intuitive in the world).

It is inspired in vaklinov's java GUI, but has some extra features, mainly:

  • It has support for multisig addresses
  • It makes it easy to setup a .onion service to access to your wallet remotely through the tor network.

This second part is related to the second project, ZcashPannel, which is an android app that can connect to your desktop wallet through that .onion service. That way, you can just leave your computer running at home, but still make payments with your phone everywhere else, without depending on any thirthd party and without giving up any privacy.

This second app is just a proof of concept: it works (most of the time), but sometimes it crashes, and it is not tolerant to any error from the user (for example, if you try to send without specifying the amount, it crashes instead of giving an error message, and something similar happens with many actions). I recommend to test it carefully.

I might keep developing pyzcto, but don't plan to keep working on ZcashPannel for the moment: I just wrote it to check that the idea of a remote gui through .onion was viable. I would love to see someone else taking on the project, or starting a new one based on this idea.

Anyways, I would like to hear any feedback you can give. So please, test them.


#3

I have done some improvements in pyzcto.

Some errors in the multisig tab were solved, and also a button to generate public keys on the fly was added, together with a text label showing how many of the keys involved are yours.

There is a video demo (with a slightly outdated version, that does not have the mentiones button and text label) here: