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/arc-0003.md at main · algorandfoundation/ARCs · GitHub

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

3 Likes

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 ARC-0003: Support for Integrity Properties by fabrice102 · Pull Request #13 · algorandfoundation/ARCs · GitHub

It looks like the community thinks that metadata should be immutable too. See https://github.com/algorandfoundation/ARCs/issues/3#issuecomment-911653526 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 ARC-0003: Rename NFT to Pure NFT and Clarify Text by fabrice102 · Pull Request #12 · algorandfoundation/ARCs · GitHub and now merged.

Can we Create a Dynamic nft by using ARC-0003 Standard

Welcome to Algorand!

Yes, you can use ARC-3 + ARC-19

what is the recommended ARC standard (ARC-0003 VS ARC-00069) for creating the Dynamic NFT’s and Do we need to use ipfs in such case ?

You need to use both ARC-3 and ARC-19 together.

When using ARC-19, IPFS is mandated.
This is to ensure that anyone can access the files at any time.
(Even if not pinned in IPFS, you can check a file matches an IPFS CID, which you cannot do if you just provide a URL. We don’t want users to lose access to their ASA because the servers they are hosted goes down.)

Can we used IPFS with ARC69 or not ?

Yes, you can use IPFS with ARC-69.

ARC69 is compatible or not to create a dynamic nft .If it is compatible then is there any need of IPFS ? ARC69 is better then ARC3+ARC19 or not ?

ARC69 is compatible or not to create a dynamic nft .If it is compatible then is there any need of IPFS ?
ARC69 is better than ARC3 + ARC19 or not ?

ARC69 is compatible or not to create a dynamic nft .If it is compatible then is there any need of IPFS ?
ARC69 is better alternate of ARC3 + ARC19 ?

Hello,
To create dynamic NFTs, you should use ARC-3 + ARC-19.
If you are looking for an example of how to do it, please look at this piece of code: