IPFS NFT storage
IPFS (the InterPlanetary File System) is the most common place NFT images and metadata actually live, because it is content-addressed. Instead of naming a file by where it sits ('this server, this folder'), IPFS names it by a hash of its contents, called a CID (content identifier). An NFT's metadata uses an ipfs://<CID> link, and that link is tamper-evident: if anyone changes a single pixel of the image, its hash changes, so the CID no longer matches and the swap is detectable. This fixes a real weakness of plain HTTPS links, where the owner of a server can silently replace the art behind an unchanged URL.
The catch is that content addressing guarantees integrity, not availability. A CID is only retrievable while at least one node on the network is actually storing (pinning) that content. IPFS does not magically keep files alive forever; if every node that pinned an NFT's image stops, the CID still 'names' the image but nobody can serve it, and it effectively disappears. So creators rely on pinning services, or pay-once permanent storage like Filecoin or Arweave, to keep assets reachable.
This makes IPFS a middle ground between fragile centralized hosting and expensive fully on-chain storage. It is far more robust than a mutable company URL — the link cannot be quietly rugged content-wise — yet it still depends on someone continuing to host the bytes. A frequent real-world failure is an NFT whose metadata uses a centralized IPFS gateway URL (like an https gateway) rather than a native ipfs:// CID, reintroducing exactly the single-point-of-failure that content addressing was meant to remove.
A collection mints with image links like ipfs://bafy.../1.png. Years later the team's pinning subscription lapses and no one else pinned the files; the CIDs are still in the metadata but the images no longer load anywhere — the art is gone even though the NFTs remain.
A CID proves the file has not changed; it does not promise the file still exists. 'Stored on IPFS' is only as durable as the pinning behind it.