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.

:warning: If you create a fee on transfer or deflationary token (burn a percentage on transfer) this can cause issues when used with other contracts such as: https://medium.com/balancer-protocol/incident-with-non-standard-erc20-deflationary-tokens-95a0f6d46dea

ERC777

For ERC777 you need to consider reentrancy, see Reentrancy After Istanbul


This is a wiki post, please edit/update

10 Likes