The First-Ever NEM Cold Offline Wallet

As we go over this article, new and revolutionary idea in cryptocurrencies and blockchain technology will be introduced.

A cold wallet is an offline wallet that is internet-inaccessible, while a hot wallet is an online wallet that can send and receive assets. Together, these make for a secure and reliable storage. Thanks to NEM’s powerful APIs and tiered architecture, designed from the ground up with 100% new code, users can now have the security of having an offline cold storage, and send and receive XEM at the same time.

Why is it a big deal?

The prominent rise of cryptocurrencies has increased interest in investments, which means security is a main focus in establishing and gaining the trust of investors. The blockchain technology was created with this in mind–overall control of your private keys.

NEM, with its firm hold of the top 10 spot via market capitalization, has always provided an easy and intuitive way of connecting to its blockchain for both developers and users in strengthening their security. To achieve this, “air-gapping” the wallet is implemented. Essentially, it means that the wallet will not connect to the internet or to other devices, but will still still be able to send and receive cryptocurrencies.

What is an “air-gap”?

An air-gap is also a “cold storage.” The idea is to have two separate devices: one that will always be offline, and another that will connect to the internet. Simply put, you will be splitting your transactions: the creation and signing will be done on the offline device, while the broadcasting will be on the online device. (Needless to say, you must keep your private keys on the offline device.)

This theory has been around for some time, but NEM is currently offering this experimental app without the need to buy additional hardware. Note, however, that this Proof-of-Concept app must be used with caution and NEM will not be responsible for any loss of funds while using the app.

How was it developed?

(This might be too technical for the regular reader. To learn more about how to use the Hot/Cold Wallet, jump to the next section.)

Create-sign app (Cold)

Ionic framework was used to build both apps for cross-platform compliance. The nem-SDK also contributed to this process as it was broadly used for this app that is available on npm via npm install nem-SDK.

For the creation-signing app, the following were needed:

  • Scan mobile account QR
  • Decode QR and wallet to retrieve private key
  • Use obtained private key to create and sign transaction
  • Generate QR

Below are snips for decrypting a wallet. And here is the full code for Decoding QR and Decrypting a Wallet.


Thereafter, a QR code will be generated which will then be scanned by the broadcast app.

Broadcast app

Broadcast bit is obviously for broadcasting the transaction. It will scan the generated QR code from the cold wallet, which will then be broadcasted to the blockchain by making a post request to the given endpoint.

Here is a list of available end-points on NEM mainnet nodes. And here is the entire code repo up on GitHub.

How do I use the Hot/Cold Wallet?

You will need a completely cold wallet environment. As discussed in the beginning of this article, you will need two smartphones, one with internet connection and one with none at all. An alternative is to download an offline OS/Android/NanoWallet app, but be sure to back everything up before moving the wallet to the Transaction Signer app.

It is best to use an unrooted phone with a newly-installed OS for the Transaction Signer app. Let it be on airplane mode and never turn it off. Failure to follow this precaution will nullify the security provided by the Offline Signer app.

Install the Transaction Broadcast app on the phone that will connect to the internet, and the Transaction Signer app on the one that will stay offline.

For added security in transferring your funds, you can opt to use the paper wallet. For this part, we will create a paper wallet, if possible, on a PC that doesn’t have an internet connection. This will strengthen our cold wallet approach. To start, download the paper wallet generator app and follow these instructions:

  • The QR code on the left has account address information of NEM that can be openly shared with anyone. Funds will be credited by remitting to this address.
  • The QR code in the upper right has information on the private key encrypted with the password. Both the NanoWallet and smartphone apps have the same structure as QR, which contains the private key.
  • The lower right QR code is the private key itself. A general QR code reader can read the secret key string itself.
How do I withdraw funds from the Cold wallet?

Launch the NEM Hot/Cold Wallet on the phone that will not connect to the internet. This will sign your transactions offline.

Scan Wallet QR – scan the QR code in the upper corner of the paper wallet, this contains your private key.

Manual Entry – manually enter the destination address/remittance amount/message/private key. You can also scan a prepared invoice QR code, which can be easily made in NanoWallet or Android/iOS NEM apps available at nem.io.

You will be asked to enter the password to decrypt and obtain the private key. The QR reader will open after. Scan the QR code and enter the private key of the provided wallet, as seen in the image below:

In the image above, you can see that the private key is automatically filled upon successful decryption. If you have a prepared invoice QR, you can hit Scan Invoice. Your ‘NEM address,’ ‘Amount,’ and ‘Message’ fields will be automatically filled. After completing all the required fields, you can now press Sign Transaction.


A new page will appear after signing in. It contains the eventual QR code that should be broadcasted to the network. Using your smartphone connected to the internet, launch the Transaction Broadcast to scan the code.

Transaction Broadcast app

Press the Scan QR Code and scan the generated QR code in NEM Hot/Cold Wallet app on your offline phone. Once scanned successfully, the Broadcast button will now be available and transaction can now be broadcasted to the NEM network.


This message will appear after a successful broadcast.

It will also prompt an error message if you have insufficient funds.

That’s how you receive and send from an offline wallet, the NEM Hot/Cold Wallet. Remember to take safety precautions to guarantee the security of every transaction.

Reference: NEM Blog

 


Coin Sessions PH envisions to provide series of seminars and talks about Blockchain and cryptocurrencies nationwide. To receive updates of upcoming events, please follow Coin Sessions PH Facebook page.