Welcome to the Liberty Protocol specification! Here you can find a detailed documentation regarding the current state of the protocol, previous iterations and proposals for future extensions. Please note, the protocol specification is still very much a work in progress at this time, and the information within is subject to frequent changes.
Goals & Purpose
The free communication of users on the internet faces a variety of problems in the modern day. These challenges include censorship from state and corporate actors, the amplification of misinformation through viral content, and an ever-shrinking collection of near monopolies with absolute power over social interaction in the 21st century. Through the Liberty Protocol, we hope mitigate and ideally solve these challenges in the way social interaction operates online.
How to Read This Specification
The specification is divided into several modules found in the DSNP section of this website. Each module describes a self-contained aspect of the DSNP and includes documents detailing the function and intended use the module. Generally, each of these documents will include sections on the purpose of the module, assumptions made in the document and the current status of the specification.
Additionally, the status of each module is also compiled in the Implementation Status table for ease of access. As further extensions of the protocol are created, more modules may be added to the DSNP directory and status table. Proposals for some of these future extensions can be found in the Future Proposals directory under DSNP, however these proposals should be regarded with caution as they are largely incomplete and may be subject to change or deletion without notice.
Specification status definitions
|Draft||Specification is posted as draft PR. It's open for comment and major changes.|
|Proposed||Ready for formal review. It should be done except for minor changes.|
|Tentative||This is the accepted plan. The specification should not change unless there are blocking issues.|
|Final||This version will not change. Changes require a new specification process and new specification version number.|
For more detail on the specification process and how to contribute, please see the GitHub repo.
All included Solidity interfaces are targeting the Solidity language version 0.8.x. Other versions may be available in the official contracts code repository.
In addition to this document, more resources regarding our project can be found at the Liberty Protocol developer portal here, including our blog, forum, code repository and SDK.