I decided to take a look at ERC404 and thought I could do it better. I completely rewrote ERC404 to be completely compliant with ERC1155 and ERC20 standards. I chose to mix these two instead of ERC721/ERC20 for several reasons:
ERC1155 and ERC20 have no function conflicts whereas there are function signature conflicts when mixing ERC721 and ERC20
ERC1155 is already a widely adopted standard meaning any platform which supports ERC1155 will also support ERC404 fully
All I need to do now is create a few standardized error messages for the potential errors while synchronizing ERC1155 and ERC20
No new functions are needed
Batch transfers possible in ERC1155 meaning users can batch specific NFTs with their token transfers.
No ownership required, ownership can be added into the implementation contract allowing for developers to choose how centralized/decentralized their projects are (no previous token standard has onlyOwner functions)
Token ID space can be opened back up from 1 - uint256.max, only preventing tokenId 0 since id 0 is where we store the ERC20 data.
I decided to take a look at ERC404 and thought I could do it better. I completely rewrote ERC404 to be completely compliant with ERC1155 and ERC20 standards. I chose to mix these two instead of ERC721/ERC20 for several reasons:
If anyone is interested in trying my rendition of ERC404 as an ERC1155 in action I have it [https://sepolia.etherscan.io/address/0xde39999e3e500e4b4842f6a87fa1e6a4c95d0010#code](deployed to sepolia) or on [https://github.com/TechnicallyWeb3/TW3404](my repo).