When you store a URL as the metadata of ERC721, does that defeat the purpose of the immutability aspect of a blockchain, since the content that URL is pointing to can be modified? How do I effectively use the metadata of ERC721 without storing everything on the blockchain? I know IPFS is a popular choice, but could I use a conventional URL endpoint and still have it align with the purpose of ERC721?


This is a very important topic, and it's been pointed out that not enough attention is given to it.

Ultimately, immutability is a bit of a spectrum. If somehow every last device storing the Bitcoin and Ethereum networks would be destroyed, the networks would be lost. Fortunately, that is improbable enough to not worry about. Similarly, even IPFS is not as permanent as people think sometimes. Files that are not accessed often have a chance of getting dropped of the network. (This can be mitigated by running an IPFS node and pinning, but then users are somewhat dependent on either running their own node, or relying on someone who does.) Arweave has very strong liveness guarantees (that means guaranteeing that your file will always be there), along with immutability (that your file cannot change). Mintbase uses them for their NFTs for those reasons, as does InfiNFT.

Does that mean that you must use Arweave in order to make an NFT? It depends how far you want to go in guaranteeing the immutability and liveness of the underlying asset being tokenized by the NFT. The same goes for IPFS. And, to answer your question directly, the same goes for using a URL. There should be a spectrum in using a URL too - you could reduce the problem by ensuring NFT purchasers have some level of agency in the platform they are stored in - that they are able to renew the domain, and to re-upload their content to their endpoint in the event it goes down.

That's just one idea. The basic idea behind it is that there should be as much transparency as possible about the URL and its management. It isn't a perfect answer to all of the questions of immutability and liveness, but will be the most you can do in aligning with the goals of decentralization, like you mentioned in the question.

Hope that helps!

  • Thank you for your detailed answer. I have two following up questions: 1) If I'm understanding Arweave correctly, it's a non-Ethereum-based private blockchain, which means I'd be using Ethereum for ERC721 and another blockchain to store the metadata because it costs less? Is this a common pattern for NFT? 2) When you say the users are able to renew the domain, and to re-upload their content to their endpoint in the event it goes down, that helps with the permanency of data, but not necessary with the immutability of them, correct? – Kevvv Apr 12 at 22:35
  • I would think it kind of helps with both. If the content is changed, at least the user can change it back. It's not foolproof, and not true immutability, but it's a protection against some mutability. The same goes for the permanency, depending on how it's set up. In short, the setup will not be as trustless, but can still at least take some steps. – Linum Labs Apr 13 at 6:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.