The XinFin Digital Contract (XDC) network — an enterprise-ready, hybrid blockchain ecosystem — is expanding rapidly, driven by a plethora of utility and use-cases. In the context of rising community participation, prioritizing security, privacy, and usability is emerging as a matter of utmost necessity.
Envisioning an optimally decentralized world, XinFin strives to foster steady and spontaneous adoption by SMBs, enterprises, and governmental entities. Among other things, there’s a need to make XDC-based transactions fully secured and private, and in doing so, the XinFin Web Wallet offers a novel Send Offline Functionality. In this article, we discuss the major aspects of this feature, as well as provide a step-by-step guide to offline XDC transactions.
Send Offline Functionality or SOF is a security-enhancing feature of the XinFin Web Wallet, involving two computers. One of these computers remains online, while the other has to be disconnected from the internet, either by using the Aeroplane Mode or otherwise. The offline computer processes the transaction off-chain and the online computer broadcasts the transaction to the network. As the user’s private key is used and stored on the offline computer, the process minimizes the risks involving malware and/or hacks.
Broadly, the Send Offline Functionality can be split into three parts or tasks, as enumerated below:
Step 1: Download the latest version of the wallet software from XinFin’s official GitHub channel.
The setup files are available as XDC.Wallet.vX.X.XXXX.zip (here, ‘X’ represents the version number). Make sure that you download the latest version.
After downloading the file using the online computer, transfer it first to a USB drive (or, any other storage device).
Step 2: Plug the USB drive into the offline computer, extract all the files in the zip document, and save them in your desired location. When the extraction is complete, open the destination folder and double click on the ‘index.html’ file.
After completing Step 2, your local XDC wallet will open in your browser, along with the warning that it’s unable to connect to the network. Understandably, this is normal and you need not worry. Since the wallet is offline, you won’t be able to view your XDC or other token balances from this interface. If you wish, you can perform these actions securely and publicly using XinFin’s native network explorer, namely XinFinScan.
Step 1: Once you have the offline wallet open from Task 1, make sure you select XinFin Network visible on the interface.
Step 2: Access your wallet normally, while selecting the ‘Send Offline’ option from the menu available on the left-hand sidebar. Using this feature, you can send XDC OR all Custom Tokens deployed on the XDC network.
Step 3: In the transaction-building phase, you can manually input the nonce, transaction details, receiver’s address and the gas price. Otherwise, you can import the JSON file from the connected USB drive.
To generate the nonce, visit the Send Offline Helper page using an online computer. Under the Utilities section on this interface, click on the Select Functionality dropdown menu and select Nonce. Then, type in your offline computer’s address (sender’s address) into the Address segment, which will automatically return the nonce in the relevant section.
In case you are sending to a contract, you may have to use a higher gas limit to account for the additional data.
Step 4: Click on Generate Transaction.
Step 5: Copy the long-string address under the Signed Transaction section and paste it in a text file (.txt) or you can also download the new JSON file containing the signed transaction’s details. Either way, copy the file to the USB drive, necessary for the third and final task of the process.
Step 1: Visit your XinFin Wallet (Web) from the online computer, apart from plugging the USB drive containing the signed transaction’s text file into this computer.
Step 2: In the footer section at the bottom of the page, find and choose the Send Offline Helper option to execute your offline transaction. Alternatively, you can directly visit the Simple Wallet page mentioned in Task 2, Step 3.
Step 3: Under the Raw TX Decoder section, paste the signed transaction’s address saved in the USB drive. If you wish, you can also use the QR scan option.
Step 4: Review the details of the transaction, and if everything is correct, click on Publish.
At this point, having completed each of the aforementioned steps, you will find your transaction’s hash (TX Hash) under the Status section.
Congratulations! You have successfully performed an offline XDC transaction and can verify its final status using XinFinScan.
To conclude, let us put in a word of caution. Although the protocol undergoes stringent testing, it’s advisable to begin by transacting small amounts, especially because the solution is still in its Beta phase.