Published in


Send Offline Functionality (SOF): A Secure Way to Transact XDC Coins

Step-by-step guide to offline XDC transactions.

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.

What is Send Offline Functionality (SOF)?

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.

Hardware Requirement

  • Computer 1 (Offline): This computer has to be used after complete formatting and re-installation of the OS, apart from completely disabling the network card.
  • Computer 2 (Online): This computer shall be connected to the internet. Consequently, it must have updated antivirus and internet security solutions installed.
  • USB Drive: A fresh USB drive is to be used, dedicated solely to the purpose of transacting XDC offline.
  • Camera (Optional): Although optional, one might use a camera for scanning QR codes.

Transacting XDC Offline: A Three-Part Process

Broadly, the Send Offline Functionality can be split into three parts or tasks, as enumerated below:

Task 1: Downloading and running the offline (local) XDC wallet.

Task 2: Generating the transaction on the offline computer.

Task 3: Sending the transaction using the online computer.

Task 1: Download & Run the Offline XDC Wallet

Step 1: Download the latest version of the wallet software from XinFin’s official GitHub channel.

The setup files are available as (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.

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.

Task 2: Generate the Offline Transaction

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.

Task 3: Send the Transaction Using XinFin Web Wallet

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. Apart from the native wallet mentioned above, users can also perform offline transactions using other XDC wallets.

Useful Links



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store