According to Wikipedia's entry on NFT the minting process "creates a copy of the file recorded on the digital ledger as an NFT". Is that literally true of Ethereum based NFT for example? For some reason I was under the impression that what is actually stored inside the blockchain is the cryptographic hash of the underlying digital asset, and possibly a reference to the file's location, not the actual file itself. I guess it's easy enough to store the whole file when it is a jpg, or a 30 second video clip, but if you wanted to represent say "The Godfather" as an NFT, that would really bloat the blockchain if the entire film in 4K (about 11Gb?) had to be saved in the block.
It is in fact hash of the image file, URL of an off-chain resource, or sometimes just a simple ID with no other data.
Take this random NFT token for example. The contract address is 0xd0e7bc3f1efc5f098534bce73589835b8273b9a0 and the token ID is 339
.
If you call the function tokenURI(uint256 tokenId)
, it retrieves data from a mapping mapping (uint256 => string) private _tokenURIs
.
The string value for the ID 339
is https://metadata.thetwentysix.io/cryptocats/339. And yes, it is a (off-chain) JSON file that contains link to the actual image https://cryptocats.thetwentysix.io/contents/images/cats/339.png