title | sidebarDepth | description |
---|---|---|
Usage ideas and examples |
1 |
Explore some helpful use cases, ideas, and examples for the InterPlanetary File System (IPFS). |
IPFS is a versatile technology and can be used in a huge array of use-cases. Below is a long, yet far from exhaustive, list of projects built on IPFS. Some are minimalistic prototypes, and others are complete projects backed by mature companies.
One of the simplest use-cases to grasp is the sharing of files between peers.
IPFS Desktop is the official desktop client for IPFS. It comes with a built-in IPFS node that lets you pin files and gives you a link to share them. This is one of the easiest ways to start pinning your files to IPFS.
The Brave web browser has built-in IPFS support. It uses the same IPFS implementation as IPFS Desktop and resolves ipfs://{cid}
addresses out-of-the-box.
Arbore is a free and open-source file-sharing application that enables you to send your pictures, documents, and files to your contacts privately and without limits.
Functionland is leveraging IPFS, IPFS-Cluster and WNFS to build mobie-native SDKs that can be imported to easily create a decentralized application. FxFotos is an example and is published on Google Play.
FileNation is an open-source tool for sharing files using IPFS.
A dead drop is a drive or another storage device that is physically immobilized in a public location for people to pick up and deposit files. There is now an IPFS version, thanks to the IPFS Dead Drop project.
Snapshot is a voting platform for Web3 projects, DAOs, and communities that uses IPFS as its main storage layer. Snapshot uses IPFS to store proposals and user votes using a technique known as ‘off-chain’ voting, where the cryptographic signatures proving user votes are persisted to IPFS instead of being stored on the blockchain.
Let IPFS coordinate the flow of data between you and your colleagues, even when working offline or on a local network.
PeerPad.net is a service that allows you to write, collaborate, and export Markdown documents directly in your browser, similar to how Google Docs works.
The Inter-Planetary Version Control system (IPVC) is a distributed version control system similar to git but built on IPFS. It is suitable for any kind of data, not only human-readable content. It is also particularly suitable for versioning large files. The underlying concepts are heavily influenced by git and gitless.
Berty.tech will be an IPFS-based messaging app that will ensure connections are made directly between devices, without the need for servers, and will work on a local network if there is no internet connection. It will also work over Bluetooth or other proximity transport.
Berty is leading the effort to bring IPFS to mobile. There are also some guidelines made by professionals for the rise of IPFS on mobile.
By storing small scripts or big databases of your project on IPFS, depending on your architecture, you can yield several benefits. Your users won't contact your servers for the content they already have. You will still have content de-duplication if your users don't use an IPFS client. If they use it, your users will seed the content they use, decreasing the workload on your infrastructure and increasing the uptime of the service in case you go offline.
Decentraland is a virtual world you can explore with a VR set, your computer, or your smartphone. They store all the assets on IPFS, so these heavy files can be fetched from several other users at the same time for faster loading and syncing.
DTube is hosting videos on IPFS to reduce stress on their infrastructure. The website itself is not decentralized, but it mainly manages coordination between users and the discoverability of content.
Qri is an open-source tool for the management of large datasets. Qri users enjoy reduced hosting costs, traceability of changes in the data, rollback to previous versions, and easier collaboration when updating data. De-duplication across datasets also helps to keep physical storage usage as small as possible, along with reducing sync times.
On some heavy analysis, you can benefit from parallelizing calculations on several nodes using Hadoop, for example. But on very large datasets, fetching the relevant subset for each node to compute is longer than the actual computation. Scott Brisbane proposed a design in a thesis to drastically reduce the fetching time using IPFS and divided the overall analysis time by four.
Killcord is an open project to automatically publicly publish data if the user doesn't check in after some time. This can ensure the ongoing investigation of a journalist carries on if they are unable to do it themselves, as the information gathered will now be public.
There is an existing IPFS devgrant to host OpenStreetMaps assets on IPFS. In the long run, this could mean faster synchronization for apps using this scheme and lower bandwidth requirements for servers.
Thanks to recent improvements with IPFS Cluster, you can call for help to store your data without having to trust other nodes won't alter the data. With collaborative mode, you can replicate Pacman packages or COVID-19-related papers without needing to know the intricacies of IPFS.
Let your users stream from each other to remove the need for a server without overloading a popular streamer. You can get inspired by the working prototype of Toronto Mesh or by the experimentations of Fission. Fleek also did some experimentation using their Amazon S3/IPFS compatibility tool.
The robotics company KODA is developing the world's first decentralized robot dog called Koda-9. It uses IPFS to store user data, such as security footage.
NIIIFTY is a platform built using web3.storage that simplifies the sharing of IIIF-formatted high-resolution images, 3D models, and audiovisual content via IPFS. View the documentation for how to set up your own NIIIFTY instance.
Using IPFS allows you to abstract away a lot of the complexity of coordination between machines. No matter your architecture IPFS handles load balancing, de-duplication, caching, and high availability out-of-the-box. Its highly modular design also means you can easily customize it to your need.
IPFS Cluster is the official tool to manage a cluster of nodes to replicate data. Like any distributed cluster, you will have the benefits of redundancy, load balancing, and write permission management. You can choose to connect your cluster to the rest of the IPFS network or run it privately. You can also invite outsiders to help replicate your data without them having write-access, thanks to the collaborative mode.
A Content Delivery Network (CDN) is a network of nodes storing content in places physically close to the users. Having servers physically closer to the users ensures lower latency, enabling load-balancing, and allows you to scale the availability of content with demand. The IPFS network is a CDN by design because each node will cache what they consume and serve that data to its peers.
The Node package manager (NPM) is mirrored on IPFS. By using the dedicated client npm-on-ipfs, packages are fetched from IPFS and distributed to other clients needing them. For example, a team working in the same building will fetch packages from each other, meaning less network traffic costs for the company.
The developers of the Nix package manager are working on integrating IPFS for the distribution of binary packages and sources.
Netflix is on its way to using IPFS to synchronize their Docker containers worldwide. Since each node fetches them from the fastest peers they know, synchronization is substantially faster than traditional synchronization methods.
Actyx is helping the manufacturers to upgrade their plants to the Industry 4.0 era, meaning connecting the machines together for better performance, tolerance to failure, and flexibility. Actyx built a custom operating system on top of IPFS they deploy on all machines, so they emit metrics, receive orders, sync up information, and compute their next move locally.
The web3.storage platform provides an IPFS-based storage service to safely secure and make your data available - giving developers the power of decentralized storage and content addressing via simple client libraries or an HTTP API. Similarly, the Spheron Network also provides an IPFS-based storage service. An alternative option is Functionland Fula Network, which leverages the unused storage space of personal devices to provide a cloud-like storage for real-time data storage needs.
By storing identical data only once on your node, storage-constrained projects are another natural fit for IPFS.
By decentralizing your data, you increase availability if your server runs into an issue, your ISP is unhappy with what you publish, or a hostile government issues a take-down order. You will also decrease the load time for your swarm-connected users and natively enable your app to work offline or on local networks. Depending on your app, your users can also reduce their storage requirements and download time thanks to native de-duplication and caching.
Tableland is an indexed, networked, SQL-compatible database that combines blockchain for access control with a decentralized network of nodes running SQLite. This architecture provides fast, mutable tables with verifiable integrity. Tables in Tableland are NFTs, so they can be owned, traded, and permissions controlled programmatically. Learn more about Tableland in the talk from IPFS camp 2022.
OrbitDB is a serverless, distributed, peer-to-peer database. OrbitDB uses IPFS as its data storage and IPFS Pubsub to automatically sync databases with peers. It's an eventually consistent database that uses CRDTs for conflict-free database merges, making OrbitDB an excellent choice for decentralized apps (dApps), blockchain applications, and offline-first web applications. There are Go and Javascript implementations available.
If you are currently using MongoDB, you might be more comfortable with ThreadDB or AvionDB, which are unstructured databases built on top of IPFS.
Textile is developing the layers on top of IPFS to extend its hosting capabilities. Among other things, they came up with separated cloud environments called buckets. Textile has also built an impressive toolset for building decentralized applications and integrations.
JusticeNode has created an extension for the popular self-hosted cloud service NextCloud. This integration allows users to use IPFS as external storage.
Fleek.co allows you to effortlessly build sites & apps on IPFS. The workflow is similar to that of Netlify: developers can link their website or a web app hosted on GitHub to Fleek and have it automatically built and deployed on IPFS whenever a change is made to a specific branch. Fleek also comes with Ethereum Name Service (ENS) and domain name integration and plan to enable many more ways to deploy soon: more Git providers, deploy via command-line interface, drag & drop a folder, via API, etc.
Spheron Network facilitates the seamless deployment of websites on IPFS and Filecoin. It offers developers the convenience of linking their websites or web applications hosted on platforms such as GitHub, Gitlab, and Bitbucket to the Spheron Network. Subsequently, any modifications made to a designated branch will trigger an automatic build and deployment on IPFS. In addition to this, Spheron incorporates integration features for the Ethereum Name Service (ENS) and other domain name services. The platform is poised to introduce an expanded array of deployment methods, including a command-line interface, API, and SDK.
Embark is an all-in-one developer platform for building and deploying decentralized applications. It currently integrates with Ethereum blockchains, decentralized storage like IPFS, and decentralized communication platforms like Whisper and Orbit.
Several plugins exist to decentralize your website built with popular static-site generators like VuePress or Gatsby.
There are many available frameworks to build decentralized apps on IPFS. Fission, Fleek, Functionland Fula, Spheron, and Textile are great examples.
Fission created the WebNative SDK to make building apps easier for front-end developers. The SDK uses technologies like decentralized identities (DIDs), encryption, and IPFS for portable user identities and data, avoiding vendor lock-in. For more information, see the talk from IPFS camp 2022.
The SecureMyState government-citizen communication app was built in two days during the ETHDenver 2020 hackathon. It lets Colorado citizens manage state-owned data about themselves, such as their driving license status or business registration. You can find out more about this project on Medium.
Origin is a blockchain-powered online commerce platform that stores data on IPFS. The Brave web browser has its own store on it to sell their swag.
BitTorrent is a powerful P2P file-sharing technology, but it works better with the help of centralized trackers helping users know who has what. Some people tried with some success to decentralize them. You can find their working prototype here.
This simple tracker API lets any IPFS node request the latest data about the COVID-19 pandemics. See the code on GitHub.
This simple GitHub Action lets you upload your GitHub Releases on IPFS automatically.
In a recent update, Wolfram let users store their computation or assets on IPFS. Check out the version notes for more information.
Audius is a music streaming platform built on IPFS. Artists are in control, no fees are taken by the platform, and listeners can enjoy their music while offline.
Diffuse.sh is an online music player that you can connect to your music repositories to listen to it from anywhere. You can now connect it to IPFS repositories.
Aragon, a service for creating DAOs, uses IPFS to store its data.
Some core pieces of the web are still centralized, making it more prone to breaking or being censored. IPFS can help and make the web more resilient.
Bluesky is a decentralized social media protocol built on IPLD that originated as a Twitter project but is now independent. The protocol uses a federated architecture with cryptographic IDs and content addressing to make data portable between servers. User data is stored in repositories using IPLD and content addressing. The protocol specifies clients, servers, decentralized identities (DIDs), data repositories, and aggregators to enable a federated social network.
Learn more from the IPFS Camp 2022 talk.
The Domain Name System (DNS) is one of the most centralized pieces of the web. By having to ask a central place to know where to find google.com
or facebook.com
, it is a central point of failure. Backing up the DNS on IPFS could improve its availability. A prototype for Javascript has been published on NPM.
Thanks to de-duplication, IPFS is a powerful tool for archiving the web. The InterPlanetary Wayback is tackling this endeavor.
Wikipedia has not been accessible in Turkey for a few years. The company behind IPFS, Protocol Labs, is hosting a mirror of Wikipedia on IPFS. See the original blog post and the project code for more information.
IPFS is a natural fit for blockchain use cases. The common state of the chain is distributed on-chain among participants, and specific data is stored on IPFS. Thanks to content addressing, the blockchain only needs to store the IPFS multihash, and users are sure to fetch correct data from any of their peers. This architecture is becoming the standard for blockchain applications.
Filecoin lets any storage owner host data for users who need additional space. It is one of the reasons IPFS exists in the first place and will be a great accelerator of the IPFS growth once fully online later this year. The project is developed by Protocol Labs.
Functionland has built Fula protocol and chain, which leverages unused storage resources on any personal device, such as laptop, to provide a decentralized, cost-effective cloud-like storage solution with full user control and superior functionality.
Textile.io is building the Powergate tool for your app to interact with Filecoin once the main net is launched.
IOTA is a foundation maintaining the Tangle, a blockchain-like network with zero fees. Their vision is to automate the exchange of data between sensors, machines, and other devices, for free or sold by the provider. IOTA announced that data can now be hosted on IPFS. The demo for this is no longer maintained.
The Humanize Pay project lets you have a human-readable Ethereum address, so users don't have to deal with long and un-memorable addresses.
MindSync wants to build a blockchain hosting AI competitions and let AI skills offer and demand meet.
RocketShoes is an education platform where students produce and tag learning materials, assignments, notes, and digital assets. These are stored on IPFS, and the blockchain ensures the timestamping, proof of ownership, and incentivization layer.
TheGraph wants to enable users to look for information on any blockchain or distributed service thanks to their query language GraphQL and the indexations of the chains thanks to IPFS.
With IPFS and a blockchain, you can prove ownership of a file at a certain time without disclosing it. See here an example of implementation.
Idena is a blockchain to prove that you are human, distinct from a decentralized identity (DID). It uses IPFS under the hood.
Robonomics is building a framework on top of Ethereum and IPFS for smart cities apps to easily exchange data (from sensors or computation, for example).
Augur is a blockchain and decentralized market where you can bet on anything or request predictions from the crowd's wisdom. Like so many blockchain-based apps, the data is hosted on IPFS.
The weather risk marketplace Arbol relies on blockchain technology to track and validate weather data. Arbol uses IPFS to store multiple terabytes of verified weather data without fear of tampering.
Decentralized Identity is the concept of storing all your personal data on your devices rather than let every service you use store a partial copy of it. You having control of your data means that you decide which app has access to what, that you only fill in your information once, and that you can revoke access. Decentralized identity is a hot topic, and IPFS is one of the core technologies a lot of engineers build around. The identity wallet Nomios shared some thoughts about decentralized identity general during the IPFS Camp 2019.
3ID Connect is developed by 3Box, a personal data manager for apps leveraging IPFS. 3Box wants to make using decentralized identity as simple as clicking on Connect with Google or Connect with Facebook. You can read their article explaining how to bring it to your app.
Microsoft started experimentation by pinning some decentralized identity information to IPFS and publishing the hash to the Bitcoin blockchain. Microsoft wrote a blog post about their findings.
The Ceramic Protocol is another proposition for decentralized identity on IPFS, along with a complete protocol for data and document exchanges.
Here is a non-exhaustive list of use cases that were not implemented yet. Pick up the challenge yourself or follow your own idea! If you want to discuss your idea or have some problems, head to the IPFS forum or the IPFS help page.
- Coordinate activists groups without fear from censorship
- Manage the knowledge of the whole world
- Build a giant database for genetic data
- Create a mesh network on IPFS
- Bring additional services to your existing mesh network
- Serverless online gaming
- Put Hadoop on IPFS
- Add more transports to IPFS for mobile usage (here or here )
- Cohost the site you visit
- Distributed cards for spaced learning
- Unblock the offline-first use cases
- Build a distributed OS
- Distribute the medical data
- Improve information sharing during disaster recovery
- Get a grant for your help or propose an open grand
- Make an interactive app for your classroom
- Build a distributed social media
- Decentralize peer-reviewing of scholar papers
- Help to host NASA databases
- Help to host LibGen materials
- Make a manga reader
- Make a Gif-sharing platform
- An interactive P2P application working in crowded events such as festivals
- Ethereum/Solidity Smart Contract CI Toolchain on IPFS