In this proposal, we created the gNFT standard, which makes up for the problem that ERC-1155 can only support packed transfer and unchangeable attributes of NFTs. gNFT can make the attributes in the game props have four characteristics: transferable, upgradeable, changeable and evolvable. By using ERC-3664 standard NFTs in game, players are able to complete almost all operations on props only through smart contracts!
Would you mind updating the first post to link directly to the PR in the ethereum/EIPs repository?
The TransferSingle and TransferBatch events shadow the names of the EIP-1155 interface. While they might not conflict on a technical level (maybe they do, I’m not sure), I would propose renaming them to AttributeTransferSingle and AttributeTransferBatch to make it clear what is being transferred.
Reusing balanceOf to read the value of an attribute seems a bit misleading. Maybe choosing a different name (ex. attachedTo) would make it more clear?