Zen Protocol Documentation
WebsiteTelegramBlogForum
  • Zen Protocol Docs
  • Apps
    • Headless Full Node
      • Full Node NPM Package
      • Build from Source
      • CLI
      • API
        • Wallet
        • Contracts
        • General
        • Blockchain
        • AddressDB
      • Deploy
        • Systemd
        • Shell script
        • Docker
      • Technical Model
      • AddressDB
    • Wallet
      • Desktop Wallet
        • Installers
      • Web Wallet
        • Run Locally
      • Wallet User Guide
        • Connect a Wallet
          • Create a Wallet
          • Import a Wallet
          • Watch Mode
        • My Wallet
          • Navigation Bar
          • Portfolio
          • Receive
          • Send / Execute
          • Transaction History
        • Contracts
          • Active Contracts
          • Execute a Contract
            • Message Body Field
          • Extend a Contract
          • Activate a Contract
        • Voting
          • Common Goods Pool
            • Generating a Ballot ID
          • Governance
        • Signer
        • Settings
          • Account Settings
          • Node Connectivity
      • Deprecated Desktop Wallet
        • Executable Installers
        • Wallet Structure
          • Video Tutorials
    • Explorer
    • Zen.js
      • Payment Processing
    • Oracle
      • Oracle GUI
      • Oracle Service
      • Oracle's API
      • Deploy
        • Systemd
        • Docker
      • How the Oracle contract works
      • How to create an Attestation token
    • Dex
      • Dex User Guide
        • Traded Pairs
        • Search Pairs
        • Order Book
        • Operations
        • My Wallet
        • Settings
      • How DEX contract works
    • Fixed Payout
      • Fixed Payout Generator User Guide
        • Issue
        • Redeem
        • Cancel
        • Verify
        • Settings
      • How the FP Contract works
      • How are the asset named?
  • Smart Contracts
  • Contract Structure
  • Contract Cost
  • Contract Activation
  • Contract Examples
  • Smart Contracts SDK
  • Contracts Language ZF*
  • Named Token Tutorial
  • Consensus
  • Common Goods Pool
  • Block Validation
  • Transaction Validation
  • Serialization
  • Use Cases
    • Create Unsigned Transaction
    • Secure Sign Transaction
    • Cold Storage using Full Node
  • Troubleshooting
    • Responsible Disclosure
    • Bug Bounty
    • Known Bugs
  • For Miners
    • Pools
    • GPU Mining
    • GPU Bounties
  • Check Crowdsale Contribution
  • Alpha call option
Powered by GitBook
On this page
  • Cold Storage
  1. Use Cases

Cold Storage using Full Node

Cold Storage

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:

zen-cli rawtx-publish 6f3728e7de74872bd69796dac8f9964bb08a1459960ff10c308c133dd6e2f4f4.raw

PreviousSecure Sign TransactionNextResponsible Disclosure

Last updated 1 year ago

You can also generate unique addresses from the read-only wallet, to do so make sure to read the page.

payment processing