- IPFS is Immutable - Anything that is uploaded to IPFS cannot change, which helps preserve the value of an NFT.
- IPFS is Decentralized - Instead of using a centralized server where one person can control the content, IPFS is distributed and makes sure anyone can pin the content and keep it persisted.
- IPFS is Portable - Since the CID for content will be constant, and IPFS pinning works in a decentralized manner, anyone can take a CID and pin it themselves. This allows content to be “transferred” and kept up on the network as people value it. (read more about that concept here)
https://server.com/pinnie.png
, then whoever has control of the server can simply upload totally different content and keep the same name, thus keeping the same link. Or they could just delete it and it would be empty!
How to Make an NFT with Pinata
It’s important to note that Pinata is currently not providing any minting services. This means you would use Pinata to host the media content and the metadata for the NFT, and then another service or self-deployed smart contract to actually mint the NFT. But don’t worry, we’ll show you a few different ways you could do that!Step 1: Upload the Content
The first thing you need to do is upload the content to Pinata. Since IPFS supports any kind of file, the truth is any kind of file can be an NFT. How that file is referenced in the metadata is a bit of a different story, so be sure to check metadata standards to make sure you content will be seen on marketplaces or wallets. To upload the content you can either do a simple upload through the Pinata App by navigating to the files page and uploading through the UI like so:Step 2: Create and Upload Metadata
Now that we have the CID for our content on IPFS, we need to create a metadata file that will have all the other information about the NFT. You will want to use a JSON format and follow industry metadata standards to make sure that it will show up in marketplaces and wallets. You can use the template below as we’ll walk through each piece.metadata.json
name
- This will be the name of this particular NFT, not the collection.description
- Describes the NFT.external_url
- A link to the website of the NFT project or creator.image
- This would be the link to the image, if it was a video or gif then you would want to follow metadata standards and have a backup image, and also add ananimation_url
for the video.
metadata.json
(this might be different if you are making a large project using folders). Then you can upload the metadata file to Pinata using the app like before, or if you are using the API we have a JSON endpoint you can use to simplify the process, like so: