COVID-19 outbreak has become a global pandemic in recent months. The epicenter of the outbreak has moved from China to Europe and then the US. It has sickened hundreds of thousands of people and caused ten of thousands of deaths.
The coronavirus pandemic has highlighted many of the applications for blockchain technology. For example, Blockchain technology has been proposed as the most efficient means through which the United States’ stimulus package could be distributed.
On the other hand, the Chinese government has deployed blockchain in numerous applications to assist its efforts to fight COVID-19, using DLT to track the virus’ spread, medical records, and the distribution of medical supplies and charity donations.
To fight the outbreak, WHO has launched a DLT platform for sharing data pertaining to the COVID-19 Pandemic. In addition, some companies and non-profit organizations have also launched blockchain-based projects to counter the outbreak of COVID-19. Let’s examine a few of the aforementioned initiatives :
WHO
WHO has launched the blockchain-based platform know as MiPasa to fight COVID-19. The platform will enable “early detection of COVID-19 carriers and infection hotspots. It was built on top of the Hyperledger Fabric. Hyperledger Fabric is an open-source enterprise-grade permissioned distributed ledger technology (DLT) platform.
The MiPasa platform was co-developed by MiPasa, IBM, Oracle, Hacera and Microsoft. It aims to facilitate fully private information sharing between individuals, state authorities and health institutions.
MiPasa is a verifiable information highway that allows cross-references siloed location. Furthermore, health data is stored on the platform to obtain global insights while ensuring patient privacy. Besides that, MiPasa is will host an array of publicly accessible analytics tools too.
SNARK HEALTH
Snark Health is a platform that connects patients, doctors, insurers, and donors for health care services, private data sharing and payments via the blockchain technology.
To combat COVID-19, SNARK is building a framework for data-driven discussions and shared learnings to help people have a greater impact at their respective local, state, national level in collaboration with their organizations and governmental agencies. It aims to enable more rapid dissemination of information to improve patient outcomes.
The goal of this project is to facilitate the exchange of knowledge, best practices, and lessons learned to support the people and organizations that are tasked with problem-solving at the local level across the globe. According to SNARK, there remain many unanswered questions in regards to the clinical, operational and financial aspects of the COVID-19 pandemic. Through the process of answering these critical questions, the new framework could lay the foundation for global triage support, improved access to health care services and clinical research.
BINANCE
Binance’s Blockchain-powered donation platform Binance Charity has initiated a $5 million coronavirus relief campaign At the time of writing this article, its “Crypto Against COVID” campaign has received 24 donations, amounting to a total of 160.6306 BTC. A wallet has been set up for public donations, which can be made in BNB, BTC, BUSD, and XRP. Besides that, Binance will make an upfront donation of $1 million in BUSD, which will be converted to fiat and used to purchase supplies to send to hospitals in affected countries.
In addition, Binance will also match donations up to $1 million. Furthermore, the company will donate $1 for every retweet of its #CryptoAgainstCovid posting and will donate an additional $1 million if the number of retweets reaches 1 million within seven days.
As of March 20 this year, Binance Charity has delivered a number of coronavirus aid products to over 300 hospitals and medical teams in multiple provinces and cities, including Hubei, Sichuan, Guangxi, and Shanghai. The items delivered include 366,000 pairs of gloves, 56,800 masks, 9 sterilizers, 173 barrels of disinfectant, 5,280 bottles of hand sanitizers, 20,000 testing kits, 7,850 protective suits, 20,000 pairs of goggles, 388 oxygen concentrators, and 1000 germicidal lamps.
Hashcash Consultants
Hashcash Consultants has launched the Corona Fund Index Cryptocurrency (CFIX), a coronavirus relief initiative involving cryptocurrency.
This global software firm promised that 90% of trading fees derived from CFIX will be diverted to its Corona Relief Fund. The fund will be donated to various non-profits and organizations that are actively combating the global COVID-19 pandemic crisis.
After the craze of ICOs subsided, two new crypto crowdfunding methods emerged, namely the Security Token Offering (STO) and the Initial Exchange Offering (IEO). Among the two, IEO is more popular as STO poses a higher barrier of entry, is more expensive, and is subjected to more stringent regulations by the securities commission.
In a recent article, Reuters reported that IEOs have raised $1.5 billion so far in 2019, compared with just $836 million raised from ICOs. A dozen of amazingly successful cases of IEOs have driven more project owners to embark on their own IEO journeys. Famous IEO cases include the sale of the BitT Torrent (BTT) token on the Binance Launchpad, raising $7 million in just the first 14 minutes of the sale opening. Veriblock did even better, raising $7 million in April through an IEO on the Bittrex exchange in just 10 seconds. A truly amazing feat! It is safe to say that IEO has taken over ICO as the preferred choice of fundraising in the cryptocurrency industry.
What is IEO?
According to Binance, an Initial Exchange Offering (IEO) is a fundraising campaign that is administered by a Crypto Exchange Platform. An IEO allows investors to purchase a new cryptocurrency (or token) while raising funds for its crypto project.
Though ICOs and IEOs both raise funds through token sales, the way they sell tokens is different. For ICOs, the project team themselves conduct the fundraising campaign. Meanwhile, IEO fundraising is conducted on a crypto Exchange platform, where the users of the Exchange can buy tokens with funds directly from their own exchange wallet.
Advantages and disadvantages of IEO
Advantages
INCREASED INVESTOR CONFIDENCE
Investors are more confident in investing in IEO tokens as the project has to undergo stringent KYC/AML checks by the Exchange platform that handles the IEO projects. The Exchange platform will also evaluate the business model of the project and also audit its technical infrastructure, including its blockchain system and smart contracts. Therefore, many scam projects will be filtered and eliminated. The Exchange platform acts as a trusted third party that can reduce considerable risk in crypto investment.
WIN-WIN FOR THE PROJECT OWNER AND THE EXCHANGE
For the project owner, it is a cheaper and easier way to raise the necessary funds for the project, while not embarking on long marketing campaigns and roadshows. The token is also listed on the Exchange immediately after the IEO campaign.
For the Exchange, conducting an IEO means more revenue for them. An Exchange that hosts an IEO will typically charge a fee for the campaign and get a cut from the token sales. They also get fees when the token starts trading on their exchange.
Disadvantages of IEO
AMBIGUOUS REGULATIONS AND RESTRICTIONS
Many countries still ban or restrict fundraising activity in the cryptocurrency industry while some countries impose stringent regulations on crypto activities. Therefore, it is still uncertain whether IEO will be fully accepted and recognised as the legal way of fundraising in the crypto industry.
ALL INVESTORS SUBJECTED TO STRINGENT AML/KYC
While a stringent KYC/AML check for the project can increase investor confidence, some individuals may be reluctant to expose their identities, so going through a stringent AML/KYC procedure may deter these people from investing in the IEO project.
LIMITED NUMBER OF TOKENS
There have been many complaints from investors that not everyone manages to purchase tokens during IEOs as the number of tokens available for sale is usually limited.
BOTTING CONCERNS
Using bots for trading and investing is ubiquitous nowadays. In the crypto space, there are concerns about bots that can be programmed to participate in IEOs and beat out human investors. In such a scenario, all parties lose out.
How to Conduct an IEO?
Although an IEO is a promising method for fundraising, especially for startups that don’t have the resources and expertise to do an IPO, it is by no means an easy feat. The project owner needs to plan and make the necessary preparations before embarking on the IEO initiative. The following are suggested steps that a project has to follow before going IEO.
DESIGN THE BUSINESS MODEL
Before embarking on an IEO campaign, the founding members of the project must have a clear vision of what their business wants to achieve. They also have to design a business model and draw up plans to attain the vision.
ASSEMBLE A FORMIDABLE TEAM
In this internet era where information is readily available, potential investors and Exchanges will know instantly the background of the project team members. If the project team comprises mostly inexperienced people, it will seriously affect the confidence of the investors and the Exchanges. Therefore, the project owner needs to assemble a formidable team that comprises experts in business, legal, technology, marketing, and other related disciplines. As most IEO projects are blockchain-based, it is a must to hire blockchain experts.
PREPARING THE WHITEPAPER AND OTHER DOCUMENTS
The whitepaper is a document that comprises a thorough description of the project, distribution of tokens, business model, tokenomics and more. It also includes information about the project team which usually comprises the board members, the marketing team, the technical team, the legal team, and the advisers.
Writing the whitepaper is a very important step in the IEO campaign. It is an important document that showcases the project. Whether the investors will be impressed and looking forward to investing in the project depends on how well the paper is written.
Besides the whitepaper, the project team should also prepare a one-pager, website, pitch decks, social media pages and more. These are the components that contain the primary source of knowledge about the project for potential investors and Exchanges to evaluate the IEO project.
DEVELOP THE TOKEN
The token is an integral part of the IEO project. Without a native token, what can you sell to the investors? Therefore, it is crucial to design the token from day 1, and start developing it as soon as possible.
Most tokens for IEO projects are ERC20 tokens. The ERC20 standard is chosen because it can be easily designed and deployed to the Ethereum main net. However, if you want a customized token and your team has the expertise and programming skill, you can develop a different protocol from the Ethereum main net, or even develop your own blockchain system.
To mint the ERC20 token, the blockchain developers need to write a robust smart contract and have it tested and also audited by a trusted third party contract auditor to ensure the contract is secure and free of bugs. The audited token can then be deployed to the Ethereum main net or a private network.
MARKETING
The project team needs to carry out an aggressive marketing campaign for its IEO initiative in order to broadcast the news to as many investors as possible. The marketing campaign can be conducted through websites, blogs, as well as social media platforms such as Facebook, Twitter, WhatsApp, WeChat and more. They can also organise events and conferences to promote their token but they need to check whether these activities can be conducted in certain countries. For example, you cannot do so in Malaysia and China.
ENGAGE A CRYPTO EXCHANGE
The project team also needs to sign an agreement with a crypto Exchange to start their IEO campaign. They need to conduct due diligence in searching for a trusted Exchange before deciding to engage one. A good guide is to look for Exchanges that rank within the top 50 on Coinmarketcap. Besides, they need to analyze reviews of the Exchanges on various crypto platforms. IEO fees may also be another concern, as a top rank Exchange may charge an extremely high fee. Therefore, there is always a trade-off between the fee and the reputation of the Exchange.
Final Note
IEO has replaced ICO as the new trend in fundraising in the crypto industry. Investors who are still thinking of the good old days of ICO should start changing their mindset and focus on investing in IEO projects instead. On the other hand, startups or enterprises who wish to raise funds in the crypto industry must realize that ICO is already dead and IEO is the way to go. Lastly, more exchanges should create IEO launchpads to assist projects that wish to raise funds through IEO, as this is an untapped niche with immense potential.
You can develop your very own cryptocurrency using your laptop that runs Windows operating system. This article a step by step guide for newbies to easily developing and deploying a token using the sample code provided by the Truffle framework. Truflle is a world-class development environment, testing framework and asset pipeline for blockchains using the Ethereum Virtual Machine (EVM).
This is a step-by-step guide for developing an Ethereum-based cryptocurrency on Windows.
To start the project, we need to set up a development environment with the following requirements:
A code editor
Source control
Unit tests
Debugging
For code editor, we use Visual Studio code for the following reasons:
VS Code integrates very well with Git for source control. Git is currently the best choice for source control.
VS Code works well with Truffle framework that manages unit tests.
VS Code works well with Truffle for debugging
Besides that, Visual Studio code is a great tool for editing Solidity smart contracts and is available on Windows, Mac & Linux.
I. Installation of the Packages
Step1: Install Chocolatey
Launch PowerShell as administrator. In PowerShell, enter the following command:
Set-ExecutionPolicy Bypass
*The Set-ExecutionPolicy changes the user preference for the Windows PowerShell execution policy.*Bypass-Nothing is blocked and there are no warnings or prompts. This execution policy is designed for configurations in which a Windows PowerShell script is built in to a a larger application or for configurations in which Windows PowerShell is the foundation for a program that has its own security model. * Why Chocolatey-“You’ve never deployed software faster than you will with Chocolatey.” -Rob Reynolds. Chocolatey is a software management automation.
Install Chocolatey by entering the following code:
*https://chocolatey.org/docs/installation *iex-invoke expression-The Invoke-Expression cmdlet evaluates or runs a specified string as a command and returns the results of the expression or command. Without Invoke-Expression, a string submitted at the command line would be returned (echoed) unchanged.
*A cmdlet (pronounced “command-let”) is a lightweight Windows PowerShell script that performs a single function.
* https://chocolatey.org/install.ps1 downloads the Chocolatey installation zip file, unzips it and continues the installation by running a scripts in the tools section of the package.
After installation completed, close and reopen PowerShell as administrator again.
Step 2 Install Visual Studio Code, Git and Node.js
*As an asynchronous event driven JavaScript runtime, Node is designed to build scalable network applications. In programming, asynchronous events are those occurring independently of the main program flow. Asynchronous actions are actions executed in a non-blocking scheme, allowing the main program flow to continue processing
Close and reopen PowerShell before proceeding to the next step
Step 3 Install Truffle Framework
Truffle is a world class development environment, testing framework and asset pipeline for Ethereum, aiming to make life as an Ethereum developer easier
You can check the version of installed packages with the following code:
node -v
npm -v
truffle --version
The output is as shown in Figure 1.
II. Configuring VS Code for Ethereum Blockchain Development
Step 1 Choose the folder for your project
Choose a folder you prefer for your project and enter the following code:
mkdir TruffleTest; cd TruffleTest; code .
The final command in the chain is “Code .”, which opens an instance of Visual Studio Code in the folder from which the command is executed.
Step 2 Install Solidity in the VS Code IDE
In the VS Code IDE, search for Solidity and install it
Step 3 Install Material Icon Theme
In the VS Code , install Material Icon Theme
Now you have the VS integrated with PowerShell IDE for Ethereum Blockchain development.
III. Creating a Blockchain Application
We will create a sample cryptocurrency and a smart contract using the built-in sample MetaCoin in Truffle. Now, download the files that can be compiled and deployed to a simulated blockchain using Truffle.
The code is
truffle unbox metacoin
The output should looks as shown in Figure 2.
After downloading Truffle metacoin, we should be able to view two important application files written in Solidity, MetaCoin.sol and ConvertLib.sol, in Figure 3.
* Solidity is a contract-oriented, high-level language for implementing smart contracts. It was influenced by C++, Python and JavaScript and is designed to target the Ethereum Virtual Machine (EVM).
*the Ethereum Virtual Machine is designed to serve as a runtime environment for smart contracts based on Ethereum.
These two files can be compiled and deployed to a simulated blockchain using Truffle.
To compile the smart contract, using the following command
truffle compile
*Or use truffle.cmd compile if there is error as shown in Figure 4.
After compilation completed, You will notice that a ‘build’ folder has been added to the list of files, which contains the compiled json files ConvertLib.json, MetaCoin.json, and Migrations.json, as shown in Figure 5.
IV Deploying the Contract
To deploy the contract, we shall migrate the contract to a test network in truffle development environment.
The ‘develop’ command appears in the Truffle development console environment. This will set up a kind of dummy blockchain, that operates similarly to the real Ethereum blockchain, and allows us to test deployment and execution of the code without needing to interface with an actual blockchain.
To compile the contract, key in the following command
truffle develop
This command will launch the truffle development environment, automatically configured with 10 accounts and keys. The output is as shown in Figure 6.
To deploy the compiled contract to the Truffle environment, enter the following command:
migrate
This will deploy the contracts to the test environment. The output is as shown in Figure 7.
To test the contract, enter the following command
test
You will see the output as shown in Figure 8.
To exit the Truffle console, type ctrl+D
To reenter the Truffle console, enter the following code
truffle develop
migrate --reset
test
V Interacting with the contract with Web3
We have deployed and test the contract, now let’s do something with the contract. We will need to use the Web3 framework to interact with the smart contract on the Ethereum blockchain. Web3 is a JavaScript library which is bundled into the Truffle development console.
When the Truffle development console is started, it automatically configures 10 addresses, and assigns each of the addresses 100 Eth. You can check the ten available addresses by entering the following code:
web3.eth.accounts
The output is as shown in Figure 9.
You can display individual account using the following syntax
web3.eth.accounts[n]
For example, enter the following code to see the output
web3.eth.accounts[2]
The output is as shown in Figure 10.
Functions in the MetaCoin.sol file
There are four functions in the MetaCoin.sol file, as follows:
MetaCoin, the constructor. It is called when the contract is deployed.
sendCoin, for transferring coins between addresses.
getBalanceInEth, to convert between MetaCoins, and Ethereum.
getBalance, to show the balance in the requested address.
* A constructor is a special method of a class or structure in object-oriented programming that initializes an object of that type. A constructor is an instance method that usually has the same name as the class, and can be used to set the values of the members of an object, either to default or to user-defined values.
The constructor MetaCoin comprises only one line
balances[tx.origin] = 10000;
*You can change this to any amount
This code initialises the transaction to 10000 MetaCoin(Not Eth)
The initial address is
Web3.eth.accounts[0]
Checking Balance using the getBalance() method
You can check the balance of any account using the following code
The check whether the transaction is successful , we can check the balance of both accounts. (Note that this is the MetaCoin balance, NOT the Eth balance)
In the sendCoin() example, a transaction has occurred on the blockchain. This transaction can be stepped through line by line, using the Truffle debugger. To do this , the Truffle debug command is used, passing in the transaction hash. This hash can be found in the console output following the sendCoin function call.
This will start the Truffle debugger. The instructions for interacting with the debugger are printed to the console, as shown in Figure 17.
You should start by adding a watch to the passed variables. do this by entering the following command:
+: receiver
+: amount
As you step through the code, the values passed into the function will be shown. Note, these are ‘undefined’ at the start of the function call.
You can press the enter key a few times to step through the code that was executed in this transaction. The output is as shown in Figure 18.
The debug commands can be used to inspect the variables, and add watched variables, as shown in Figure 19.
You can try to enter other commands.
Lastly, type quit to quit debugger
Deploying Your MetaCoin Contract with Truffle
Deploy to Ganache
Ganache is your personal Ethereum blockchain which is convenient for testing and interacting with your contracts during development. It ships with a helpful GUI that allows you to see available test accounts quickly, explore transactions, read logs, and see how much gas was consumed. Configure your truffle.js and truffle.config.js for the Ganache network:
module.exports = {
networks: {
ganache: {
host: "127.0.0.1",
port: 7545,
network_id: "*" // matching any id
}
}
};
Launch Ganache
In the Truffle console, enter the following command:
truffle migrate --network ganache
The output is as shown in Figure 20.
Ganache output is as shown in Figure 21.
Click transaction and compare the transaction hash. They are the same.
Deploy to Ropsten
Run a node connected to Ropsten and specify the address of the default (first) account to unlock. You will be prompted for a passphrase.