How to Store Data on IPFS

The internet is changing fast, and with the rise of Web3 technologies, decentralized storage is becoming a vital part of the ecosystem. Among the leading technologies making this possible is IPFS – the InterPlanetary File System.

In this guide, we’ll break down how to store data on IPFS, why it’s important, and provide hands-on examples that anyone can follow – whether you’re a developer, content creator, or just a curious tech enthusiast.


What is IPFS?

IPFS (InterPlanetary File System) is a decentralized protocol designed to store and share files using a distributed system of nodes. Instead of relying on a central server (like Google Drive or Dropbox), IPFS uses a peer-to-peer network where every user can host, share, and retrieve files based on content.

Key Features:

  • Content-addressable: Files are identified by their hash, not location.
  • Decentralized: Files are stored across multiple nodes.
  • Efficient: Reduces duplication and speeds up delivery.
  • Resilient: Files remain accessible even if one server goes down.

Why Use IPFS for Storing Data?

Here’s why IPFS is gaining traction, especially in Web3, blockchain, and decentralized application development:

BenefitDescription
🔐 SecurityContent is cryptographically hashed.
🗃️ Data IntegrityYou always get the exact file – no corruption or tampering.
🌍 Global DistributionAnyone can access files from anywhere without relying on a single server.
🆓 Censorship ResistanceNo central authority can remove your file from the network.
💸 Reduced Hosting CostYou can share the load of storing files with the network.

How Does IPFS Work?

Instead of the traditional HTTP://example.com/file.txt format (location-based), IPFS uses a content-based addressing system:

  • You upload a file.
  • IPFS calculates a SHA-256 hash of the content.
  • That hash (called a CID – Content Identifier) becomes the address of your file.

Anyone can retrieve the file from the network using that CID.

Example:

QmYwAPJzv5CZsnAzt8auVTLjdb98s9nF1jKZVXfRJ8q4eK

This hash ensures data integrity and avoids duplicate storage.


How to Store Data on IPFS (Step-by-Step)

Now let’s learn how to store data on IPFS with a practical example.

A. Install IPFS

You can install the IPFS CLI (Command-Line Interface) or use IPFS Desktop GUI.

IPFS CLI Installation (on Linux/Mac)

# Download the IPFS binary
wget https://dist.ipfs.io/go-ipfs/v0.22.0/go-ipfs_v0.22.0_linux-amd64.tar.gz

# Extract and install
tar -xvzf go-ipfs_v0.22.0_linux-amd64.tar.gz
cd go-ipfs
sudo bash install.sh

# Verify installation
ipfs --version
Code language: Bash (bash)

IPFS Desktop

Download from: https://docs.ipfs.tech/install/ipfs-desktop/


B. Add Files to IPFS

Once installed, initialize your IPFS node:

ipfs init
ipfs daemon
Code language: Bash (bash)

Now add a file:

echo "Hello, IPFS World!" > hello.txt
ipfs add hello.txt
Code language: Bash (bash)

Output:

added QmXnnyufdzAWL3G9wpF9t1BvDUpD9F2G8XoWnCM89X6PHU hello.txt
Code language: Bash (bash)

The hash QmXnny... is your Content Identifier (CID).


C. Retrieve Files from IPFS

Now you can fetch the file using:

ipfs cat QmXnnyufdzAWL3G9wpF9t1BvDUpD9F2G8XoWnCM89X6PHU
Code language: Bash (bash)

Or using an IPFS gateway:

https://ipfs.io/ipfs/QmXnnyufdzAWL3G9wpF9t1BvDUpD9F2G8XoWnCM89X6PHU
Code language: Bash (bash)

D. Use Public IPFS Gateways

If you don’t want to run a local node, you can use public services like:

Just paste the CID at the end of /ipfs/ to access files.


Storing Data via IPFS Pinning Services

By default, IPFS does not “permanently” store files unless pinned. That’s where pinning services come in – they keep your files alive on the network.

Top IPFS Pinning Services:

ServiceFree TierFeatures
PinataGUI dashboard, API, metadata tagging
Web3.StoragePowered by Filecoin, supports large uploads
NFT.StorageOptimized for storing NFT metadata
FleekIPFS + Web Hosting
Infura IPFSDeveloper-friendly APIs, Ethereum tools

Example Using Web3.Storage

  1. Sign up at https://web3.storage
  2. Get an API token.
  3. Upload using CLI or API:
npm install -g web3.storage

web3.storage token <YOUR-TOKEN>

web3.storage put hello.txt
Code language: Bash (bash)

IPFS and Smart Contracts

Smart contracts (especially on Ethereum) often use IPFS to store:

  • NFT metadata
  • User content
  • App frontend UIs

However, smart contracts cannot read IPFS files directly. They only store the CID as a reference.

Example:

string public ipfsHash = "QmXnnyufdzAWL...";
Code language: Bash (bash)

Use frontends (like web apps or wallets) to fetch the data using the CID.


Security, Limitations, and Best Practices

Best Practices

  • Use pinning services to keep important files alive.
  • Store metadata along with your file.
  • Use directories for structured content (e.g., website).
  • Combine with Filecoin for permanent archival.

Limitations

  • No built-in encryption: You must encrypt sensitive files manually.
  • Files not truly permanent: Unpinned files may disappear over time.
  • CIDs change with file changes, unlike versioning in databases.

Conclusion

As the backbone of decentralized storage, IPFS is revolutionizing how we store and share data online. Whether you’re building a decentralized application, uploading an NFT, or just want to embrace censorship-resistant tech, learning how to store data on IPFS is a critical step into the future of the web.

Start experimenting with your own files, explore pinning services, and imagine what truly decentralized content ownership looks like.

Related

Best Frontend Frameworks for Web3 Apps

The Web3 revolution has transformed the internet into a...

What Are NFTs and How Are They Coded?

In the past few years, the world has witnessed...

Best Stablecoins on Tron Network

Stablecoins have become an integral part of the cryptocurrency...

Best Stablecoins to Hold Long-Term

Stablecoins have grown into a cornerstone of the cryptocurrency...

Best Stablecoins to Park Funds

In the fast-paced world of cryptocurrencies, volatility is both...