Get Started
This section covers ZWallet CLI repository configuration, and installation.
System Requirements
To properly build components, you must have a machine setup with the following requirements:
Linux (Ubuntu Preferred) Version: 20.04 or Above Mac(Apple Silicon or Intel) Version: Big Sur or Above Windows : Windows 10 or Above
4 vCPU, 4 GB Memory at minimum
1 GB of space minimum for zwallet build components
Install zwalletcli
Linux Installation
Open terminal and download the latest linux zwalletcli archive release.
curl -LO https://github.com/0chain/zwalletcli/releases/download/v1.10.0/zwallet-macos.tar.gz
Extract the downloaded archive to a specified directory using the command below.
sudo tar -xzf zwallet-linux.tar.gz --directory /usr/local/bin
3. Provide execution privileges to the executable.
chmod +x /usr/local/bin/zwallet
4. Navigate to the extracted directory path.
cd /usr/local/bin
Run the zwallet executable by using the command below.
./zwallet
On successful installation you will see a help section:
Use Zwallet to store, send and execute smart contract on 0Chain platform.
Complete documentation is available at https://0chain.net
Usage:
zwallet [command]
Available Commands:
auth-register Register an authorizer manually
auth-sc-delete Deletes an authorizer to token bridge SC manually
auth-sc-register Register an authorizer to token bridge SC manually
Use "zwallet [command] --help" for more information about a command.
Windows Installation
Download the latest windows zwalletcli archive release from here.
Extract the executable from archive
zwallet-windows.zip
Run the executable
zwallet.exe
in windows command prompt.On successful installation you will see a help section similar to response below :
Use Zwallet to store, send and execute smart contract on 0chain platform.
Usage:
zwallet [command]
Available Commands:
auth-register Register an authorizer manually
auth-sc-delete Deletes an authorizer to token bridge SC manually
auth-sc-register Register an authorizer to token bridge SC manually
Note: The above response is shortened for formatting purposes. 5. Configure zwallet network
macOS Installation
Open terminal and download the latest mac zwalletcli archive release.
curl -LO https://github.com/0chain/zwalletcli/releases/download/v1.10.0/zwallet-macos.tar.gz
Extract the downloaded archive to a specified directory using the command below:
sudo tar -xzf zwallet-macos.tar.gz --directory /usr/local/bin
Provide execution privileges to the executable.
chmod +x /usr/local/bin/zwallet
Navigate to extracted directory path .
cd /usr/local/bin
Run the zwallet executable using the command below.
./zwallet
On successful installation you will see a help section similar to response below :
Use Zwallet to store, send and execute smart contract on 0Chain platform.
Usage:
zwallet [command]
Available Commands:
auth-register Register an authorizer manually
auth-sc-delete Deletes an authorizer to token bridge SC manually
auth-sc-register Register an authorizer to token bridge SC manually
Note: The above response is shortened for formatting purposes.
Building ZWallet
Building zwalletcli for WIndows
Windows 64bit (tested with Windows 11)
Installing msys2 from here.
Open MSYS2 MINGW64 shell from the windows start menu. The MINGW64 shell window will be similar to screenshot below.

Install the following libraries:
pacman -S base-devel git gcc make
Install clang, go for mingw64 and unzip
pacman -S mingw-w64-x86_64-clang mingw-w64-x86_64-go unzip
Note: Restart mingw64 shell for Go to make changes.
Set environment variables
export GOROOT=/mingw64/lib/go export GOPATH=/mingw64 export PATH=$PATH:$GOROOT/bin # use clang as a default compiler for CGO go env -w "CC=/mingw64/bin/clang.exe"
Clone zwalletcli
git clone https://github.com/0chain/zwalletcli.git
Navigate to zwalletcli and run the following command :
cd zwalletcli
make install
Download necessary dll files as zip from here.
Unzip and copy dll's to zwalletcli directory. The zwalletcli directory will be available at the following path
C:\msys64\home\<windows_username>\zboxcli
if cloned under mingw64 shell.Now run the
./zwallet
command under zwalletcli directory .
./zwallet
On a successful build you will see a help section
12. Create Wallet
Building zwalletcli for Mac and Linux
GoLang Binaries
Installation instructions for Go can be found here.
Build-Essential(For Linux Only )
The build essential package is required to build and make zwallet application. It includes the necessary GCC/g++ compilers and other essential critical libraries and utilities.
Run apt update command to update the packages.
sudo apt update
Get Build-essential package.
sudo apt-get install build-essential
Git(For Linux Only )
Git is required to retrieve and clone the Zbox repository. Install Git by using the command
sudo apt install git
1. Clone the zwallet repository using the command
git clone https://github.com/0chain/zwalletcli.git
2. Navigate to zwallet directory using
cd zwalletcli
3. Use the make install command to compile the source code.
make install
This might take couple of minutes. Sample output after successful compiling:
Start the zwallet by typing
./zwallet
On a successful build you will see a help section.
Configure ZWallet network
Configuration for the Züs network by default is stored in network/config.yaml
file of the zwallet github repo which we will copy to a new config.yaml
file in our local system .
Open terminal and make a new .zcn folder in the home directory of your system using the command below:
mkdir $HOME/.zcn
Note: For windows create a folder named .zcn at `C:\Users\<windows_username>
`path
Copy config.yaml from network directory in zwalletcli repo to
.zcn
directory.
cp network/config.yaml $HOME/.zcn/config.yaml
Open the
config.yaml
file located at$HOME/.zcn
path of your system.The contents should be similar to the file below.
---
block_worker: https://demo.zus.network/dns
signature_scheme: bls0chain
min_submit: 50
min_confirmation: 50
confirmation_chain_length: 3
max_txn_query: 5
query_sleep_time: 5
# # OPTIONAL - Uncomment to use/ Add more if you want
# preferred_blobbers:
# - http://one.devnet-0chain.net:31051
# - http://one.devnet-0chain.net:31052
# - http://one.devnet-0chain.net:31053
Zwallet connects to the Züs network using the block_worker
field. These network details are automatically fetched from the blockWorker's network API. Preferred Blobbers are also present which you can uncomment for using specified storage providers for handling your files.
Note: In case you are configuring zwallet network for setting up blockchain locally the block_worker
should be set to http://198.18.0.98:9091/
Creating a Wallet
ZWallet CLI provides a long list of commands to use. Lets begin with creation of wallet on Züs decentralized network.
For creating a wallet using ZWallet. Simply run create-wallet
command and this creates a wallet at default location~/.zcn/wallet.json
Sample Command
./zwallet create-wallet
Sample Output
wallet saved in /home/ubuntu/.zcn/wallet.json
{"client_id":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"client_key":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"keys":[{"public_key":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"private_key":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}],
"mnemonics":"xxxx xxxx xxxx xxxxx",
"version":"1.0","date_created":"2023-05-03T12:44:46+05:30","nonce":0}
Here is a sample with faucet
command which will create a wallet with test tokens at default location~/.zcn/wallet.json
To add tokens to the wallet run zwallet faucet
command.
./zwallet faucet --methodName pour --input "new wallet"
Checking the wallet balance
To check whether the wallet is successfully created, verify the token balance in zwallet using
./zwallet getbalance
Note that by default zwallet checks balance for the wallet specified in wallet.json
file located in the zcn folder in linux home directory.
Successful Response for ./zwallet getbalance
command:
Balance: 1 (1.17 USD)
Getting tokens into the wallet
If getting Get balance failed.
error when running ./zwallet getbalance
command. Run the ./zwallet faucet --methodName pour --input "{Pay day}"
command and then check the balance again.
The faucet
command will get test tokens into the wallet for transactional purposes and make the wallet usable. Successful Response of the faucet
command:
Execute faucet smart contract success
Now you have a wallet with available ZCN tokens, which can be used with 0chain blockchain and decentralized storage services.
Last updated