Buying Into an Infinite Token Offering (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.

When you stake your ETH or FTM in an ITO, you begin working for its workchain as an agent. The following is an example of how tokens were obtained for a fictional ITO called 'Palos Community'.


Information on the ITO was found on the r/workchains subreddit.

Note the ITO's settings, such as the minimum and maximum amounts that can be obtained, and frequency of work blocks (e.g., every seven days). If the contract code isn't visible and verified with a green icon (such as in this example), it's probably best to take no action. (Here is an example of a contract that cannot be read.)


An amount of ETH was sent to its token address with gas set to 300,000 to avoid errors. If more ETH is sent to the ITO than is allowed, the remainder will be returned to the sending address and can be seen in the internal transactions section of Etherscan.


ITO tokens were automatically returned to the address that staked the ETH.

Each ITO has two addresses. The 'contract' address and the 'token' address. When adding the ITO token as a custom token in MyEtherWallet, for example, you'd enter the ITO's contract address. However, you'd send ETH to the token address.

Now that I have the ITO's tokens I have 3 choices:


Keep the tokens and receive distributions of tokens from other projects (e.g., ERC20 tokens) at the end of each work block. The greater the percentage of the ITO's circulating tokens I own, the greater the percentage my reward distribution will be.

Before I receive my reward distribution, I need to approve of the work performed by the workchain. This is done by adding the first two digits of my wallet address and the number of the day of the month. I then will turn this into an ETH decimal value by adding seven zeros in front of this number.

If my local date is November 5, for example ("5"), and the first two digits of my wallet address are "21" then I will send 0.000000026 ETH to the token address to sign for my distribution. 

As an agent, there is no time limit for approving of work. If I missed 83 work blocks and sign for the next, for example, I am approving of the current and all previous work blocks.


Validate jobs. If I want to reward a producer so that he is incentivized to provide more value to the ITO, I could simply send a portion of my tokens to the contract address of the tokens I received as a distribution. My reward does not go to the producer directly. When I validate a job, it simply means that I am increasing the weight of the producer's work reward distribution at the end of the next work block.

How To Validate


Request a refund. At any time I could interact with the contract to request a refund of my stake. If the ITO has an available supply before I send them back and I receive a refund, it will be at the same rate that I got them at.

How To Send Your ITO Tokens Back to the ITO

Refunds will show up in the 'Internal Txns' section of Etherscan.

You can also see refund information in the ERC20 Token Txns section when you click on the transaction in which you sent tokens back.

If the ITO does not have enough available supply to meet demand, I have reached Omega Point.

Omega Point is reached when the demand for ITO tokens has exceeded supply. Agents requesting refunds of their stake will get the current, more favorable rate of exchange as an unsecured loan. This unsecured loan facility acts as a kind of 'golden parachute' for older agents to return ITO tokens to the contract. This can help satisfy the demand of new labor participants and keep the economy healthy and robust, as well as help curtail token oversupply.

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

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.