In the crypto world, things move and change so quickly that it’s easy to get lost. New projects are coming so quickly now that most of us hardly have the time or expertise to learn everything we need to know about a project. Meanwhile, Initial Coin Offerings (also known as ICOs) keep coming faster, and if you’re like me, it’s easy to get caught up by the FOMO (Fear of Missing Out). In fact, I heard about Peerplays months ago, and just got too busy with work trying to finish my dissertation, graduate, and get a job, that I totally missed out on the ICO, and now I’m kicking myself. Anyway, I’ve committed to not miss out on the EOS ICO, and as a first step, I am trying to gather as much information as I can into this post to serve as a helpful resource for other people who also have finite time, but are interested in the EOS ICO.
- Chapter 1: What is EOS?
- Chapter 2: What is the purpose of an ICO, and why is it important?
- Chapter 3: How will the EOS ICO be structured?
- Chapter 4: What is the ERC20 token standard, and why will it be used for EOS?
- Chapter 5: Why will the Ethereum network be used for the EOS coin offering?
- Chapter 6: How to participate in the ICO (for Dummies!)
The purpose of this post is primarily to focus on issues related to the Initial Coin Offering (ICO) of EOS , and not on specifics of EOS itself. Nonetheless, for those of you who are hearing about EOS here for the first time, EOS can be briefly described as follows:
EOS is a consensus blockchain operating system that provides databases, account permissions, scheduling, authentication, and internet-application communication to massively improve the efficiency of smart business development that uses parallelization to make possible blockchain scalability to millions of users and millions of transactions per second.
This description comes from my introduction to EOS post, which was a transcript of @dan‘s Consensus presentation and can be found here. If you are still confused, you can think of EOS as a decentralized operating system, which greatly simplifies the process of designing blockchain applications, and also performs all of the communication between the application and the decentralized computer, i.e. the blockchain.
EOS acts as the operating system which performs the communication between blockchain applications and the blockchain decentralized computer.
An Initial Coin Offering, or ICO, is an unregulated (as far as I know) method to raise funds for a new cryptocurrency venture. Because these types of fundraising are unregulated, many tech startups in the cryptocurrency space are beginning to use ICOs to raise funds while bypassing more heavily regulated approaches taken by venture capitalists and banks.
The typical approach that startup companies use for raising money through an ICO involves publishing a whitepaper that describes the project, as well as the needs and fundraising goals for the project, along with the distribution mechanism for the project coins. In the past, a common ICO approach has been to offer for sale a fixed number of coins at a fixed price over a certain fundraising window. If all of the coins are sold during the fundraising window, the ICO is considered a success, and coins are distributed, and if not all of the coins are sold, the ICO is considered unsuccessful, and the money is returned.
One major criticism of this ICO model is that it effectively requires pricing the tokens at below the perceived market value. If the tokens were initially priced above their perceived market value, it is likely that not all of the tokens would be sold, and the ICO would be unsuccessful. Since this ICO model effectively requires underpricing tokens, it leads to an economic situation in which the demand for tokens exceeds the supply. As with the recent Basic Attention Token (BAT) ICO, such a situation typically favors wealthy investors, especially if the ICO is hosted on a platform like Ethereum which requires gas transaction fees. This is because wealthy investors can pay exorbitant gas fees in order to guarantee their transactions will be selected by the miners. Thus, the typical ICO model has recently had the effect of concentrating tokens in the wealthy hands, who can turn around and sell their tokens for a profit, since they were originally sold at below the perceived market value to begin with.
The EOS team will use a novel model for their ICO which effectively eliminates the particular advantage that wealthy investors possess that was described in the previous chapter. A draft (subject-to-change) EOS token sale smart contract was recently released on github. The corresponding release statement can be found here.
Before describing the rationale behind the EOS team’s ICO model, I’ll briefly describe the structure of the ICO (based on the current plan, which is subject to change). The EOS token will be an ERC-20 compatible token and will be sold on the Ethereum (ETH) blockchain.
The EOS Token Sale will be distributed daily over about 341 days. 1,000,000,000 (one billion) EOS tokens will be minted at the start of the sale. These tokens will be split into different rolling windows of availability. The tokens available in a window will be split proportionally to all the contributions made during the window period.
The EOS team describes an example distribution schedule, in which an initial 5-day ICO period will be used to distribute 200,000,000 EOS. This period can be thought of as a ‘traditional’ ICO period, except there will be no cap in the amount of funds raised. However many funds are raised during the initial period, the 200,000,000 EOS tokens will be distributed proportionally to the funds raised. For example:
200,000,000 EOS are available during the window.
Bob contributes 1,000 ETH
Alice contributes 200 ETH
John contributes 1 ETH
Bob contributed 83.2639% of all ETH and receives 166,527,893.422148 EOS Tokens
Alice contributed 16.6528% of all ETH and receives 33,305,578.684430 EOS Tokens
John contributes 0.0833% of all ETH and receives 166,527.893422 EOS Tokens
If you read the Draft EOS Token Sale Contract, you will notice that I have modified this example to include another contributor, John, who contributes a relatively very small percentage of the total ETH to the ICO. The reasons I included John in this example are to first demonstrate that the EOS tokens are divisible, just like most other cryptocurrencies, but more importantly to show that there is practically no minimum contribution needed in order to participate in the ICO. No matter how wealthy or poor different contributors are, each one will receive the exact number of EOS tokens proportional to their contribution.
After this initial 5-day ICO period, there will be 350 consecutive 23 hour ICO periods in which 2,000,000 EOS tokens are distributed in each period. The distribution mechanism in these periods will be exactly the same as in the initial 5-day period, except that the duration of the period and number of coins distributed will be different. Another key difference for these periods is that after the initial 5-day period, EOS tokens will begin freely trading on exchanges, and price feeds will have already been established for the tokens.
With this established price feed, it is likely that the subsequent 23-hour minting periods will produce tokens at reasonably close to market value. If the total funds contributed to a certain ICO minting period would produce tokens at below market (exchange) price, it is likely that individuals will contribute more to the ICO period, driving up the price, and if the total funds contributed to an ICO period would produce tokens at above market value, individuals are unlikely to contribute more to the ICO period, and simply buy tokens on the open-market exchanges. This ICO model has the unique effect that the MAJORITY of network tokens (~70%) will be produced and sold AT market value, simply by virtue of the sale mechanism. This is in contrast to many other ICO models, such as BAT, in which ALL of the tokens are minted at below market value.
The total supply of EOS tokens is shown in the following figure.
Breakdown of the current plan for token distribution over the ICO period.
At the end of each ICO period, every contributor will receive private keys which allow them to claim their EOS tokens on the EOS blockchain. At the end of the ICO period, the EOS ERC-20 tokens will be frozen and non transferrable on the Ethereum network. At that point, the token distribution will be over, and the EOS blockchain will have no connection or relationship to the Ethereum network. It is unclear when the EOS blockchain will launch in this period. It is possible that the EOS blockchain will not launch until the end of the ICO period, and that all price activity during the ICO period will be through the placeholder ERC-20 tokens. Another possibility is that the EOS blockchain will launch after the 5-day initial ICO period so that individuals can immediately redeem their private keys and claim their EOS tokens, and all price activity will be based on trading of the real EOS tokens.
Next I want to briefly elaborate on the design rationale behind this EOS distribution system. The primary goal of the EOS team was to ensure a fair and wide distribution of the tokens, which they aim to achieve by focusing on three objectives: equal opportunity to participate, broad awareness of the EOS network and ICO, and a fair and auditable distribution process.
Equal opportunity to participate: By specifying a fixed number of coins to be distributed in each ICO window and no fixed cap on the number of funds to be raised, every single individual investor is given exactly the same equal opportunity to participate. Every contributor will receive EOS tokens exactly in proportion to the amount of funds that they contribute. This gives every individual the opportunity to achieve exactly the same return on investment (ROI) if the price pumps or dumps. Some individuals may be more intelligent and better able to determine when and if to participate in individual ICO windows, but every individual has the same OPPORTUNITY to participate.
Broad awareness of the EOS network and ICO is highly desirable in terms of both fairness to cryptocurrency investors in general and in terms of ROI to EOS investors in particular. Broad awareness of the ICO is needed in order to give all cryptocurrency investors a fair opportunity to know about and participate in the ICO. This avoids situations in which only select few insiders are aware of a specific token sale, giving them a significant advantage in acquiring the network token. Broad awareness is also desirable to EOS investors, because it is necessary in order to drive demand for EOS tokens and adoption of the EOS network.
Finally, the EOS team wants their ICO to use a fair and auditable distribution scheme, in which investors can verify their and others’ contributions and know that they have received the fair and correct number of EOS tokens. This objective has proven slightly controversial, since the most obvious way to satisfy it is to run the ICO as an Ethereum smart contract. This has proven controversial to those who feel that the EOS team is snubbing the Bitshares and Steemit communities in lieu of the Ethereum platform (for which EOS hopes to be a major competitor). However, if you see the rationale behind this objective for running a fair and auditable ICO, the use of an Ethereum smart contract is likely the obvious, and only, viable option.
The ERC20 token standard is a standard that describes all of the functions and events that an Ethereum token contract has to implement. Most recent, major tokens on the Ethereum blockchain have been designed to be ERC20-compliant. The purpose of using the ERC20 token standard is to make all of the ERC20 tokens more easily interchangeable. It also ensures that they can work with different decentralized applications (Dapps) that adhere to the standard. Essentially, every token issued on the Ethereum network can be considered a “sub-currency” of the Ethereum network (where Ether is the primary currency). The use of the ERC20 standard makes it easier for the compliant tokens to be natively supported by new projects. The standard ensures that tokens can be used across different Ethereum-based platforms and projects.
It is unclear how, or if, the EOS ICO will utilize this compatibility between ERC20-compliant tokens, or if they will simply use the ERC20 standard for the EOS smart contract in order to avoid re-inventing the wheel. Given that the purpose of the ICO smart contract is simply to account for investor contributions and distribute the keys for claiming tokens, I would imagine that the latter is more likely.
As I mentioned, the choice to use the Ethereum network to manage the ICO has been a contentious choice. Since EOS is intended to be a major competitor for Ethereum, some have seen this as a hypocritical choice. Others have seen this move as the EOS team spurning both Bitshares and Steemit users who have faithfully used and advocated Dan Larimer’s previous projects. Many people were expecting the ICO to use the Bitshares decentralized exchange, a choice which would have brought tremendous exchange volume and served as the catalyst for tremendous gains in the Bitshares price.
However, the EOS team has clearly stated their reason for choosing the Ethereum network when they described the rationale behind the ICO model. Specifically, the ICO should be a fair and auditable process, with as little trust required as possible. If you believe that an ICO should be fair, auditable, and trustless, you have no choice but to use a decentralized smart contract blockchain to run the ICO, the largest, and by-far most popular of which is Ethereum. Of course the EOS team could have managed the ICO through Bitshares, or Bitcoin, or mailing cash in an envelope to a P.O. Box in Nigeria, but with those options it would not be possible to have a fair, auditable, and trustless token distribution model.
Of course, this decision will contribute sizeable, sustained volume and transaction fees to the Ethereum network, which will likely boost that platform, a fact which the EOS team is likely well-aware of. This actually tells me that the EOS team is very confident in the technological capabilities of their system, and that they are committed to a truly broad and fair distribution of the network tokens, since they are willing to confer large benefits to their primary competitor by doing so.
Now I would like to briefly explain how to participate in the ICO. Personally, I have never used Ethereum, so I will be learning as I go in order to prepare myself as well. This will be a brief guide for total beginners. If you are already intimately familiar with Ethereum or have participated in other ICOs, you will likely be better off just following the participation guidelines posted here.
First, you need a personal, private Ethereum account. During the EOS ICO, the EOS tokens will be allocated to the Ethereum account which sends the Ether (ETH) to the token sale smart contract. Thus, if you send ETH to the EOS sale smart contract from an exchange account, your EOS tokens will be allocated to the exchange’s ETH account, and you might not be able to ever recover your tokens. So, you need your own personal ETH account that you control.
For this introduction guide, I will use the MetaMask extension of the Google Chrome browser. MetaMask is an extension (currently only available on Google Chrome) that allows you to run Ethereum DAPPs in your browser without running a full Ethereum node. Most importantly for the purposes of this guide, MetaMask includes a secure identity vault, providing a user interface to manage your identities on different sites and sign blockchain transactions. So, on a Google Chrome browser, head on over to https://metamask.io and install the Chrome plugin. You can also view some of the MetaMask tutorials which may help with the following steps.
Once you’ve installed the plugin, you need to click on the MetaMask icon, accept the terms and conditions, and copy down the 12 seed words which can be used to restore all of your MetaMask accounts for your “vault”. At this point, when I first installed MetaMask, it was initially set on the Ethereum Main Net. It is possible when you install the MetaMask plugin that it may be set to one of the test networks, such as the Kovan Test Network, which is what you would use if you wanted to participate in the test EOS Token Sale that is currently ongoing.
Next, we need to fund our account with some ETH tokens. For this I am going to use about 0.5 Steem Dollars which I have sitting in my Steemit account. First, I head over to https://blocktrades.us/ and setup a transaction of 0.5 Steem Dollars converting to ETH. For “your receive address”, you should input the public ETH address for the account in your MetaMask vault. To do show, just click on the MetaMask plugin icon:
Then, click on the clipboard icon to copy your public ETH address:
For this example, my public address is 0x037CacD9FFa890b23492f4E88cf0b72df4dB3f9D. Yours should have a similar format. Finally, your trade setup in the blocktrades website should look something like this:
Once you click on “get deposit address”, a box should pop up like this:
Now, just head over to your Steemit wallet page and send some Steem Dollars to the “blocktrades” account with the memo you received from the blocktrades website:
If you then wait a couple of minutes and check back with your MetaMask account, you should see a balance of ETH in your account:
Now that we have some ETH, we will be able to participate in the EOS token sale! In order to participate in the token sale, you will need to go to https://eosio.github.io/eos-token-sale while on the Ethereum Main Network. However, currently only the test sale is ongoing, so the page will probably not load unless you switch to the Kovan Test Network. You can go ahead and do so to get an idea of what the token sale user interface will look like. It is likely to still be updated, and some bug fixes are still in the works. If you switch to the Kovan Test Network, a page should load that looks something like this:
As you can see, the EOS Token Sale (the test sale) is currently ongoing. As I make this tutorial, we have just entered window #1, and so far 0.00 ETH have been contributed, so there is no effective price yet for this window. Once the real EOS token sale is underway, you will need to register an EOS public key, and you can then finally contribute your ETH to a given ICO window (as long as it is not closed), and claim your EOS after the window closes!
I will hope to give more detailed instructions about these final steps later once some issues with the public key registration are sorted out on the test sale.