ZECmate Swing Wallet is a GUI destkop wallet for Zcash. This fully compatible sapling release is availalbe for macOS, Windows and Linux. Download the latest release from GitHub releases or head on to ZECmate Swing Wallet website .
This wallet is targeted at advanced users who understand the implications of running a full Zcash node on
the local machine, maintaining a full local copy of the blockchain, maintaining and backing up the
wallet.dat file etc! The wallet is not suitable for novice crypto-currency users!
SECURITY WARNING: Encryption of the wallet.dat file is not yet supported for Zcash. Using the wallet on a system infected with malware may result in wallet data/funds being stolen. The wallet.dat needs to be backed up regularly (not just once - e.g. after every 30-40 outgoing transactions) and it must also be backed up after creating a new Z address.
STABILITY WARNING: The GUI wallet is as yet considered experimental! It is known to exhibit occasional stability problems related to running a full Zcash node.
Specifically if the locally running
zcashd cannot start properly due to issues with the local blockchain, the GUI cannot start either!
Users need to be prepared to fix such problems manually as described in the troubleshooting guide.
Doing so requires command line skills.
AUTO-DEPRECATION WARNING: Wallet binary releases for Mac/Windows contain Zcash full node binaries. These have an auto-deprecation feature: they are considered outdated after 18 weeks and stop working. So they need to be updated to a newer version before this term expires. Users need to ensure they use an up-to-date version of the wallet (e.g. update the wallet every two months or so).
https://github.com/ZECmate/ZECmate-swing-wallet/releases or from official website https://swing.zecmate.comDownload ZECmate Swing wallet at
Building, installing and running the ZECmate Swing Wallet
For security reasons it is recommended to always build the GUI wallet program from GitHub source. The details of how to build it are described below (easy to follow).
Operating system and tools
This program supports Linux, macOS and Windows. The Linux tools you need to build and run the Wallet GUI are Git, Java (JDK8) and Ant. If using Ubuntu Linux, they may be installed via command:
user@ubuntu:~/build-dir$ sudo apt-get install git default-jdk ant
For RedHat/CentOS/Fedora-type Linux systems the command is (like):
user@centos:~/build-dir$ sudo yum install java-1.8.0-openjdk git ant
The name of the JDK package (
java-1.8.0-openjdk) may vary depending on the Linux system, so you need to check it, if name
java-1.8.0-openjdkis not accepted. If you have some other Linux distribution, please check your relevant documentation on installing Git, JDK and Ant. The commands
antneed to be startable from command line before proceeding with build.
Building from source code
As a start you need to clone the ZECmate-swing-wallet Git repository:
user@ubuntu:~/build-dir$ git clone https://github.com/ZECmate/ZECmate-swing-wallet.git
Change the current directory:
user@ubuntu:~/build-dir$ cd ZECmate-swing-wallet/
Issue the build command:
user@ubuntu:~/build-dir/ZECmate-swing-wallet$ ant -buildfile ./src/build/build.xml
This takes a few seconds and when it finishes, it builds a JAR file
./build/jars/ZECmate.jar. You need to make this file executable:
user@ubuntu:~/build-dir/ZECmate-swing-wallet$ chmod u+x ./build/jars/ZECmate.jar
At this point the build process is finished the built GUI wallet program is the JAR file
./build/jars/ZECmate.jar. In addition the JAR file
bitcoinj-core-0.14.5.jaris also necessary to run the wallet.
Installing the built ZECmate Swing Wallet
3.1. If you have built Zcash from source code:
Assuming you have already built from source code Zcash in directory
/home/user/zcash/src(for example - this is the typical build dir. for Zcash v1.2.0) which contains the command line tools
zcashdyou need to take the created JAR files and copy them to directory
/home/user/zcash/src(the same dir. that contains
zcashd). Example copy command:
user@ubuntu:~/build-dir/ZECmate-swing-wallet$ cp -R -v ./build/jars/* /home/user/zcash/src
Running the installed ZECmate Swing Wallet
It may be run from command line or started from another GUI tool (e.g. file manager). Assuming you have already installed Zcash and the GUI Wallet
/home/user/zcash/srcone way to run it from command line is:
user@ubuntu:~/build-dir/ZECmate-swing-wallet$ java -jar /home/user/zcash/src/ZECmate.jar
If you are using Ubuntu (or similar ;) Linux you may instead just use the file manager and right-click on the
ZECmate.jarfile and choose the option "Open with OpenJDK 8 Runtime". This will start the Zcash GUI wallet.
Important: the Zcash configuration file
~/.zcash/zcash.confneeds to be correctly set up for the GUI wallet to work. Specifically the RPC user and password need to be set in it like:
Creating packages with Eclipse for Windows and macOS
Inno Setup is required for windows. Create build folder and copy the content of EclipseExample into it and rename windowsExample.xml to build.xml Create a dist folder in this build folder and copy the whole folder resources from src folder into it. Additionally in this build folder create a dist folder and copy your zcashd.exe, zcash-cli.exe into it if on windows. If on macOS copy your zcashd and zcash-cli and check their permisson is 755. on macOS a change in build.xml are needed from .exe to .dmg.
This program is distributed under an MIT License.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Known issues and limitations
- Issue: ZECmate Swing Wallet is not compatible with applications that modify the Zcash
wallet.datfile. The wallet should not be used with such applications on the same PC. For instance some distributed exchange applications are known to create watch-only addresses in the
wallet.datfile that cause the GUI wallet to display a wrong balance and/or display addresses that do not belong to the wallet.
- Limitation: if two users exchange text messages via the messaging UI TAB and one of them has a system clock, substantially running slow or fast by more than 1 minute, it is possible that this user will see text messages appearing out of order.
- Limitation: if a messaging identity has been created (happens on first click on the messaging UI tab), then replacing the
wallet.dator changing the node configuration between mainnet and testnet will make the identity invalid. This will result in a wallet update error. To remove the error the directory
~/.ZECmate/messagingmay be manually renamed or deleted (when the wallet is stopped). CAUTION: all messaging history will be lost in this case!
- Limitation: Wallet encryption has been temporarily disabled in Zcash due to stability problems. A corresponding issue #1552 has been opened by the Zcash developers. Correspondingly wallet encryption has been temporarily disabled in the Zcash Desktop GUI Wallet. The latter needs to be disabled.
- Limitation: The list of transactions does not show all outgoing ones (specifically outgoing Z address transactions). A corresponding issue #1438 has been opened for the Zcash developers.
- Limitation: The CPU percentage shown to be taken by zcashd on Linux is the average for the entire lifetime of the process. This is not very useful. This will be improved in future versions.
- Limitation: When using a natively compiled wallet version (e.g.
ZECmate.exefor Windows) on a very high resolution monitor with a specifically configured DPI scaling (enlargement) factor to make GUI elements look larger, the GUI elements of the wallet actually do not scale as expected. To correct this on Windows you need to right-click on
ZECmate.exeand choose option:
Properties >> Compatibility >> Override High DPI scaling behavior >> Scaling Performed by (Application)