Points to consider when creating a fungible token (ERC20, ERC777)

If you are thinking about creating a fungible token (ERC20, ERC777), you may want to consider the following points:

  • What is the purpose of the token?
  • Why would someone need to use the token?
  • Could the solution operate without a token?
  • Could the solution operate using either the native currency of the blockchain (Ether) or an existing stable token instead of the token?
  • Could the solution be cloned and have the token removed, yet still operate (without the token)?
  • How does transaction fees (gas price) impact usage of the token?
  • Do users need to have the native currency of the blockchain (Ether) to use the token or is there an option to use meta transactions?

If you plan for your token to potentially have value, you should seek appropriate advice on regulatory compliance and your solution should have appropriate testing and auditing:

If you have access control for minting, pausing, upgrades you should design your governance behind when and how these functions can be used and communicate this to your potential token users.

You also should design your tokenomics of your token.


For ERC777 you also need to handle reentrancy, see Reentrancy After Istanbul

This is a wiki post, please edit/update