Zen-node support cold storage out of the box.
To start, install zen-node on a secure computer, run it and then create a wallet and export the public key:
# Create a new walletzen-cli wallet-create PASSWORD# Backup the mnemonic phrasezen-cli mnemonicphrase PASSWORD# Export the zen public key to the hot-readonly machinezen-cli exportzenpublickey
Now on the read-only machine (which connected to the internet) run:
# Replace the public key with the one you got from the secure machinezen-cli importzenpublickey xpub6BfTT2Gufvz2h7j8kPXRNcyTio4RMNx1LAt9JN3SyQpmT8sBsnjLujXFqba97VEvNcipMpcPNp5P7bUroGdneVbCAXqSW787zHorRZ8e4K# To retrieve your balancezen-cli balance# To get an addresszen-cli address
You can also get a unique address from the readonly wallet, make sure to read the payment processing page.
To send tokens from the cold storage you first have to create the raw transaction. On the readonly 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 addresszen-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 machinezen-cli rawtx-sign PASSWORD 6f3728e7de74872bd69796dac8f9964bb08a1459960ff10c308c133dd6e2f4f4.raw
Back in the readonly machine, publish the transaction:
zen-cli rawtx-publish 6f3728e7de74872bd69796dac8f9964bb08a1459960ff10c308c133dd6e2f4f4.raw