Unfinished Labs
IntroductionImplementation StatusNetworks
Batch Publications
Activity Content
Future Proposals↩ Developer Portal


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

DraftSpecification is posted as draft PR. It's open for comment and major changes.
ProposedReady for formal review. It should be done except for minor changes.
TentativeThis is the accepted plan. The specification should not change unless there are blocking issues.
FinalThis 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.

Solidity Interfaces

All included Solidity interfaces are targeting the Solidity language version 0.8.x. Other versions may be available in the official contracts code repository.

Learning More

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.