How to upload a folder to IPFS

Learn how to upload files to IPFS to host them in a decentralized manner using the Moralis IPFS API.

Prerequisites

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

  • Node v.14+ or Python
  • NPM/Yarn/PNPM 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 Moralis SDK in your project.

npm install moralis @moralisweb3/common-evm-utils
yarn add moralis @moralisweb3/common-evm-utils
pnpm add moralis @moralisweb3/common-evm-utils
pip install moralis

Step 2: Upload a Folder to IPFS

In order to upload a folder to IPFS, Moralis provides you a [uploadFolder](https://docs.moralis.io/reference/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: "YOUR_FILE_PATH",
        content: "YOUR_JSON_OR_BASE64",
    },
    ];

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

runApp();
import Moralis from "moralis";
import { EvmChain } from "@moralisweb3/common-evm-utils";

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

  const abi = [
    {
        path: "YOUR_FILE_PATH",
        content: "YOUR_JSON_OR_BASE64",
    },
    ];

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

runApp();
from moralis import evm_api

api_key = "YOUR_API_KEY"
body = [{
    "path": "moralis/logo.jpg", 
    "content": "iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAApgAAAKYB3X3", 
}]

result = evm_api.ipfs.upload_folder(
    api_key=api_key,
    body=body,
)

print(result)

To execute the program, run the following command:

node index.js
npx ts-node index.ts
python index.py

In your terminal, you should see the following response:

[
  {
    "path": "https://ipfs.moralis.io:2053/ipfs/QmfL6fMaYJDnizFVj4wxyutDnGMePG2JL95rN2A5mcWyB1/moralis/logo.jpg"
  }
]

Congratulations 🥳 You just uploaded your files 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:

Support

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.