Web3 is evolving rapidly, not just in terms of the number of cryptocurrencies that are being created, but also in the applications of web3. Web3 in and of itself is defined by “chains”, well, “blockchains” in particular. Blockchains allow for more security in ownership of digital assets because of its decentralised nature. More specifically, one’s ownership of any digital asset, be it cryptocurrency in the form of fungible tokens or other assets in the form of NFTs (Non-Fungible Tokens) will be recorded in encrypted ledgers across the entire blockchain. As such, it is virtually impossible to hack the entire blockchain to compromise the ownership of these assets. This is compared to a more centralised system where data and information is stored in servers such as Amazon Web Services (AWS). That server can be hacked into in multiple ways theoretically, causing the security of the ownership to be put at risk.
But blockchains come at a cost. Every transaction that occurs on blockchains have to be verified. Miners are the ones who do that verification, and this verification process incurs “gas fees”. Thus, Each transaction requires verification, and each verification incurs “gas fees”. Now, gas fees vary. Transactions which are heavier require more gas, and transactions which are lighter require less. For some transactions, buyers pay the gas fees, and for other transactions, sellers pay the gas fees.
But what does “heavier” and “lighter” transactions mean? Well, let’s look at the very meaning of “blockchain”. “Block chain” is termed as such because blocks of data are linked together in chains. Therefore, heavier transactions mean that more data blocks in the chain are called up, while lighter transactions mean that lesser data blocks are called up.
On-chain NFTs
So, how does this apply to NFTs? NFTs are made up of two primary data components, namely, the ownership data and the media data. The ownership data is the encrypted data in the smart contract that determines the ownership of the token. The media data essentially refers to the NFT file itself, whether it is a JPEG, PNG, MP3, MP4 or whatever other format that is supported. Ownership data must sit on the blockchain. It is the very essence of the web3 philosophy. Media data can sit on the blockchain too (this is called as “on-chain NFTs) but every time a transaction such as a purchase, a transfer or a burn (token deletion) is initiated, the media data will be called up. If the media is of a large file size, more data blocks will be required, and thus more gas fees will be charged. A simple low resolution NFT, such as those of CryptoPunks would have a smaller media file size and therefore have lower gas fees than a film shot in 4K, for example.
Off-chain NFTs
In order to save on gas fees, therefore, some NFT projects host their smart contracts on the blockchain, but their media data off the chain. That is to say, NFT media which are stored off the chain would incur less gas fees. Now, storing NFT media data off-chain means that whenever a transaction for that NFT occurs, only the smart contract data is called up, and the data for the NFT media is not, because it sits away from the blockchain.
Some projects store their NFT media data on cloud servers, such as Dropbox or Google Drive. Others store their NFT media data on IPFS (interplanetary file system) nodes. IPFS is a web data protocol that seeks to solve the problems of the Hypertext Transfer Protocol (HTTP) and File Transfer Protocol (FTP) that has been the backbone of the Internet as we know it since the mid 1990s. Whenever we query for a certain website, or link to a certain file under the current HTTP or FTP system, we are querying for its location. When a connection is made to the location of the file, we can then access the file for viewing or download. If the server goes down, or if the cloud goes out of business, or if the creator of the file decides to move the file, the link will invariably be broken, and we won’t have access to that file anymore. IPFS seeks to correct that by hosting that file across multiple nodes. The media file thus is more permanent in the sense that it does not depend on a single server.
Some NFT projects run their own IPFS nodes, especially those that have many items in their collection. Others use commercial IPFS nodes, such as Pinata or NFT Storage.
Now, a problem still exists even with the IPFS system. The NFT creator can still at any time delete the NFT file, breaking the link between the file itself and the blockchain upon which the NFT sits. If you were to purchase an off-chain NFT, and the file itself is deleted, your ownership of that NFT is still retained on the blockchain, but you won’t have access to the NFT file anymore. It would be like owning something that used to exist at one point in time, but not anymore.
Checking the location of your NFT
Now, needless to say, there is a trade off here. NFT projects which are on-chain have higher gas fees but the NFT owners are not in danger of losing their NFT media. NFT projects which are off-chain have lower gas fees but pose a trust issue with those who buy their NFTs.
As of now, there is no quick solution to this matter. The best thing I can tell you is that you should only buy NFTs from projects which you trust and believe in. During early mints and pre-sales, it is not possible to tell whether the NFT is going to sit on or off the blockchain. Take a look at this screenshot from Sneaker Heads’ early mint. There is no indication as to whether the NFTs are going to be hosted on-chain or off-chain because for early mints, all that is required is the potential NFT buyer’s wallet address to be whitelisted, and access to a minting platform.
The only way, as of now, to tell whether an NFT is sitting on or off the chain is when it is listed on a “secondary” marketplace such as OpenSea , Rarible or Magic Eden. On OpenSea, for example, you would first need to look for the NFT that you are interested in. You would then need to scroll down to ‘Details’ on the left-hand side and access the link ‘Contract Address.’ This will bring you to an external site called Etherscan, which is a platform where you can check transactions on the Ethereum blockchain.
In Etherscan, you would need to click on the ‘Contract’ tab located underneath the ‘Contract Overview’ box. After clicking on ‘Contract,’ select ‘Read Contract’ and scroll down to ‘tokenURI.’ This dropdown option allows you to enter the ID number of your token. If a link appears, the media is most likely stored off the chain. A link beginning with “ipfs://” means that it is stored in IPFS nodes, while a link beginning with “https://api” means it is stored in a cloud server.