How we build and deliver ERC-20 tokens
Creating ERC-20 tokens (cryptocurrency) for clients is something we love doing. It basically comes down to creating value for companies that are looking to fund projects that will help their industry and their communities, while creating value for everyone if the development is done correctly and in a responsible way.
We all remember the craze there was 5 years ago with the ICO boom. Well there were great projects and others that were not so good. Everyone and their mothers seemed to be creating a coin and setting up a crowdfunding stage to fund what seemed to be game-changing DeFI projects.
As we know a lot of those projects did not prosper.
So what's the difference now? Why are we beginning to see tokens being created to back projects at a steadily growing pace? Well it’s simple, “traditional” industries have caught up and now understand how token creation can help them raise funds to build great solutions for their companies and industries.
So no, it’s not the ICO craze reborn, we are talking about established companies (and even some governments) tapping into all the possible upsides of building ERC-20 tokens (or their equivalents in other blockchains) to push growth.
This means that, due diligence accounted for, investors can now look at the offerings that will be available via crowdfunding in industries like Real Estate, Logistics, Manufacturing, Retail, etc with more confidence, knowing that they are being created by companies that are putting their reputation on the line and want to make a token sale a success for everyone involved.
Token creation and distribution can be a great source of funds for organizations that are looking to raise capital for investment and project/product development and want an alternative to traditional financial products (loans/venture capital).
So how do we do it?
Well like we mentioned, we want our clients to succeed and build everything around a coin launch to provide the best possible chances from a tech and trust standpoint.
This means not just creating great and safe smart contracts but also building a great website, step-by-step instructions for people that are new to crypto, proper set-up and instructions with the most used wallets and full support throughout the crowdfunding stage to make sure everything runs smoothly.
So what’s an ERC-20 token?
ERC20 is a proposed and widely adopted standard for creating tokens on the Ethereum network. It's a set of rules implemented in a smart contract that is deployed on the Ethereum network. Once deployed, anyone with an Ethereum wallet can interact with the token's smart contract to send and receive tokens. Each ERC20 token has its own smart contract which keeps track of all the transactions of that specific token.
We build the ERC-20 token smart contract with Solidity and use tools like SafeMath to keep things safe.
The smart contract has functions and events:
Interface of the functions in Solidity code is the following:
1. totalSupply() public view returns (uint256 totalSupply) - get the total token supply
2. balanceOf(address _owner) public view returns (uint256 balance) - get the balance of account with address _owner
3. transfer(address _to, uint256 _value) public returns (bool success) - send _value amount of tokens to address _to
4. transferFrom(address _from, address _to, uint256 _value) public returns (bool success) - send _value amount of tokens from address _from to address _to
5. approve(address _spender, uint256 _value) public returns (bool success) - allow _spender to withdraw from your account, multiple times, up to the _value amount
6. allowance(address _owner, address _spender) public view returns (uint256 remaining) - returns the amount which _spender is still allowed to withdraw from _owner
Events (in Solidity code) are defined:
1. Transfer(address indexed _from, address indexed _to, uint256 _value) - triggered when tokens are transferred
2. Approval(address indexed _owner, address indexed _spender, uint256 _value) - triggered when approve function is called
Of course the basic functions of an ERC-20 token can be extended.
For example we can make a token mintable. A token by default has a fixed supply. By adding the minting function we can allow a minter to add more tokens to the smart contract.
Mint function is defined like this in Solidity:
function mint(address to, uint256 value) public onlyMinter returns (bool)
This Allows us to set isMinting to True in the smart contract during the Crowdfunding phase allowing our clients to set different prices throughout the sale if needed.
Minting is not the same as mining
This is a common misunderstanding when people are talking about cryptocurrencies.
Minting tokens is done by sending a transaction that creates new tokens inside of token smart contract. A call to a smart contract function can create an unlimited number of tokens, without spending energy.
On the other hand, mining does create new tokens, but is usually limited as per consensus rules of that blockchain, and requires spending energy. Mining also serves other purposes like securing the network and packing new transactions into blocks.
Mintable Tokens in Crowdsales
Mintable tokens are widely used in combination with crowdsales. Crowdsale contracts are used to create an ICO where ERC20 tokens are sold for ETH. Here's the mechanism used for combining mintable tokens with crowdsale:
- ICO maker deploys mintable token contract, giving the maker a Minter role
- ICO maker deploys crowdsale contract
- ICO maker transfers Minter role to crowdsale contract. Only crowdsale contract can mint new tokens.
Now, the crowdsale begins. Investor comes along and wants to invest in new tokens. He sends ETH to the crowdsale contract, contract mints brand new ERC20 tokens at current price and sends them to the investor. When the crowdsale is finished, no one can mint more ERC20 tokens, not even the crowdsale contract, since it's coded that way. Investors can be sure that no one can dilute their share of token holdings.
But that's not all we offer when building ERC-20 tokens and crowdsales
A successful crowdsale goes beyond building good smart contracts.
We provide a lightning fast website for the token launch (we love Tailwind) that is modern and has great copy. We build the branding around the coin and provide great design and content around the token release so that your team can put together a great outreach campaign to get people talking and eventually investing in your coin.
We also understand that a coin launch will attract all kinds of investors and some might not be as tech savvy as others. So we also provide step-by-step instructions to teach anyone how to invest in your coin in a simple and easy way. Showing users how to install crypto wallets, how to buy ether and how to send ether to your smart contract so they can receive your token.
We make sure that buyers use Metamask or MyEtherWallet to buy and store the tokens and also provide detailed information to show buyers how they can keep their wallets safe and accessible to only them.
In all our objective is a great token launch that provides value to everyone involved.