2

Is it correct to say that

  • an NFT (kept say on the Ethereum blockchain) for an artwork file (say a .jpg or an animated .gif) contains only a single resource locator for where that file is kept (in addition to its other contents), and

  • typically the locator will be either a) a URL or b) a hash that the owner of a website (or FTP site) has associated (in his own database) with a page or file that he keeps on his webserver (or FTP server)?

If the answer is "Yes", then if the website (or FTP site) disappears the NFT will no longer point to the artwork, right?

If the answer is "No", then what am I missing?

1 Answer 1

1

This is usually the case, however it is a common practice to store artwork at IPFS (decentralized filesystem) which offers better availability and continuity as opposed to a centralized web hosting.

To your other point I have recently worked on a number of projects that involve what we call "rich NFTs" where metadata include links to multiple sources, such as images and videos in different resolution, low poly and high poly 3D models etc. Similarly you could include links to the same artwork file stored at different locations (and/or in different formats or resolutions).

To summarize:

  1. Use IPFS for artwork storage.
  2. Nothing stops you from including multiple artwork links in your metadata JSON file.

P.S. In case you want your token image to display correctly in popular marketplaces such as OpenSea you should follow their guidance as they require particular naming and they follow a particular order of priority when choosing the main display picture: https://docs.opensea.io/docs/metadata-standards.

3
  • Many thanks for this. But please can you clarify on both points. I have now read both pages that you link to. As I understand it, IPFS is a transfer protocol, so its distributivity is dependent on how many people use it standalone or how many gateways exist from the web. Is that correct? As for point 2, that boils down to putting multiple URLs in the NFT, i.e. mirroring. Looked at from another point of view, these are the places where a hostile party that wished to prevent an NFT functioning as intended would try to pinch off the bottleneck. This is if I've understood correctly.
    – edd
    Commented Dec 26, 2021 at 12:55
  • IPFS is a protocol and a network of nodes that store data. Ideally you should host your own IPFS node(s) if you want to ensure your files are always on the network. Alternatively use a paid plan from an IPFS gateway service such as Pinata for example: pinata.cloud. In practice I think many people just use a free plan from a gateway service. Commented Dec 28, 2021 at 8:19
  • Regarding point 2 yes, it is important to ensure that the service or storage location (IPFS or not) returned by your tokenUri is stable and always returning the JSON object. Otherwise doesn't matter how many URLs you put inside your metadata, the metadata file itself won't be retrieved. Unfortunately there isn't a way to specify multiple URLs to metadata JSON file in ERC-721 standard as far as I'm aware. Commented Dec 28, 2021 at 8:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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