The Zen-node supports cold storage out of the box.
To start, install the zen-node on a secure computer, run it and then create a wallet and export the public key:
# Create a new wallet
zen-cli wallet-create PASSWORD
# Backup the mnemonic phrase
zen-cli mnemonicphrase PASSWORD
# Export the zen public key to the hot-readonly machine
zen-cli exportzenpublickey
Now on the read-only machine (which is connected to the internet) run:
# Replace the public key with the one you got from the secure machine
zen-cli importzenpublickey xpub6BfTT2Gufvz2h7j8kPXRNcyTio4RMNx1LAt9JN3SyQpmT8sBsnjLujXFqba97VEvNcipMpcPNp5P7bUroGdneVbCAXqSW787zHorRZ8e4K
# To retrieve your balance
zen-cli balance
# To get an address
zen-cli address
To send assets from the cold storage you first have to create the raw transaction. On the read-only machine run the following:
# Create a raw transaction, a new file with the hash of the transaction will be created
# 00 is the Zen asset identifier
# 1 is the amount (one kalapa)
# Replace the address with your address
zen-cli rawtx-create 00 1 zen1q3rjsrsdmyy3lmqxg7az5yvmpffflygeguljulwu476frqlruycrq5tgw4t
# Copy the created file to the Secure machine, e.g "6f3728e7de74872bd69796dac8f9964bb08a1459960ff10c308c133dd6e2f4f4.raw"
Copy the TXHASH.raw file to the secure machine and sign the file by running:
# The raw file will get updated, now with the signatures, copy it back to the readonly machine
zen-cli rawtx-sign PASSWORD 6f3728e7de74872bd69796dac8f9964bb08a1459960ff10c308c133dd6e2f4f4.raw
Back in the read-only machine, publish the transaction: