ICOs Initial Coin Offerings (ICOs) have become extremely popular ways to raise funds while avoiding the regulatory restrictions of fiat financing. In 2017, ICOs raised around $6.5 billion. And they’d already raised more than $2 billion this year. The majority of ICOs are based on Ethereum as a platform, and more specifically on Ethereum’s Smart Contracts. Shares in ICO projects are usually sold for ETH or BTC, and awarded in the form of tokens (also known as ERC20 tokens). So while we’re used to seeing and dealing with ERC20 tokens, few people know exactly what they are, how they work, or even what ERC20 means. In case you’re wondering, ERC stands for Ethereum Request for Comments, and 20 is the number assigned to the proposal. The ERC20 Standard ERC20 provides basic functionality to transfer tokens, as well as allow tokens to be approved so they can be spent by another on-chain third party. Here the standard ERC20 definition: In addition there are some optional useful fields: · Token Name · Symbol · Decimals (usually 18) The system is, however, not perfect. For instance if you want to make an action after a payment done on a Smart Contract, you should make two call: you should first approve Smart Contracts to be allowed to transferFrom some tokens when you make the second transaction. By using this approach you are paying GAS twice. NOTE: In my previous post I already explained ERC20's limits on transfers and how it can be extended to became a real life Payable token. To do so I built the ERC1363 Payable Token library. How to generally deploy an ERC20 token? There are many libraries and tools that provide implementations of standards like ERC20 and ERC721 which you can deploy as-is or extend to suit your needs, as well as Solidity components to build custom contracts and more complex decentralized systems. But you need to learn Solidity, you need to setup your own environment and code and deploy your token using an Ethereum node. They are a lot of skills and configurations. But I would like to see people thinking about how their projects can be decentralized (if blockchain would apply to their projects) and not bothering about why node is not syncing, or if Smart Contract is secure and many other blockchain related issues For this reason, I decided to build a simple DApp allowing people to deploy their token in less than a minute! Yes, less than a minute! Try it by yourself ?? https://vittominacori.github.io/erc20-generator All of what you have to do is to fill in a simple form and complete the transaction with MetaMask. Nothing else. No login. No setup. No coding required. No payment (excluding GAS). About the code Token will be built using OpenZeppelin, an open source library for secure Smart Contract development. Smart Contracts has been compiled with solc v0.5.8+commit.23d335f2, using Truffle, a development environment, testing framework and asset pipeline for Ethereum, aiming to make life as an Ethereum developer easier. What will you deploy? Detailed ERC20 Token: your token will be fully compliant with ERC20 definition and compatible with any ERC20 wallet all around the world. It will have a name, a symbol and a decimals amount. Mintable Token: you will be able to generate tokens by minting them. Only people (or smart contracts) with Minter role will be able to do that, and you can also add or remove the Minter role to addresses. Capped Token: you can’t be able to mint more than the defined token cap. This ensure people that you will not generate more tokens than declared. Burnable Token: your token can be burnt. It means that you can choose to reduce the circulating supply by destroying some of your tokens. ERC1363 Payable Token: the ERC1363 is an ERC20 compatible token that can make a callback on the receiver contract to notify token transfers or token approvals. It can be used to create a token payable crowdsale, selling services for tokens, paying invoices, making subscriptions, use them for a specific utility and many other purposes. Discover more. Token Recover: it allows the contract owner to recover any ERC20 token sent into the contract for error. Discover more. Tokens won’t be transferable until you call the enableTransfer function. Only people (or smart contracts) with Operator role will be able to transfer tokens. You can also add or remove the Operator role to addresses. How it works By visiting the DApp website https://vittominacori.github.io/erc20-generator you will be able to deploy your token in less than a minute. Below the requested informations.
Enter your preferred token name and symbol. Insert also decimals (as said usually this is 18). Then enter token cap (the maximum number of tokens available; no more than this number of tokens can be generated) and token initial balance (the initial number of tokens to be generated in your wallet). Choose to enable transfer during deploy or enable it manually later. You can choose the Network where do you want to deploy your token. Confirm your transaction in MetaMask popup and then wait for your token to be deployed.
You will receive the transaction hash and token address and your Smart Contract will be automatically deployed on the chosen network. Your token will appear like this and your source code will be already verified on Etherscan because of I deployed one of this on each Ethereum Network. Explore the Smart Contracts’ or DApp’s source code on GitHub to learn how to code your own token by your hand or, simply, try building your token here. For any thought about it please comment here, open an issue or contact me on Twitter or LinkedIn.