💸 A Perl module for connecting to Zcash nodes via JSON-RPC
Clone or download
Pull request Compare This branch is 15 commits ahead, 3 commits behind whindsx:master.
Failed to load latest commit information.
ex z_getnewaddress Mar 6, 2018
lib/Zcash/RPC s/bitcoind/zcashd/ Mar 23, 2018
t adjustments for zcash Mar 6, 2018
.gitignore gitignore Mar 6, 2018
.travis.yml Added Travis config file. Aug 7, 2017
LICENSE artistic 2_0 Mar 23, 2018
MANIFEST new META Apr 19, 2018
META.json new META Apr 19, 2018
Makefile.PL adjustments for zcash Mar 6, 2018
README.md metacpan Jul 3, 2018


Zcash::RPC::Client - Zcash Payment API client as a Perl module

Build Status CPAN

This module is a pure Perl implementation of the methods that are currently part of the Zcash Payment API client calls (zcash-cli). The method names and parameters are identical between the Zcash Payment API reference and this module. This is done for consistency so that a developer only has to reference one manual: https://github.com/zcash/zcash/blob/master/doc/payment-api.md

Currently tested against Zcash v1.0.14 but should work with earlier versions.


use Zcash::RPC::Client;

# Create Zcash::RPC::Client object
$zec = Zcash::RPC::Client->new(
	user     => "username",
	password => "p4ssword",

# Zcash supports all commands in the Bitcoin Core API
$getinfo = $zec->getinfo;
$blocks = $getinfo->{blocks};

# Return the total value of funds stored in the node’s wallet
$z_gettotalbalance = $zec->z_gettotalbalance;
# Output:
# {
#   "transparent" : 1.23,
#   "private" : 4.56,
#   "total" : 5.79
# }
print $z_gettotalbalance->{total};
# 5.79

# See ex/example.pl for more in depth JSON handling:
#     https://github.com/Cyclenerd/Zcash-RPC-Client/tree/master/ex


$zec = Zcash::RPC::Client->new( %options );

This method creates a new Zcash::RPC::Client and returns it.

Key Default
user undef (Required)
password undef (Required)
cookie undef
port 8232
wallet undef
timeout 20
ssl 0
verify_hostname 1
debug 0

host - Address listens for JSON-RPC connections

user and password - User and Password for JSON-RPC api commands

cookie - Absolute path to your RPC cookie file (.cookie). When cookie is defined user and password will be ignored and the contents of cookie will be used instead.

port - TCP port for JSON-RPC connections

wallet - Work against specific wallet.dat file when Multi-wallet support is enabled

timeout - Set the timeout in seconds for individual RPC requests. Increase this for slow zcashd instances.

ssl - OpenSSL support has been removed from the Bitcoin Core and Zcash project. However Zcash::RPC::Client will work over SSL with earlier versions or with a reverse web proxy such as nginx.

verify_hostname - Disable SSL certificate verification. Needed when zcashd is fronted by a proxy or when using a self-signed certificate.

debug - Turns on raw HTTP request/response output from LWP::UserAgent.



perl Makefile.PL
make test
make install


cpanm Zcash::RPC::Client

CPAN shell

perl -MCPAN -e shell
install Zcash::RPC::Client


  • Moo
  • JSON::RPC::Legacy::Client


  • Boolean parameters must be passed as JSON::Boolean objects E.g. JSON::true


Zcash is based on Bitcoin. Zcash supports all commands in the Bitcoin Core API (as of version 0.11.2). This module is a fork of the Bitcoin JSON-RPC client.

Bitcoin::RPC::Client is developed by Wesley Hinds. This Zcash fork is mantained by Nils Knieling.