Hello Ethereum community,
We are building a game and struggle to figure out which token standards to use. Here is a high level overview of what "tokens" we need:
Crystal (Tradable, FT, Capped)
Essence (Untradable, FT, Uncapped)
Chest (Tradable, SFT, Soft Capped (Total Game Levels >= Total Chests))
Key (Tradable, SFT, Uncapped)
Skin Shard (Tradable, SFT, Uncapped)
Skin (Tradable, SFT, Uncapped)
Currently, we use ERC20 for the Crystal, and ERC1155 for everything else.
The question is: Should we drop the ERC20, and make the Crystal an ERC1155 as well, and have everything nicely in one contract? Our worry is that most DEXes are ERC20 capable, and we won't have liquidity for our currency token if it's ERC1155. Heck, most NFT marketplaces are ERC721 capable, but honestly ERC721 sucks for games, rarely do you need truly unique items...
So ultimately it boils down to: Stick with ERC20 and ERC721, and sacrifice some game features that are hard / impossible to implement utilizing the two standards - but be compatible with the rest of the ecosystem, or use ERC1155 which is just PERFECT for our game, and allows us to implement all the features we need with ease and without weird hacks, but also possibly cut ourselves off from the rest of the ecosystem? We are deploying on a less popular EVM L2 (won't shill), which only has ERC20 DEXes and ERC721 markets.
I've been going in circles for days and have no clue what to do. My heart tells me to just roll one ERC1155 contract and be done... Wasn't that the point of the EIP1155 anyway, 1 contract = many tokens? What are your thoughts?