ARC-0003 - Algorand Standard Asset Parameters Conventions for Fungible and Non-Fungible Tokens

In order to standardize fungible and non-fungible assets (NFTs) on Algorand, an ARC (Algorand Request for Comments) has been opened about two months ago.

The ARC should be finalized by the end of the week.

Last proposed changes are: Discussion for ARC-0003 - Algorand Standard Asset Parameters Conventions for Fungible and Non-Fungible Tokens · Issue #3 · algorandfoundation/ARCs · GitHub

Current text (without the last proposed changes): ARCs/ at main · algorandfoundation/ARCs · GitHub

Please feel free to comment on it if you see any issue.


Hi, I think that the hash in the blockchain should not be hash of the json file, but the hash of the asset…

It is mainly because you may need to update the json file for example if you want to make localisation to other languages than you made when you created the item in the blockchain.

Also I am missing the hash of the asset in the json file.

The use case: If you are the artist that created picture, and you let the picture to be owned by the asset owner… There is some hash of the picture. Noone can legaly use this picture without owning the asset, but in the ARC0003 there is no hash defined… Also we need to prevent the artist to create two ASAs with the same hash… If you publish same picture to two different url addresses and you have two different hashes of these files stored in the blockchain, the rights of those who buy the nft are harmed because they cannot check if they will have the discrete ownership of the asset. The same applies to mp3, videos, 3D model files, and basicaly anything that the nft can be created…

Also I did not get point where you state

If the metadata JSON file contains a localization attribute

But above in “JSON Metadata File Schema” there is no localization attribute

Also I dont see the point of making multiple files… If you want to have localized texts, you can do it in the single json. The reference between the en and en.json file is not defined. If you really need to make the other files, why not define full uri/url to the language source file?

Also the localisation strings are not in iso format… proper localisation strings are for example en-US, en-GB … english speakers should understand that some words does spell different in other languages… These is not just specific to english… fe de-DE, de-CH, de-AT

Btw, is is possible to search assets in indexer by the suffix @arc3 ?

Also why dont you specify that the number of assets for nft must be exactly one with zero decimals? If you make it standard, it would be much more effecient to process…

It is true that is is very important to make the asset itself immutable.
Interestingly on Ethereum, neither the metadata nor the asset is ensured to be immutable.
ARC-3 forces the metadata to be immutable and highly recommend the asset to be too through

It looks like the community thinks that metadata should be immutable too. See and below.

If you want to add localization, I think you can always publish them in separate files, although I agree that it makes it more cumbersome for wallets and block explorers to find those localizations.

I took the text from EIP-1155 but I agree it is confusing actually.
I’ll try to improve upon it and merge the two schemas that are redundant.

This would make sense to add this feature once the standard is finalized indeed.

Proposed in and now merged.