Site icon Crypton NFT

On-Chain vs. Off-Chain NFT Metadata: Where Is Your NFT Actually Stored?

Hero image: on-chain vs off-chain NFT metadata, close-up of a glowing server rack LED

Most NFTs do not store the actual image or video on the blockchain. The blockchain only holds a token with an owner address and a pointer called a tokenURI, defined in the ERC-721 standard, which links out to a separate JSON file describing the asset. That file, and the image it points to, usually lives off-chain on a traditional web server, a pinning service for IPFS, or a permanent network like Arweave. If the off-chain location goes down, as happened to NFTs minted on FTX’s platform after its 2022 collapse, the token still exists and still has an owner, but the artwork can stop loading in wallets and marketplaces entirely. Fully on-chain projects avoid this risk by storing the image data, often as SVG code, directly inside the smart contract itself, trading flexibility and low minting cost for guaranteed long-term permanence that doesn’t depend on any company staying in business.

What a tokenURI actually points to

Every standard NFT is built on ERC-721, the Ethereum token standard that defines ownership and transfer rules. The optional metadata extension of that standard includes a function called tokenURI, described in the spec as “a distinct Uniform Resource Identifier (URI) for a given asset” that “may point to a JSON file” conforming to the ERC-721 Metadata JSON Schema (eips.ethereum.org). That JSON file typically has three core fields: a name, a description, and an image, which the spec defines as “a URI pointing to a resource with mime type image/*”.

In plain terms: the blockchain stores a link, not the picture. When you buy an NFT, the smart contract records that your wallet address owns token #1234 of a given collection, and it gives you a URI to look up what that token is supposed to represent. What happens at the other end of that URI is where on-chain and off-chain storage diverge, and it’s a separate question from what you actually own when you buy an NFT, which is about legal rights rather than file storage.

Off-chain storage: the common case

Most NFT collections, including early PFP projects, point their tokenURI at a location that isn’t the blockchain itself, usually one of two setups.

The first is a centralized web server or API, where the project hosts the JSON file and image on its own infrastructure the same way a normal website hosts files. It’s the cheapest and simplest option, and also the most fragile, since the files only exist as long as someone keeps paying for and maintaining that server.

The second is IPFS, usually paired with a pinning service. The InterPlanetary File System addresses files by a content identifier, a fingerprint generated from the file itself, rather than by a server location, so in theory the same file can be served by any node that has a copy. In practice, a file only stays retrievable if at least one node keeps “pinning” it, which is why most projects pay a pinning service to guarantee their files stay available rather than relying on the public network alone.

Fully on-chain storage: the expensive, permanent option

A smaller category of projects stores the actual visual data inside the smart contract itself, often as SVG markup that a wallet or marketplace renders directly, with no external file lookup at all. Collections like Nouns and OnChainMonkey use this approach. It’s dramatically more expensive because writing data to the blockchain costs gas proportional to its size, which is also why gas fees exist in the first place. The tradeoff is permanence: as long as the blockchain exists, the artwork exists with it, independent of any company, server, or pinning service.

Permanent decentralized storage: Arweave

Arweave sits between the two extremes. Instead of a recurring hosting fee, it uses a one-time upfront payment intended to fund storage indefinitely through a built-in incentive structure for the network’s storage providers. A project can point its tokenURI at an Arweave transaction ID, keeping the metadata off the base chain for cost reasons while aiming for the same long-term durability as fully on-chain storage.

What happens when off-chain storage fails

This isn’t a hypothetical risk. In December 2022, roughly a month after FTX’s bankruptcy filing, holders of NFTs minted on the FTX US platform discovered their images had stopped loading. FTX had hosted the metadata for those tokens on its own Web2 API rather than on IPFS or Arweave, and once that infrastructure was wound down, the links resolved to nothing. The most visible casualty was a set of Coachella lifetime-pass NFTs that had raised roughly $1.5 million through FTX US’s marketplace; their artwork showed up as empty gray boxes even on third-party marketplaces like Magic Eden (blockworks.co). The tokens themselves were untouched on the Solana blockchain, with intact ownership records. The pictures were simply gone.

A less severe version of the same problem hit Nike’s RTFKT Clone X collection, whose images briefly went dark during an infrastructure migration away from a centralized content host toward Arweave, before being restored within hours. The difference between a multi-hour outage and a permanent loss came down to whether a team was actively maintaining the off-chain link, which is exactly the maintenance burden that decentralized or on-chain storage is designed to remove.

How marketplaces try to signal permanence

Because this failure mode is well known, major marketplaces have built features to flag when a collection’s metadata has been moved to more durable storage. OpenSea lets creators migrate their metadata to IPFS and Filecoin and marks the result with a snowflake icon, which the platform describes as a signal that the metadata has been “frozen” (blog.ipfs.tech). Filecoin’s storage providers use cryptographic proofs and ongoing payments to keep data available over time, which is a different durability model than Arweave’s one-time payment, but serves the same goal.

That snowflake icon is a useful signal, not a guarantee. OpenSea’s own documentation acknowledges that metadata can still change in ways that are hard to detect, and the freeze indicator reflects a manual process rather than an automatic contract check. More importantly, the smart contract itself usually still has an owner-controlled function that sets the base URI. Unless a project has explicitly and verifiably removed that function, the party that deployed the contract can, in principle, repoint the tokenURI even after a collection is marked as frozen on IPFS. Treat the snowflake as a sign of good intent, not as proof that the link can never change.

Questions to ask before you buy

A buyer who wants to avoid the FTX scenario can check a few things before minting or purchasing, especially for higher-value pieces:

None of this affects whether you legally hold the token. It affects whether the thing you bought still looks like anything in five years.

The bottom line

The blockchain is extremely good at recording who owns what and extremely expensive at storing large files, which is why almost every NFT splits the two jobs: an on-chain token paired with an off-chain pointer to the actual content. That split is efficient, but it means the durability of your NFT’s artwork depends on decisions made at mint time about where that pointer leads. IPFS with solid pinning, Arweave, and fully on-chain rendering all solve the problem in different ways and at different costs. A link to a company’s own server does not, as FTX’s NFT holders learned the hard way. Before you buy into a collection, it takes less than a minute to look up where its metadata actually lives.

Exit mobile version