
IPFS (the InterPlanetary File System) is a peer-to-peer protocol that finds files by what they contain, not by where they sit. Every file gets a Content Identifier (CID) built from its own hash, and any node that holds the file can serve it to you.
TL;DR:
Updated Oct 19, 2026: removed a stray metadata line, rewrote the opening, and added a diagram, a real CID example, a limits section, and the AIOZ Pin remote pinning commands.
When you add a file to IPFS, your node splits it into blocks, and Kubo (the most widely used implementation) makes them 256 KiB each by default. Each block is hashed and the hashes are linked into a tree called a Merkle DAG, and the top hash of that tree, the root CID, is the only thing you need to share.
Retrieval runs the other way: your node asks the distributed hash table (DHT) which peers provide the CID. It then fetches blocks from those peers over Bitswap, the IPFS block exchange protocol, and checks every block against its hash before rebuilding the file.

Because the CID comes from the content, you can test the idea yourself with any hashing library. We hashed two short text files with the multiformats JavaScript library (CIDv1, raw codec, SHA-256), and one extra character produced a completely different CID:
"hello world\n" -> bafkreifjjcie6lypi6ny7amxnfftagclbuxndqonfipmb64f2km2devei4
"hello world!\n" -> bafkreihm64a7oj6z4llxysvetldpxpgjs4tyvsqbbpo65olbyegpktkdliThat is why a CID works as a tamper check: if a peer sends you different bytes, the hash won't match, so you never have to trust the server. The anatomy of a CID breaks the string down byte by byte, and DHT and Bitswap covers the lookup and transfer steps in depth.
A normal web link names a server and a path, so it breaks when that server goes down or the file moves. It also gives you no built-in way to check the file you got, while an IPFS link names the content itself.
| Aspect | IPFS | Traditional cloud storage (HTTP) |
|---|---|---|
| Architecture | Peer-to-peer network of nodes | Servers run by one provider |
| File address | Content Identifier (CID) | Location-based URL |
| Who can serve it | Any peer that holds the blocks | The server named in the URL |
| Verification | Recompute the hash and compare | Trust the provider |
| Link rot | A CID resolves while any peer still provides it | A dead server or moved file breaks the URL |
Content addressing also deduplicates: if two people add the same file with the same settings, they get the same CID, and the network stores one set of blocks. Our guide to content vs location addressing goes further into the trade-offs.
Two more pieces turn content addressing into something your users can reach every day, without running IPFS themselves.
IPFS gateways translate an HTTP request such as /ipfs/{cid} into an IPFS lookup and return the file as a normal web response. Your users load IPFS content in any browser without running a node, and many gateways add CDN caching so popular files come from an edge server near the reader. See how an IPFS gateway works for the full request flow.
Pinning solves a storage problem: IPFS nodes have limited disk space and run garbage collection to free it, deleting anything that is not pinned. A pin tells a node to keep a CID and every block under it, so without one your file lives only as long as someone keeps a cached copy. Our post on unpinning and garbage collection shows what happens to the blocks when a pin is removed.
NFTs made IPFS famous, but the same mechanism fits any data that should stay verifiable and reachable without one central host:
Two worked examples are in our IPFS case studies, and hosting a static website on IPFS walks through the website case.
A few limits catch new users, so it helps to know them before you build:
The protocol is open source, and running your own node costs nothing in license fees, but you still pay for the disks, bandwidth, and uptime that keep it reachable. That is why most teams pay a pinning service instead of running their own node fleet. On AIOZ Pin, storage costs $20 per TB per month and bandwidth $20 per TB, with the first 40,000 pinned files free and $0.10 for each extra 1,000 pins. Our AIOZ Pin pricing breakdown works through a full monthly example if you want to estimate your own bill.
We built AIOZ Pin as a pinning service on the AIOZ DePIN, a network of independent node operators. You upload a file or pin an existing CID through the API, the SDK, or the CLI. AIOZ Pin keeps it pinned and serves it through two kinds of gateway:
https://public.aiozpin.network/ipfs/{cid}: no account needed, meant for testing and low volume. The docs set 15 requests per minute per CID and 200 per minute per IP.AIOZ Pin also implements the IPFS Pinning Services API, so a Kubo node can pin to it directly. These are the commands from the AIOZ Pin Pinning Services API docs, where YOUR_AUTH_JWT is the access token from your email login:
ipfs pin remote service add pin https://api.aiozpin.network/api/psa/ YOUR_AUTH_JWT
ipfs pin remote add --service=pin --name=<human-readable-name> YOUR_CID
ipfs pin remote ls --service=pin
ipfs pin remote ls --service=pin --status=queued,pinning,failedWhat the docs don't cover yet: replica counts per file and any uptime SLA, so ask the AIOZ Pin team if your project needs those numbers. For the full product tour, read how AIOZ Pin works.
Next step: follow the AIOZ Pin Quick Start to top up and pin your first file.
What does IPFS stand for? IPFS stands for InterPlanetary File System, a peer-to-peer protocol for storing and sharing data by content address instead of by server location.
How is IPFS different from a normal web server? A web server is found by its URL, which points at one machine, while IPFS content is found by its CID and served by any peer that holds it.
Why does IPFS avoid link rot? A CID is not tied to one server, so as long as any peer still provides the content, the same CID keeps resolving even after the original uploader goes offline.
Do I need to run my own IPFS node? No: a gateway lets a normal browser load IPFS content over HTTP, and a pinning service keeps your files available without you running servers.
Is content on IPFS permanent? Only while at least one node keeps it pinned, because garbage collection can remove unpinned blocks at any time.
Who created IPFS? Juan Benet designed IPFS and Protocol Labs released it in 2015, borrowing ideas from Git's content-addressed objects and BitTorrent's peer-to-peer transfer.

An IPFS dedicated gateway on AIOZ Pin is called a premium gateway. See what the free plan limits, what a paid plan adds, and what happens at zero balance.

Pin by CID asks a pinning service to fetch content already on IPFS and keep it. Covers the AIOZ Pin pinByHash call, statuses, and why a pin stalls on Pinning.

IPFS gateway not working? Read the status code first, then check the CID, your request rate, and whether anyone is providing the content. Here is the order.

ERC-1155 metadata on IPFS breaks when filenames ignore the {id} rule. Here is the exact 64-character format, a working folder layout, and the per-token option.

AIOZ Pin rate limits in one place: 180 requests per minute for the API, 15 per CID on the public gateway, and no predefined limit on premium gateways.

IPFS pin stuck on Pinning? Here is what Pinning, Pinned, and Failed mean on AIOZ Pin, why big directories can sit there, and how to read a pin's real state.