I don’t know if this issue is a limitation of my knowledge or a limitation of Algorand’s NFT implementation. I will explain better with an example:
Imagine you want an RPG card game, there are 100 cards (but could be many more), each card is an NFT
Should each player subscribe 100 assets and maintain a minimum balance of 10 ALGO to play?
Would be totally unacceptable to 99% of the players.
Couldn’t exist a " NFT collection" object to be subscribed that certifies that the user has accepted all NFTs that belong to this group? That way one subscription and 0.2 more ALGO in the balance would be enough
- Is there an “Algorand way” to solve this issue in a straightforward way?.
- are there any future protocol changes planned for NFT to extend their core functionality?
Right now there are a couple of options
- Have the player opt into all the assets before they play
- Have the player opt into/out of assets as needed during gameplay
- Have the player fund a contract to opt into/out of assets on their behalf as needed
Regardless, opting-in requires 0.1 ALGO, so 100 ASAs would require 10.1 ALGO to be held by the account (100 ASAs * 0.1 + 0.1 for account).
In the near future, however, there will be a protocol change introducing box storage for smart contracts. This will essentially allow smart contracts to hold an unlimited number of key-value pairs and hold a lot more data. One of the possibilities this enables is a NFT standard akin to ERC1155. Basically all of the NFT data is stored in a smart contract instead of a ASA which eliminates the need to opt-in.
Nothing official has been released for box storage or these sort of standards yet, but as the feature gets finalized you’ll probably start to see this discussion more. Stay tuned to the governance section of the forum and discord to keep up-to-date.