IPFS hosting your NFT art and metadata in the MetaVerse
I've covered IPFS a few times on the blog before, you can read those articles here:
https://bits.jeremyschroeder.net/blockfrost-io-script-example/
https://bits.jeremyschroeder.net/mr-pinners-pinning-lab/
https://bits.jeremyschroeder.net/building-a-nft-minting-bot-with-cardano-telegram-and-python-part-3/
This time we will use NFTport's API via the repo we cloned in the last article. We will be using the commands to upload our images and their metadata to IPFS.
For a refresh:
Clone the CodeSTACKr Minter Dapp repo to your machine.
From your terminal cd into the repo and then the backend
directory and the run the following npm command to install all the dependencies:
npm install
For this part you will need a API key from NFTport.xyz to move forward. Create a file in the backend
directory called .env
and put your key in like this:
NFTPORT_API_KEY=my_super_secret
Uploading the images
Upload Files/Images:
npm run upload_files
This command uploads all files in the /backend/build/images
folder to IPFS via NFTport.
Example Output:
Starting upload of images...
0.png uploaded & 0.json updated!
1.png uploaded & 1.json updated!
2.png uploaded & 2.json updated!
3.png uploaded & 3.json updated!
4.png uploaded & 4.json updated!
5.png uploaded & 5.json updated!
6.png uploaded & 6.json updated!
7.png uploaded & 7.json updated!
8.png uploaded & 8.json updated!
9.png uploaded & 9.json updated!
You will notice that the JSON file was also updated with the IPFS hash of the image. Now that is pretty slick, talk about saving time!
Your images and metadate are ready, so let's put the metadata in the metaverse!
Uploading metadata to NFTport
Upload the metadata:
npm run upload_metadata
This command uploads all .json
files in both the /backend/build/json
folder and, if it exists, the /backend/build/genericJson
folder as well.
Example Output:
Starting upload of metadata...
Metadata uploaded!
Not as exciting, but just as important. In the build/ipfsMetas
there will be a file called _ipfsMetasResponse.json
if everything worked.
Mainly you'd like to see the "response": "OK",
line. You can open the metadata_directory_ipfs_url
in Brave, but it is the root directory and should have a bunch of files there depending on the number of images for your project.
Super sweet, you have data in the MetaVerse, let's deploy a smart contract so you can use it.