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 walletzen-cliwallet-createPASSWORD# Backup the mnemonic phrasezen-climnemonicphrasePASSWORD# Export the zen public key to the hot-readonly machinezen-cliexportzenpublickey
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 machinezen-cli importzenpublickey xpub6BfTT2Gufvz2h7j8kPXRNcyTio4RMNx1LAt9JN3SyQpmT8sBsnjLujXFqba97VEvNcipMpcPNp5P7bUroGdneVbCAXqSW787zHorRZ8e4K
# To retrieve your balancezen-clibalance# To get an addresszen-cliaddress
You can also generate unique addresses from the read-only wallet, to do so make sure to read the payment processing page.
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 addresszen-clirawtx-create001zen1q3rjsrsdmyy3lmqxg7az5yvmpffflygeguljulwu476frqlruycrq5tgw4t# 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-clirawtx-signPASSWORD6f3728e7de74872bd69796dac8f9964bb08a1459960ff10c308c133dd6e2f4f4.raw
Back in the read-only machine, publish the transaction: