Fair Data Protocol

Developed under Fair Data Society, Fair Data Protocol aims to provide web3 storage for dApps to connect and use, allowing for fair access and re-use of data on a global scale.

See on GitHub

Interoperability

Fair Data Protocol interoperability has several layers, where independence from a data providers open up new opportunities to share and reuse data.

Self Sovereignty

Fair Data Protocol enables independence from clouds and data silos by relying on the network of peers to host the data giving end users ultimate control.

Privacy

Fair Data Protocol enables a private space in the decentralized cloud, the prerequisite for digital freedom.

Fair Data Protocol Toolkit

Fair Data Protocol provides various libraries and tools for developers to build using it.

The underlying storage is FairOS-dfs, based on Swarm decentralized storage. It can be accessed through browser libraries or a dedicated client.

Blossom is a browser extension that allows dApps to access the personal storage of users. By integrating with its framework, the wallet handling is no longer a question for dApps and users have single-sign-in (SSI) to log in their account.

Various other libraries are provided for more special use cases.

FDP Play

FDP Play is entry point for developers to start building with FDP - a CLI tool to spin up local development FDP environment with Docker. It includes a Bee cluster, FairOS instance and blockchain node. The GitHub code and instructions are here. Click and press play!

FDP CLI
This simple CLI application helps you to interact with all base functionalities of FDP. Currently, it manages the Personal Storage and accounts. You can install it easily from NPM.

Fair Data Protocol Tutorials
A Getting Started with FDP tutorial explains creating a decentralized application using Fair Data Protocol (FDP) and Swarm, creating an example spreadsheet dApp.

An interactive tutorial for developers on getting started with Fair Data Protocol is available here. The first part involves setting up a development environment with fdp-play and using fdp-storage.
A quickstart example todos app based on the tutorial above is available here.

FDP Toolkit
Applications

Applications

Application ecosystem around Fair Data Protocol is growing daily. Below are a few applications that might inspire you to develop your own.

Fairdrive Desktop App
Fairdrive Desktop App opens the self-sovereign cloud to individual users.
It is a FUSE client for FairOS-dfs and lets you mount your pod on your own user space and interact with your files as if they were on your local computer.
You can access the GitHub here or install it by following instructions.

Fairdrive Web App
Fairdrive Web App is a dApp that you can use from your browser, using the same underlying storage as the Desktop App.
It consists of a typical "Drive" interface with files and folders, making it convenient for end users. You can access the GitHub here or try it out here.
Read more about Fairdrive by going to Fairdrive page.

FairPass
A decentralized password manager built with FairOS on top of Swarm storage. It can save "passwords" and "notes" and works for desktop and mobile. You can access the GitHub here.

FairOS

FairOS-dfs
FairOS-dfs is a layer on top of Swarm decentralized storage, that offers more advanced data structures - drive, folder and files hierarchy; a key value store and a document store. For implementation in Golang the documentation is here.

FDP Storage
FairOS-dfs implementation in JavaScript, can be run in browsers. You can access the GitHub here. Watch an explainer video.

FairOS in WASM
FairOS-dfs library in WASM. You can access the GitHub here.

FairOS Connect
A set of convenience components that can be included in dApps to support FairOS. These components were used in the reference Fairdrive App. You can access the GitHub here.

FairOS

Blossom

Blossom browser extension serves as a framework for Fair Data Protocol developers and an environment for Web3 users acting as their user agent allowing Single Sign In. It provides complete traceless Web3 browsing, handles the user wallet and provides a FDP Storage interface for managing the User Personal Storage for dApps.
To quickly get started check this guide.
You can access the GitHub documentation here.

Blossom
BeeSon

BeeSon

BeeSon is a JSON compatible serialization format which allows its elements to be verified cheaply on-chain. You can access the GitHub here.

Fair Data Improvement Proposals

The Fair Data Protocol improvement proposal (FIP) process is intended to provide a path for new specifications and features to be added to the Fair Data Protocol. This provides all the stakeholders with option to influence the direction of Fair Data Protocol evolution. The FIP process is described in the GitHub repo.

Fair Data Improvement Proposals

bmt-js library

bmt-js is a JavaScript library that does Binary Merkle Tree (BMT) operations on data. The library calculates the content address of any data and also offers functions for performing cheap compact inclusion proof of any 32 bytes segments in it. You can access the GitHub documentation here. Watch the explainer video.

bmt-js library
Other tools

Other Tools

FDP Contracts
Contracts used in development, including BMT contracts and ENS contracts.

BMT Contracts - Swarm hashes can be verifiable on chain via Binary Merkle Trees. Fair Data Protocol has a full data function and coordinating JS library to support this. You can access the GitHub documentation here.

ENS Contracts - A reserved ENS name with an associated ETH address is used for Fair Data Protocol accounts. You can access the GitHub documentation here.

FDP Processor Library
Beeson - A Blockchain-verifiable, extensible encapsulation for schema-based object notation in Swarm. You can access the GitHub documentation here.

Fair Data Protocol Roadmap

The long term roadmap for Fair Data Protocol has been published as one of the first Fair Data Improvement proposals. The current state of milestones and next steps are described below.

I. Reviews with Protocolisation - the personal storage concept has been reviewed and refactored, the architecture is documented with its ongoing improvement ideas.

II. Registry Specifications - the User Store (ENS) smart contract is currently deployed on FDP-Play and Görli networks.

III. Authentication - The portable account feature is implemented in FDP Storage and Blossom that applications can integrate allowing to retrieve the user wallet by providing a username and a password.

IV. Authorization - The personal storage concept offers sharing PODs which are the sub-entities of the user for each application or used protocol.

V. Web3 services with Data Economics - Publishing the generic BMT inclusion proofs on BeeSon data in smart contracts is the next step when proof of storage requirements are met.

VI. Interoperability with integrations - With good experience with metadata-handling in the Swarm network but open to integrating other storage system solutions. Extensions can be proposed through the Fair Data Improvement proposals (FIPs).

The short term roadmap for next couple of months includes:
- deploying User store (ENS) smart contract to Ethereum mainnet,
- BeeSon generic inclusion proof smart contracts,
- refactoring and making packages more robust.

Roadmap for FDP