Skip to main content

How to upload NFT metadata to IPFS


Before getting started, make sure you have the following ready:

  • Node v.14+ or Python
  • NPM/Yarn or Pip

Step 1: Setup Moralis

First register your Moralis account and get your Moralis API Key.

Once you have your Moralis API Key, install the Moralis SDK in your project.

npm install moralis @moralisweb3/common-evm-utils

Step 2: Upload NFT metadata to IPFS

In order to upload NFT metadata to IPFS, Moralis provides you a uploadFolder endpoint to do so.

Here you'll need two parameters: path and content.

Once you have obtained both the path and content, you can copy the following code:

const Moralis = require('moralis').default;
const { EvmChain } = require('@moralisweb3/common-evm-utils');

const runApp = async () => {
await Moralis.start({
apiKey: "YOUR_API_KEY",
// ...and any other configuration

const abi = [
path: "metadata.json",
content: {
name: "NFT Name",
description: "This will be the NFT description.",
image: "ipfs://bafybeihewi4brhhmjqvquwdqnlzhnamfh26txwmw2fe4nfswfckpthowna/brandResoursesMage2.svg",
attributes: [
"trait_type": "Base",
value: "Starfish"
"trait_type": "Eyes",
value: "Big"
"trait_type": "Mouth",
value: "Surprised"

const response = await Moralis.EvmApi.ipfs.uploadFolder({ abi });



Step 3: Run the script

To run the script, enter the following command:

node index.js

In your terminal, you should see the following JSON response:

"path": ""

Congratulations 🥳 You just uploaded your NFT metadata to IPFS with just a few lines of code using the Moralis IPFS API!

API Reference

If you want to know more details on the endpoint and optional parameters, check out:


If you face any trouble following the tutorial, feel free to reach out to our community engineers in our Discord or Forum to get 24/7 developer support.