10 Steps to do an ICO Series: Step 8 Tech Team Checklist for Your ICO

abasa.tokyo
ZILLA Blog
Published in
7 min readOct 5, 2018

Read this article in 中文 / 日本語 / 한국어

This is a technical team’s webapp/website checklist for running an ICO.

Note: Some of these steps are relevant only for ICOs with ERC20 tokens. While the rest is applicable to all ICOs.

1) ICO Webapp

It should do the following:

  1. Capture KYC of users participating in your ICO. The extent and scope of your KYC should be determined by your attorney. There are many companies that provide KYC services (We use Trustdock), but you must build a system to collect, store, accept/reject user data. You then must link them with their cryptocurrency address and allow them to participate in your ICO only with that linked address.
  2. Make sure you have a designer create a webapp/forms with good user experience (UX). Trust me, you can’t fudge this. Hire a UI/UX designer to make this.
  3. Internationalization: ICO participants span the globe. Your webapp and forms should support the diversity in addresses, names etc. (Eg: some countries have non-numeric zip codes)
  4. Your webapp and forms should be localized into multiple languages also, depending on where your geographic target is.
  5. Nice to have: Display the token balance and token purchases by the user after logging into your webapp. For ERC20 tokens this can be implemented by invoking APIs in web3.js library

Note: Limitation with this KYC — Given the anonymity in ethereum public blockchain, there is no way to verify that the provided ethereum address actually belongs to the user.

2) Website

the face of your company for potential ICO participants

  1. The look and feel of your website should be top-notch. Again, hire a good UI/UX designer for this.
  2. Be ready to implement many changes to the website in short notice during the ICO period.
  3. There should be links to the whitepaper, ICO webapp entry page, FAQ, links to company’s social media pages (Telegram, Facebook, Linkedin, Twitter, YouTube, Reddit, and github)
  4. Localization: Your website and whitepaper should be localized in languages based on what regions you are targeting.
  5. Nice to have: Calculator Window either in the company website or the ICO Webapp provides a converter where user can calculate number of tokens that can be bought for given number of ethers and vice-versa. This convertor should factor in discounts, bonuses, minimum transaction amount etc.
Example image for Calculator

3) Countdown Timer

We advise you to have a count down timer indicating the remaining time until the next milestone. The milestones are the start/end of the presale, start/end of the main crowdsale. The counter should automatically target the next milestone when a milestone is reached.

Example image for live count down timer

4) Live Status Bar

We advise you to have a live status bar that indicates number of tokens sold/ether raised. The participants can see progress which factors into their decision to participate or not.

Example image for live status bar

5) Email Platform

You will be sending regular emails for marketing and to inform your whitelist members, registered users etc. updates and information on your ICO. Although sending email by itself is trivial in terms of programming, the challenge lies in doing it without being subjected to anti-spam measures.

Bulk emails usually trigger spam-protection measures like the following:

  1. Your email service provider may suspend or block you.
  2. Your domain may be blacklisted.
  3. Recipients email providers like yahoo, gmail, hotmail blacklist the sending id/domain and divert your emails into spam folder.

We advise you to find a good email marketing platform such as Sendinblue or Mailchimp. We like Sendinblue because their fee structure is designed to scale with your business. In other words, they are much cheaper than mailchimp if you are sending mails by the thousands and tens of thousands.

6) Smart Contract Features

List out all the requirements to be satisfied by your smart contracts.

  1. Most of the requirements are business decisions. Keep in mind that many business decisions will change due to changing markets, and business environments, and other external factors.Therefore it may not be practical to include those factors in the smart contract to allow flexibility. Keep your smart contract as lean as possible to avoid introducing bugs and vulnerabilities.
  2. If your company is doing pre-sale, private-sale, and a main-crowdsale, decide whether to have separate smart contracts or a single consolidated smart contract. In case of have different smart contracts all of them should be using the common token contract.
  3. The goal is to have all of the purchase terms such as discounts, bonuses, minimum transaction amount, max cap etc should be implemented in the smart contract. In interest of transparency ensure that all conditions and terms implemented in the smart contract code are clearly published in the whitepaper, website FAQs etc and vice versa. In reality, most ICOs create separate addresses for these discounts and deals ad-hoc.
  4. As soon as ERC20 tokens are allocated to an address, by default that user can transfer them to other addresses which means they can start trading it on decentralized exchanges (DEX) right away. If you don’t want them to be traded before your company lists them in an exchange, your contract code should block the token transfer and provide handle for your company user to unlock their transfers later. We recommend locking your tokens since participants selling on a DEX will undermine your crowdsale.

7) Testing Smart Contracts

Thorough Code review and Testing are very important for smart contract code. Bugs in it could lead to loss of crypto-currency for company and/or buyers. Damage due to bugs in smart contract could be worse that damage due to bugs in an ATM’s software. Prepare comprehensive list of test cases beforehand. It is a must that you get your smart contract audited by a third party code auditing firm. Before that, thoroughly test your smart contract.

Testing can be done across following environments:

  1. In house private ethereum blockchain: You can setup mining and generate adequate ethers to facilitate deployment and executing test transactions.
  2. Testnet: deploying the contract code on testnet; you get limited free ether from sources like Ropsten Ethereum Faucet.
  3. Homestead: doing a test deployment on Homestead; This costs real money (ethers) but not much — gas expenditure for deployment and testrun of several core flows should cost less than 0.5 ethers. To avoid interference/ confusion from this test deployments to your actual crowdsale contracts, follow precautions like deploying with changed contract name, including selfdestruct method in contract to facilitate later cleanup etc.

8) Publishing your code onto github

Many blockchain platforms are open source and usually there is an expectation in the blockchain and ICO community that product are open sourced. If there are no IP/idea loss concerns, it is better to publish your product’s code in github. This increases the community’s trust on the company.

9) FAQs

including following FAQs in the website and/or ICO webapp

  1. End to end user instructions for buying tokens
  2. How to check tokens issued overall so far/if hard cap is reached
  3. What happens if I initiate transaction after hardcap is reached
  4. What happens if the hard cap is is not reached
  5. Recommended gas limit and gas price
  6. How to view my token balance
  7. Contact email for technical issues

10) Security

As known, due to the anonymity involved once money is transferred to wrong address or hacked and stolen from a contract or account, it is irreversible. So several safeguards are to be taken to prevent that.

Below article elaborates this:

Security suggestions to mitigate risk while running an ICO

Note: Some of these steps are relevant only for ICOs with ERC20 token. While rest are applicable to all ICOs

11) Tech Support Email ID

Expect people to face issues and ask for help with the ICO webapp or while buying tokens.

It is advisable to have dedicated email id as <techsupport@yourcompanydomain.io> to help those. This email can be mentioned on the ICO portal screens, FAQs etc. You would rather want to be notified of technical issues thru this email than via someone posting the issue publicly in Telegram.

12) Handle Load bursts

Depending on your ICO’s timelines and user procedures there may be spikes of load on your website and/or ICO portal. Website or Portal crashing due to load is not at all good for your company’s brand is bad signalling to ICO participants.

Do one or more of following measures to handle that:

  1. If possible, stagger the load spikes by tweaking the user procedures/timelines
  2. Tweak settings on the webserver, database to handle more concurrency and traffic
  3. Set up DDOS attacks protection for website and ICO portal
  4. Bump up hardware (CPU, RAM, no of nodes in cluster) for those periods

Note: Actual token purchase traffic which spikes severely in some periods occurs on the ethereum public blockchain nodes and nothing needs to be done for handling that load burst. Above measures are for expected load burst on the webapp or website.

--

--