Zcash

Zcash

BitGo supports transparent transactions with the latest Zcash network upgrade, Sapling. This means only Sapling compatible transactions will be generated and read by BitGo. To sign Sapling transactions, BitGo SDK version 9.2.0 or greater is required.

Zcash can be accessed with the following coin types:

EnvironmentCoin TypeFaucet
Zcash Productionzec
Zcash Testnettzechttps://faucet.testnet.z.cash/

Notes on shielded transactions

Only transparent addresses are supported by BitGo wallets which limits the type of transactions allowed. A Zcash BitGo wallet can receive funds from a transparent or a shielded address but can only send funds to a transparent address.

Generating wallets

1 2 3 4 5 6 7 8 9 10 11 bitgo .coin('tzec') .wallets() .generateWallet({ label: 'My Test Wallet', passphrase: 'secretpassphrase1a5df8380e0e30', }) .then(function (wallet) { // print the new wallet console.dir(wallet); });
1 2 3 4 5 6 7 8 LABEL="My Test Wallet" PASSPHRASE="secretpassphrase1a5df8380e0e30" curl -X POST \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -d "{ \"label\": \"$LABEL\", \"passphrase\": \"$PASSPHRASE\" }" \ http://$BITGO_EXPRESS_HOST:3080/api/v2/tzec/wallet/generate

Creating addresses

1 2 3 4 5 6 7 8 9 10 11 bitgo .coin('tzec') .wallets() .getWallet({ id: '585c51a5df8380e0e3082e46' }) .then(function (wallet) { return wallet.createAddress(); }) .then(function (newAddress) { // print new address details console.dir(newAddress); });
1 2 3 4 5 WALLET=585c51a5df8380e0e3082e46 curl -X POST \ -H "Authorization: Bearer $ACCESS_TOKEN" \ https://app.bitgo-test.com/api/v2/tzec/wallet/$WALLET/address

You can view address types and their Chain Codes. Zcash defaults to chain 0 and doesn't support SegWit address types.

Balances

Zec (ZEC) is the native asset of the Zcash blockchain. The base unit of ZEC is zatoshi:

  • 1 zatoshi is (10-8) or 0.00000001 Zec.
  • 1 ZEC is (108) or 100000000 zatoshis (100 million).

Balances are supported in string and number format but string is recommended to ensure values do not exceed the programmable number limit: balanceString, confirmedBalanceString, and spendableBalanceString.

Sending Transactions using BitGoJS or BitGo Express

Zcash blockchain parameters update with each hard fork, and this means an updated version of BitGoJS or BitGo Express is required to successfully sign and send transactions using the new blockchain parameters.

For the current Zcash blockchain parameters, the minimum supported versions for sending Zcash are BitGoJS 9.2.0 or greater, and BitGo Express 9.2.0 or greater.

If an SDK version is detected which does not support the current blockchain parameters, an UnsupportedSdkVersion error will be returned when attempting to build or send transactions.