Modifying my metadata after storing it

Since changing the metadata through ipfs is not possible, what are some other ways through which I could store my metadata in a way that I can change it when I want?
Also can I retrieve the ipfs file on the chain and then modify it and store it on the chain itself?

Hi Anoushka,

You can use something like ARC19 as a way to change the URL where the metadata can be found. Alternatively you can use ARC69 to store metadata in the note field of asset config transactions.

There is no way to make a request to IPFS on chain but you can pass the contents of the metadata in an application argument and compare it against the metadata hash attribute on the ASA to ensure it is correct.