Decentralised storage is a critical component of the Web3 stack. While blockchain provides a decentralised ledger, storing large files — images, videos, metadata, documents — directly on-chain is prohibitively expensive. IPFS, Arweave, and Filecoin provide off-chain storage solutions that maintain the decentralisation and censorship resistance properties that Web3 applications require.
How IPFS Works
The InterPlanetary File System is a peer-to-peer protocol for content-addressed file storage. Instead of retrieving files by their location (like HTTP URLs), IPFS uses content identifiers (CIDs) — cryptographic hashes of the file content. This means the same file always produces the same CID regardless of where it is stored, and any tampering with the file produces a different CID, providing built-in integrity verification. When you request a file by its CID, the IPFS network locates peers that have the content and retrieves it from the nearest available source. Files are split into blocks, deduplicated, and distributed across the network. IPFS gateways like ipfs.io and Cloudflare's IPFS gateway provide HTTP access to IPFS content for traditional browsers.
Pinning and Persistence
A common misconception is that uploading to IPFS means permanent storage. In reality, IPFS nodes only store content they have explicitly pinned or recently accessed. Unpinned content is eventually garbage collected. Ensuring persistence requires:
- Pinning services: Pinata, Web3.Storage, and nft.storage provide managed pinning that keeps your content available. They run IPFS nodes that persistently store and serve your files.
- Self-hosted pinning: Run your own IPFS node and pin content directly. Provides full control but requires infrastructure management and uptime guarantees.
- Filecoin: A blockchain-based incentive layer on top of IPFS. Storage providers are paid to store data and are penalised for losing it, creating economic guarantees of persistence.
Arweave: Permanent Storage
Arweave takes a different approach — one-time payment for permanent storage. Users pay a single fee (calculated based on current storage costs with built-in endowment for future costs) and the data is stored permanently across the Arweave network. This model is particularly attractive for NFT metadata, legal documents, and any content that must remain accessible indefinitely. Arweave's permaweb creates a permanent, uncensorable web layer. Integration is straightforward: upload data using the Arweave SDK or Bundlr (now Irys) for bundled transactions, and reference the Arweave transaction ID in your application or smart contract.
Integration Patterns for Web3 Apps
For NFT projects, store metadata JSON and media files on IPFS or Arweave and reference the CID or transaction ID in the smart contract's tokenURI. For dApp frontends, deploy the static site to IPFS and use ENS or Unstoppable Domains for human-readable access. For user-generated content, upload to IPFS through your backend, pin with a managed service, and store the CID in your database or on-chain. At Born Digital, we integrate decentralised storage into the Web3 applications we build, ensuring content availability, integrity, and alignment with the decentralisation principles that our clients' users expect.