Request for better storage features/capacity on algorand


Wanted to request to Algorand Dev Team and Dev Contributors for upgrades that make the storage capacity, standard, and features much better for applications. For some reason, storage on Algorand is really constrained and limited. One of the features which I think should be there, is support for Map data structures to store different types as keys e.g Tuples, etc. Currently, you can only create a Map with an account address as the key and store it on Algorand.

On Ethereum and EVM-based chains, you can create a Map with its key as a Tuple, which also makes these chains more composable and have more capacity for use cases like NFTs where you really need good storage to prevent double spending or fraud in NFTs and other assets that rely so much on uniqueness, helps do more computation on-chain to prevent future issues(again fraud, and hard-to-verify problems). Therefore, an upgrade to support better storage is much needed, especially the support for Maps with arbitrary keys and not only addresses.

Just to expand on how this upgrade will be useful, just think of how you would search up an NFT, ideally you would just provide an external hash and you get the data of the NFT. If you create a Map to track an NFT on-chain, it is incredibly hard to search it up on Algorand using an external hash as the key, you will first of all have to know which address or account created that NFT and then provide it to the Map’s key(also really bad for User Experience).

If the storage upgrade could be done, you will be able to create a Tuple containing the external hash and say the Address, or even simply have the external hash as a key to the Map, and then anyone in public can just call a function and provide the external hash to retrieve NFT data before making a transaction.