Fungible Token Considerations
1) eosio.token contract versus Simple Asset fungible tokens
Dapps which need Fungible tokens should decide between using the standard eosio.token contract, and using Simple Asset Fungible Tokens contract. Here are the differences:
In Simple Assets,
- Scope is Author instead of Symbol
- Stat table includes also additional data about each FT.
- For transfers you need to use transferf action from SA contract.
- If author sets authorcontrol flag, the author can transfers/burn/etc user’s FTs independent of user’s consent.
- The table which tracks FTs includes the author’s account name, allowing different dapps to have FTs with the same name. (Example: https://bloks.io/contract?tab=Tables&table=accounts&account=simpleassets&scope=bohdanbohdan&limit=100)
Using the standard eosio.token contract, you get compatibility with decentralized exchanges like NewDex.
2) Create versus Issue
issuef (to, author, quantity, memo)
The createf command brings the FTs into existence. But you still have to issue them using the issuef command for them to start circulation.
Like NFTs, Fungible Tokens also have offer/claim functionality as an alternative to transfers. For FTs, the only time the sender would pay for RAM would be if the receiver never before held those FTs. It uses approximately 300 bytes to create the FT table.
4) The Author Control Flag
When an author creates a Simple Asset fungible token, they set an author control flag. This flag is set upon creation, and can never be changed. If author control is on, it means the author can control the Fungible Tokens even if they owned by another player.
After much consideration we added this feature to allow games to simulate the consumption of a resource over time.