IPFS organisiert Daten anhand ihres Inhalts statt ihres Speicherorts: Jede Datei, die dem Netzwerk hinzugefügt wird, wird in Blöcke zerlegt, gehasht und erhält eine Content Identifier (CID), die aus diesem Hash gebildet wird. Da die CID ausschließlich aus dem Inhalt einer Datei abgeleitet wird, erzeugen zwei Nodes, die dieselbe Datei speichern, stets dieselbe CID, während sich die Adresse vollständig ändert, sobald auch nur ein Byte verändert wird, was abgerufenen Inhalten eine eingebaute Integritätsgarantie verleiht.
Das Auffinden von Daten in IPFS funktioniert anders als im herkömmlichen Web. Da eine CID nichts darüber aussagt, wo sich eine Datei physisch befindet, geben Peers über eine Distributed Hash Table bekannt, welchen Inhalt sie besitzen, und Anfragende durchsuchen diese Tabelle nach Nodes, die die gewünschte CID bereitstellen. Inhalte bewegen sich nur dann durchs Netzwerk, wenn ein Peer sie tatsächlich anfragt; es wird nichts an Server gesendet, die nicht danach gefragt haben.
Eine bekannte Einschränkung ist, dass das Hinzufügen einer Datei zu IPFS nicht garantiert, dass sie verfügbar bleibt. Nodes entfernen Inhalte regelmäßig per Garbage Collection, sofern diese nicht ausdrücklich "gepinnt" wurden. Die langfristige Verfügbarkeit hängt daher davon ab, dass jemand die Daten weiter hostet oder für einen Pinning-Dienst bezahlt, der dies übernimmt. Deshalb wird IPFS häufig mit Filecoin kombiniert, einem Schwesternetzwerk desselben Teams, Protocol Labs, das bezahlte, kryptografisch verifizierte Speicherverträge auf der Adressierungsschicht von IPFS aufbaut.
Die bekannteste Anwendung in der Krypto-Welt ist die Speicherung von NFTs: Statt Bilder oder JSON-Metadaten direkt on-chain zu speichern, verweist die tokenURI eines Smart Contracts meist auf eine ipfs://-Adresse, wodurch teurer On-Chain-Speicher minimal bleibt, während der Token dennoch an spezifische, manipulationssichere Off-Chain-Inhalte gebunden ist. Da eine CID nicht heimlich ausgetauscht werden kann, verhalten sich auf IPFS gehostete Metadaten praktisch immutable, solange die referenzierte Datei irgendwo gepinnt bleibt.