Creating Your Own ITO

Note: The following information is provided for educational purposes only and does not authorize, permit, endorse, or in any way approve of its use. By accessing or using the site, you agree to be bound by the terms and conditions set forth below. If you do not wish to be bound by these terms and conditions, do not access or use the site.

Creating your own ITO takes about 5-15 minutes. Instructions below.


Go to the Workchain Github and copy the code in flattened.sol, then paste to notepad.


Search for 'TTW' and change the following parameters to your own

string public constant name = "Town Token";

string public constant symbol = "TTW";

uint8 public constant decimals = 18;


Save the file as flattened.sol (or something with an *.sol extension) and open up in a browser that is connected with Metamask.


Under Environments click on the Solidity box, then under File click 'Open File' and select the flattened.sol file you just saved.


Click the black button


Then, select the Deploy & Run Transactions icon on the left [1]

On the resulting page, select 'Injected Web3' [2]; 100000000 for gas [3]; and 'TownToken' in the drop-down [4]

Then, click the Deploy button [5] Give it a moment.


You will then be asked to confirm the transaction. Do so, and await confirmation.


Once the transaction is confirmed, your new contract will be displayed.

In the drop-down [1] select 'Town' then click the drop-down icon on the same line as the 'Deploy' button [2]


Here is where we will enter the settings for the ITO.

uint256 distributionPeriod

How many days is a work block? For 7 days, enter "7"

uint256 distributionPeriodsNumber

How many distribution periods will there be for newly-added tokens? For 52 periods, enter "52"

uint256 startRate

What is the ITO's genesis value? This value is measured in wei. [See here for a converter.] If it is starting with a genesis value of 0.002 ETH then you would enter "2000000000000000" here

uint256 minTokenBuyAmount

What is the minimum amount that a single address could obtain in each of the first few transactions? Enter the value + 18 zeros. For a minimum of 500, enter "500000000000000000000"

uint256 durationOfMinTokenBuyAmount

For how many transactions do you want this minimum requirement to last? For the minimum to apply to the first 50 transactions, enter "50"

uint256 maxTokenBuyAmount

What is the maximum number of tokens that someone could obtain in a single transaction? Enter the value + 18 zeros. For a minimum of 5000, enter "5000000000000000000000"

uint256 minExternalTokensAmount

What is the minimum number of external token that a producer could add to the ITO? Enter the value + 18 zeros. 

address tokenAddress

Copy the token contract address in the box below by clicking the copy icon, then paste it into this field.


Then, click the 'transact' button, give it a moment,

and confirm the transaction through Metamask.


When the transaction is complete, you'll see your new contract displayed under the first one..


Next, we go back to the first and select the drop-down

and select the drop-down of the orange 'Init' button the shows up


You'll see two fields. The first is for how many tokens you want for the total ITO supply. Enter this number plus 18 zeros. For 21M, enter "21000000000000000000000000"

Next, scroll down and copy the address of the other contract and paste it into the townContract field. Then, click the orange 'transact' button.. Give it a moment.


After confirming the transaction on Metamask, the ITO should be ready.

Send value to the Town address, while adding the Town Token address as a custom token in your MyEtherWallet.

Problems? Increase the gas limit to 400000.

The software and information is provided "as is", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the software. This software and information is for educational purposes only and is not intended to be used in any environment, production or otherwise..

Further, the information contained on this website is for informational purposes only and does not constitute an offer or solicitation to sell shares or securities in any entity or any related or associated company or entity. None of the information presented is intended to form the basis for any investment decision, and no specific recommendations are intended. Accordingly the information contained on this website does not constitute investment advice or counsel or solicitation for investment in any security.

This information does not constitute or form part of, and should not be construed as, any offer for sale or subscription of, or any invitation to offer to buy or subscribe for, any securities, nor should it or any part of it form the basis of, or be relied on in any connection with, any contract or commitment whatsoever. The operators of this website and its agents expressly disclaims any and all responsibility for any direct or consequential loss or damage of any kind whatsoever arising directly or indirectly from: (i) reliance on any information contained in the website, (ii) any error, omission or inaccuracy in any such information or (iii) any action resulting therefrom.

Check the Workchain subreddit at r/workchains for new ITOs and other info!