With new coins and new events cropping up every day, there seems to be a lot of hype around blockchain projects and smart contracts. If you are someone who wants to utilize this hype and start an ICO then it’s important to hire the right and professional team of developers. So, let us walk you through the process of creating a coin and the landing page using the Ethereum blockchain platform.
How to Create an ICO – First Things First
It is always best to start an ICO with a good plan. However, it all starts with a business idea. It should include creating a cryptocurrency coin which has a strong and unique selling point. You need to work on the product specifications which will later be used as a part of a whitepaper and then proceed to development with thorough testing. After this, you need to create a landing page that shows the ICO status. After the marketing campaign is being rolled out, you are all set to GO.
At an initial stage, it’s essential that you agree on a specification which makes all the details clear to all parties. Because, Ethereum smart contracts are not that simple. You need to get the code completely right from the beginning because once the contract goes live, its FINAL. There are a plenty of strategies for updating the ICO code but do keep in mind that each change may decrease community trust in your coin which can be reflected in coin price at exchanges.
How to set up an Initial Coin Offering on Ethereum Platform
In order to start with an ERC20 token, you need to know the token name, its symbol and whether it allows decimal fractions. You also need to decide on how many tokens can be created and when they are created. To kick-start with ICO, you need to consider these basic parameters:
- Start Date
- End Date
- Minimum And Maximum Caps
- The Currency They Are Expressed In
Now, let’s say you want to launch an ICO that needs to raise a minimum of 1,000 ETH and maximum of 20,000 ETH in 4 weeks. However, you need to have all the corner cases covered in your code – The ICO may need to end early since you run out of tokens. It is recommended to add a failsafe mechanism – a possibility of halting the Initial Coin Offering completely in case of any security bugs or other issues. Customizing the ICO does not end at defining its period. You can offer many other possibilities as well. Below mentioned are a few ideas:
- Tokens can be accessed quickly after a transaction or after the ICO ends
- The ICO can be preceded by a closed pre-sale for invited people
- The ICO can offer a bonus scheme for early buyers
- Raised funds may be returned if the goal is not met
- Funds raised during the ICO may be released under particular circumstances
- Raised ether may be stored in the contract or transferred quickly to some wallet
By now, you must have fully understood how the coin and ICO should behave. So, what’s next?
Final Implementation, Testing, and Deployment
The significance of unit testing the contracts can’t be stressed more. When a lot of people’s money involved, you need to be extra sure that no line of code goes untested. So, provide tests for all scenarios and corner cases you can possibly think of. You have to make sure to produce a bug-free product and that requires excellent unit testing skills. You don’t get a chance to fix bugs after the code goes live. Ethereum utilizes the immutable nature of blockchain and executed it to smart contracts.
Other crucial parts of the smart contract development are code reviews. Each line of code should be checked by your peers before it’s committed to the repository. Static code analysis can help in discovering incorrect implementation, inconsistent security concerns and inconsistent contract behavior.
Tools to Kick Start an Initial Coin Offering
Just for an example, we are going to develop a very basic Ethereum smart contract that represents a coin with a simple ICO. So, here we are going to use:
- Solidity as the programming language
- OpenZeppelin Solidity contracts as the base of our contract
- Truffle framework as a testing and building tool
- Testrpc for stimulating local Ethereum blockchain node
- MyEtherWallet.com for testing and deploying contract on Ethereum Blockchain
REQ001: Basic ERC20 ‘Espeo Token’ with a symbol of ‘ESP’, 18 decimals and the total supply of 1,000,000 units created at contract deployment and assigned to a particular wallet.
REQ002: The Initial Coin Offering is going to last for 4 weeks, raise a minimum of 1,000 ETH and a maximum of 20,000 ETH, if the goal is not met then the ICO continues until the payments reach the min cap.
REQ003: Raised ether is going to be transferred to a particular wallet after each payment.
REQ004: Tokens are going to be available for transfers only after the ICO ends.
REQ005: Tokens are going to be sold out at a flat rate of 1ETH: 50 ESP with added +50% bonus during the 1st week.
Here Begins the Implementation
Smart contracts deal with huge amount of money. So, the recommended way of starting is test-first. A test which checks whether the total is correct and then it is assigned to a given wallet. We then create an instance of our contract and check its properties by accessing the fields and calling functions. At this moment, the tests will fail.
This simple token is based on OpenZeppelin’s Standard Token to reuse a trusted execution of ERC20 token functionality.
Now, we are going to compile it using truffle and deploy it to the test Ethereum Blockchain using MyEtherWallet.com. For the purpose of deployment, we can use the Truffle Framework’s migrations but let’s stick to MEW for simplicity. For the easier creation of multiple token contracts with different parameters, we have created a factory contract which is being deployed.
Manual Smart Contract Testing
The code is tested by unit tests; however, you should also test your code against a working blockchain. Use the Factory contract to create token contracts with several parameters. Be sure to test your contracts extensively on the test network prior to going live because you still can fix bugs and make changes at that point of time.
ICO Status Page
This is the most crucial part of your ICO. You need to inform potential token buyers of basic ICO parameters like start and end dates, the minimum and maximum caps, the rates and bonuses etc.
Now, you know how to create an ICO on Ethereum and how to build the token contract. Hope we have introduced you to the world of Ethereum smart contracts and ICOs. However, let us tell you here that there is much more to a successful ICO. Going through this article would definitely bring insights on how you should go about to create an ICO that drench you and your investors in million dollars.