NFT Weekly Recap - Have You Ever Wondered Where Your Precious Jpegs Are Stored?
Last week, I discussed how NFT metadata is stored in Weekly Recap. Specifically, uploading and displaying an NFT's jpeg requires four steps:
- Upload the image online and generate a link.
- Create a JSON file containing that jpeg link as well as other relevant information.
- Upload the JSON file and generate another link.
- Point the NFT to the second link.
There are many options to upload files online. But Pinata is becoming the primary solution. Notable customers include Azuki, Bored Ape Yacht Club, and goblintown. Have never heard of Pinata? Let's dive in.
Traditional Storage Platforms
Before we talk about Pinata, let's review our other options. Amazon Web Services, Google Cloud, or even Dropbox usually come to mind when we look for storage space online. All are secure, reliable services run by sophisticated public companies. Why are they not favored by NFT projects?
The argument is two-fold. First, centralized services pose significant counter-party risk. The images uploaded can be taken down by the service providers without user consent. Second, centralized services do not implement content-based addressing. The link they provide is not related to the file being uploaded. If NFT projects alter their images on the back end, centralized services simply assign the original link to the new image. As an NFT owner, you could "lose" your jpeg despite still owning the NFT.
Honestly, from an end-user perspective, the arguments are bleak. First, although Amazon and Google technically have the ability to remove user files, it is very unlikely that they will exercise that right, unless required by government or law. Even if they do, NFT projects could try to upload the images elsewhere and update their links in the NFT contract. As discussed last week, NFT metadata under ERC-721 is designed to be mutable. This also defeats the second part of the argument. If the NFT contract owner is determined to act maliciously, there is nothing storage service providers could do to prevent that, whether centralized or decentralized.
The arguments are more like ideological claims that cater to the Web3 ethos. For example, while I believe Mirror is harder to use as a platform compared to Medium and Substack, it seems that you are not Web3 if you do not publish on Mirror. The golden rule is that whatever is decentralized is good.
That's why decentralized storage services such as IPFS and Arweave are chosen at the moment. Instead of Amazon and Google's centralized data centers, they rely on computer nodes all over the world. Just like bitcoin mining, the IPFS nodes may not be as decentralized as one would expect, but that's not our topic today.
What is Pinata
It is complicated to navigate around IPFS on your own. Pinata is the service provider that helps store user files on IPFS and makes uploading to IPFS as easy as uploading to Google Drive.
Pinata was founded by Matt Ober and Kyle Tut in 2018. It is headquatered in Omaha, Nebraska. It is interesting to note that co-founder Kyle Tut, quoting Warren Buffen, tweets that Omaha is "the safest place to build," because it is immune to manias that are unavoidable in big cities.
According to CrunchBase, Pinata has raised two rounds of financing. On December 24, 2019, Pinata raised $150k in a pre-seed round from Invest Nebraska and The Startup Collaborative. On May 10, 2021, Pinata raised $3.6m in a seed round by Offline Ventures.
To appreciate Pinata's value proposition, we must first understand a concept called "pinning" on IPFS.
On IPFS, nodes store user files that are assigned to them. Popular content will be stored on many nodes at once to ensure security and accessibility. Sooner or later, nodes will run out of storage space. As a result, nodes that become full delete "relatively garbage content" to make room for new content. When this happens, any content that isn't "pinned" could get deleted.
When a node "pins" a piece of content, it ensures that the content will always be available, as long as the node is connected to the IPFS network. Pinata helps users pin content to IPFS (hence the name). Pinata is also blockchain-agnostic, meaning its pinned files could work with any blockchain. In addition, Pinata offers some handy tools to help manage the pinned content.
Pinata is doing a great job. It is recommended in most guides as the go to place for NFT metadata storage. Prominent projects like Azuki and Bored Ape Yacht Club also utilize its service. Pinata claims that over 200,000 customers around the world trust Pinata with their web3 media.
Pinata offers a range of plans from free plans to customized enterprise solutions. They have recently lowered the free plan to only 100 files and 1GB, making it no longer feasible for business use. 100 files are essentially only 50 NFTs. 1 NFT = 1 jpeg file + 1 JSON file, remember? However, as long as Pinata continues to provide excellent services, they will not lack paying customers. One thing to note, Pinata currently only accepts credit and debit card payments. Payment in crypto is not accepted yet.
When talking about money, it begs the question, who should be paying for Pinata/IPFS? Traditionally, buyers of art also assume the responsibility of taking care of it, such as preserving it in a safe space and purchasing insurance. However, in the NFT space, it seems that the NFT projects remain in charge of paying the storage fees. There's no clear answer to the question. As a buyer, I am happy that the seller is handling maintenance fees.
The tech behind NFT is not at all complicated. But many are not familiar with the specifics. I hope this short article helps you learn a bit more about Pinata, the dominant player in NFT metadata storage.