TokenMint Blog

ERC20 Tokens and How to Create Yours


Introduction to ERC20 Tokens

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 token's smart contract to send and receive tokens. Each ERC20 token has it's own smart contract which keeps track of all transactions of that specific token.

Sending and receiving ERC20 tokens

All ERC20 tokens are deployed on Ethereum network, so you'll need an Ethereum wallet to be able to send and receive ERC20 tokens. Almost all Ethereum wallets have support for ERC20 tokens, and selecting a wallet suitable for your device is covered in our Ethereum wallets blog post. To receive ERC20 tokens you'll need an Ethereum address that can store both Ether as well as any number of ERC20 tokens. Ethereum addresses are managed in your wallet app, and you can create unlimited number of addresses. To receive tokens you only need to provide your address to a sender. Sending them is as easy as sending ETH - just paste the recipient address and the amount of tokens you want to send and hit send button.

ERC20 Standard Specification

Standard specifies interface with 6 functions and 2 events, but implementation of functions is left out from the specs.

Functions specs

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 specs

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.

Extending ERC20 Standard

ERC20 standard can be extended to add new features. Mintable ERC20 tokens are just one example how contract can be defined for new use cases. Popular features in use today are mintable, burnable, pausable, etc.

ERC20 examples

ERC20 tokens are very popular and thousands of different tokens have already been deployed to the Ethereum network. Together, the value of all ERC20 tokens is in the billions of US Dollars. Some of the largest tokens in use today are:

  • 1. Binance Coin (BNB) - used for discount on trading fees on Binance ExchangeBNB smart contract
  • 2. Maker (MKR) - used for governance of the decentralized DAI stablecoin issuance system
  • 3. OmiseGO (OMG) - used for running Plasma decentralized exchange, and other Omise services
  • 4. 0x (ZRX) - used to fuel the Ox protocol
  • 5. Basic Attention Token (BAT) - used for advertising and attention-based services

As you can see from the list, ERC20 tokens have a wide variety of applications and usage.

Creating your own ERC20 token

Generating your own Ethereum tokens consist of implementing an ERC20-compliant smart contract and deploying it on the Ethereum network. There are countless tutorials that cover token generation, however they require programming skills with deep understanding how Ethereum blockchain works.

If you want to generate your own ERC20 token, we have created a tool that will enable you to deploy your own token in a few minutes, without coding skills. Using our tool, you can define the name and symbol of the token, as well as initial supply. You'll need a Web3-enabled Ethereum wallet to complete the process. Make sure to top up your wallet with enough funds to pay for our service and mining fees. Just head over to our mint page and complete a simple form, and you'll be starting your cryptocurrency in no time. For sending and receiving ERC20 tokens, check out adding your custom ERC token to metamask post.

Here's an example of a token created with our tool called Merkle Blue Token. Notice how Etherscan recognized standard ERC20 contract and tagged the smart contract with ERC20 token. You can see the name of the token is set to 'Merkle Blue Token' with a ticker symbol 'MBT' and initial supply of one million.

If you need your token verified by etherscan, please note that by generating a token using our service, smart contracts are auto-verified. Learn more on Solidity code verification.

Here's a direct link to the token generation tool:

ERC20 Token Generation Tool

Share This Post

What's Next

If you've completed this tutorial, we recommend you follow up with these tutorials:

List Your ERC20 Token To Etherdelta Exchange
List Your ERC20 Token To Uniswap Exchange
Update Token Information on Etherscan

Connect With Us

Thank you for reading this far! You can:
- follow us on Twitter
- subscribe to our channel on Youtube

Contact us

We are Merkle Blue DOO, a blockchain startup.

Vardarska 1c/54, 21000 Novi Sad, Serbia

Phone: (+381 64 321 2640)