
IPFS stands for InterPlanetary File System. It is a decentralized, peer-to-peer (P2P) network designed to change how data is shared and stored across the internet. Instead of relying on central servers owned by massive tech corporations, IPFS creates a distributed web where files are stored and served by a network of individual computers around the world. It might be instrumental for Abundomy Money app as it is probably the only and best way to store the profile data and transactions of the users of the app, instead of using a centralized database as is being used at the moment.
How IPFS WorksTo understand IPFS, it is easiest to compare it to the traditional web model:
The Traditional Web (Location-Based Addressing): When you visit a website or fetch a file (like https://server.com/filename.pdf), your browser uses HTTP to look up a specific location (IP address or server domain). If that server goes down, is hacked, or censors the file, the data becomes completely inaccessible, even if thousands of people already downloaded copies of it elsewhere.
The IPFS Web (Content-Based Addressing): IPFS addresses files by what is inside them rather than where they are stored. Every file uploaded to IPFS is given a unique cryptographic fingerprint called a Content Identifier (CID like QmXoypizjW3WknFiJnKLwHCnL72vedxjQkDDP1mXWo6uco). When you request a file, the network finds any nearby computer that already has a copy matching that exact unique fingerprint and securely streams it to you.
Resilience Against Censorship: Because there is no single central point of failure or master server to shut down, content on IPFS is incredibly difficult for governments, ISPs, or hosting providers to block or censor.
Persistent Web Archiving: Files on IPFS can live on indefinitely as long as at least one node on the network chooses to pin (keep) the data, preventing websites from disappearing when companies go bankrupt.
Lower Bandwidth Costs: Instead of downloading a large file from a server across the world, IPFS allows you to fetch pieces of data from a computer sitting right next door in your local network, drastically reducing international bandwidth congestion.
Perfect Integration with Blockchains: Blockchains are excellent at storing smart contracts and transaction ledger balances, but they are too expensive for storing large data packages like entire HTML web structures, PDFs, images, or audio files. IPFS acts as the decentralized storage layer for web3 applications, storing the actual raw media files while the blockchain stores the tracking tokens or pointers.
What you need: An IPFS node (via [Kubo](https://docs.ipfs.tech/install/command-line/) or the desktop app), or a pinning service such as Pinata, web3.storage, or Filebase. These are the steps to run IPFS:
There is however a problem: If only your node has the file and you go offline, it is temporarily inaccessible. Solution: use a pinning service like Pinata — they keep the file available even when you are offline.
For folders: Use "ipfs add -r ./my-folder/", and the entire folder structure is stored under a single CID.
2. Storing and Sharing VideosVideos are large, and IPFS automatically divides them into 256 KB blocks — this enables streaming. These are the steps to store these kind of files
For serious video distribution: Combine IPFS with Filecoin (paid, guaranteed storage) or use [**Livepeer**](https://livepeer.org/) for decentralized video transcoding and streaming.
Playback gateway: https://cloudflare-ipfs.com/ipfs/[CID], works directly in the browser.
3. Building a database on IPFSIPFS itself is NOT a database. It is a content-addressable file system. For a database, you need a layer on top of IPFS:
Option A - OrbitDB (most commonly used approach)
OrbitDB is a peer-to-peer database built on IPFS. It supports key-value stores, document stores, and logs.
"Import: { createOrbitDB } from '@orbitdb/core'"
"import { createHelia } from 'helia'"
"const ipfs = await createHelia()"
"const orbitdb = await createOrbitDB({ ipfs })"
"const db = await orbitdb.open('my-database', { type: 'documents' })"
"await db.put({ _id: 'user1', name: 'Jan', email: 'jan@example.com' })"
"const result = await db.get('user1')"
Every write operation is stored as an IPFS block. The database has its own address (an IPFS CID) that you can share so that others can synchronize.
Option B — Ceramic NetworkFor more complex data models and identity-based access. Ceramic stores data as streams on IPFS and is suitable for user profiles and social data.
Option C - Plain JSON filesFor simple, read-only datasets: store your data as JSON files on IPFS. Each update creates a new CID (immutable). Use IPNS (IP Name System) to associate a fixed name that always refers to the latest version: ipfs name publish [CID].
14 May 2026
Patrick
Abundomy IT Specialist