To give a bit of context:
- For a given ASA, the
URL field
is immutable
- The
Reserve Address
is mutable
(If it has not been set to the Zero Address & the Manager Address exists)
By using a template, template-ipfs://{ipfscid:1:raw:reserve:sha2-256}
ARC-19 allows client to read/display URL based on the value of the Reserve Address
. (An IPFS hash can be obtained from the Reserve Address
.)
ARC-69 is a community-based convention used for Digital Media.
- The
URL field
of the Asset points to a Media file (png, jpeg ...)
- The metadata associated with the Asset is stored inside the
Note Field
, which is accessible during the creation/config of the Asset. (If the Manager Address
exist)
- Metadata Size is restricted (The
Note Field
can only contain 1024 Bytes)
- Metadata is stored ON-CHAIN and can be read only by querying an indexer (see Archival Node)
- As long as the
Manager Address
is set, Metadata is mutable.
ARC-3 is a general Fungible/Non-Fungible Token convention.
- The
URL field
of the Asset points to an OFF-CHAIN IPFS file containing the Metadata (JSON based on ERC-1155)
- This JSON file can have multiple fields and is not restricted in size.
- Metadata is stored OFF-CHAIN, so it can be read by querying the value inside the
URL Field
of the Asset from a non-Archival Node. (Which is way more convenient than using an Indexer)
To have mutability with OFF-CHAIN Data (which is encouraged & matches every case), ARC-19 can be combined with ARC-3.
- The
Url Field
MUST be equal to template-ipfs://{ipfscid:1:raw:reserve:sha2-256}#arc3
Reserve Address
MUST be set
Manager Address
MUST be set
If you have more questions about ARC or Algorand in general, I encourage you to join the Discord and the Forum.