
A reasonable assumption, and a wrong one: that decentralized storage means private storage. IPFS's own documentation is direct about this: "IPFS uses transport-encryption but not content encryption." Understanding exactly what that distinction means, and what it doesn't, matters before pinning anything you'd rather not have publicly readable.
TL;DR:
IPFS protects data while it moves between peers, connections between nodes are encrypted at the transport layer. What it does not do is encrypt the content itself. Once a file is added to IPFS and its CID exists, "anyone can download and view that data if they have the CID." The transport layer being encrypted protects against someone eavesdropping on the connection between two peers, it does nothing to stop someone who legitimately has the CID from reading the content, which is exactly how IPFS is supposed to work by default: content-addressed, and openly retrievable by that address.
The confusion is understandable. "Decentralized" gets associated with "private" or "secure" in a lot of Web3 messaging, and IPFS's own resistance to censorship and single points of failure can read as a privacy guarantee it was never designed to provide. IPFS's actual design goal is different: durable, verifiable, location-independent addressing. Privacy was never part of that specific promise, and the documentation says so plainly rather than leaving it ambiguous.
This is worth separating clearly from content privacy, since the two get conflated constantly: a private IPFS network, set up using a shared swarm key, controls which peers can join the network and communicate at all. It's a network-access control, enforced at the connection layer. It says nothing about whether content inside that private network is encrypted, two peers on the same swarm-key-protected network can still see each other's unencrypted content in full. Private network membership and content encryption are two separate, independent decisions, and setting up one does not give you the other.
IPFS's own documentation is straightforward about this: privacy is something you build, not something IPFS provides by default. The recommended approaches include "disabling reproviding, encrypting sensitive content, or even running a private IPFS network," and the documentation is explicit that "different uses of IPFS over its lifetime may call for different approaches to privacy," meaning there's no single universal answer, the right approach depends on what you're actually protecting against.
In practice, that mostly comes down to one thing: encrypt the content yourself before adding it to IPFS. Once encrypted data is added, it gets a CID like anything else, and it's retrievable by anyone who has that CID, but what they get back is ciphertext, not your actual data, unless they also have the decryption key. Several projects in the IPFS ecosystem build encryption directly into their tooling on top of this same principle, Ceramic, Lit Protocol, OrbitDB, and Peergos are examples of systems that layer encryption and access control on top of IPFS's own content-addressing rather than waiting for IPFS itself to provide it.
Encrypting content before pinning changes one practical thing worth knowing in advance: deduplication stops working the way it normally would. IPFS deduplicates identical content automatically, the same bytes uploaded twice produce the same CID and get stored once. Encrypted content, though, typically produces different ciphertext on every encryption pass, even for identical plaintext, since most encryption schemes include randomness specifically to prevent patterns from leaking. That means re-encrypting and re-uploading the same underlying file usually doesn't dedupe against the earlier upload, each encrypted version gets its own distinct CID and its own separate pin. Worth factoring into cost planning if a workflow encrypts and re-uploads the same content repeatedly.
AIOZ Pin pins and serves exactly what you give it. It does not encrypt content on your behalf, and it does not decrypt anything either, whatever you upload is what gets stored and served through the gateway, unencrypted content stays unencrypted, and encrypted content stays encrypted (and unreadable without the key, including to AIOZ Pin itself). If a file needs to stay private, encrypting it before calling pinFilesToIPFS() is the step that actually matters, not anything about which pinning service or gateway ends up serving it afterward.
Is content on IPFS private by default? No. IPFS uses transport encryption between nodes, but not content encryption. Anyone with a file's CID can retrieve and read it unless it was encrypted before being added.
Does a private IPFS network encrypt my files? No. A private network (using a swarm key) controls which peers can join and communicate on that network. It doesn't encrypt content, peers within the private network can still see each other's unencrypted data.
How do I actually keep content private on IPFS? Encrypt it yourself before adding it. Once added, the CID is retrievable by anyone who has it, but they'll only get the ciphertext without the decryption key.
Does AIOZ Pin encrypt my files for me? No. AIOZ Pin pins and serves content exactly as it's uploaded. Any encryption needs to happen client-side before the file is pinned.
What are some tools built for encrypted storage on IPFS? Ceramic, Lit Protocol, OrbitDB, and Peergos are examples of projects that build encryption and access control on top of IPFS's content-addressing model.

Free public IPFS gateways are being rate-limited on purpose, not as a bug. Here is exactly what IPFS's own blog says is changing, and what to actually do.

Two real, documented IPFS deployments, a media platform and a blockchain publisher, and the specific architectural problem each one solved with it.

Uploading a site to IPFS is the easy part. Here is the full picture: CID, gateway access, a real domain, and the pinning step most tutorials skip.

Cancelling a pinning service is not documented the way it should be, anywhere in the industry. Here is exactly what you can control before you stop paying.

IPFS node types aren't a full-vs-light weight class the way some blockchains work. They are specific jobs a node opts into. Here is what each one does.

IPFS content is immutable by design: change one byte and the CID changes with it. Here is exactly what happens when you edit a file, and why IPNS fixes it.