Skip to content

RootlessNet/protocol

Repository files navigation

RootlessNet

A rootless, ownerless substrate for human expression.

Speech without roots. Power without owners.

FeaturesQuick StartDocumentationContributingLicense


What is RootlessNet?

RootlessNet is a decentralized protocol for censorship-resistant communication. It's not a platform, company, or product—it's infrastructure that makes human expression structurally resilient to control, capture, and silent erasure.

Key Principles

  • 🔑 Self-Sovereign Identity — You own your keys, you own your identity
  • 📦 Data Portability — Take your content and audience anywhere
  • 🌐 No Central Authority — No one can globally censor or control
  • 🔒 Privacy by Default — End-to-end encryption for private communications
  • 🏛️ Local Moderation — Communities choose their own rules
  • 🔄 Client Diversity — Multiple clients, one protocol

Features

Identity

  • Self-generated cryptographic identities
  • Persistent pseudonyms or ephemeral presence
  • Key rotation and recovery options
  • Zero-knowledge proofs for attribute verification

Content

  • Signed, content-addressed posts
  • Multi-format support (text, media, documents)
  • Threaded conversations
  • Optional encryption levels

Zones (Communities)

  • Create topic-focused spaces
  • Flexible governance models
  • Local moderation policies
  • Federation between zones

Messaging

  • End-to-end encrypted direct messages
  • Group messaging with forward secrecy
  • Optional message expiration
  • Anonymous sending option

Network

  • P2P mesh networking
  • Multiple transport options
  • Tor/I2P support for anonymity
  • Offline-first design

Quick Start

Installation

# Using bun (recommended)
bun add @rootlessnet/sdk

# Install CLI globally
bun add -g @rootlessnet/cli

Create Your Identity

rootless identity create

Post Your First Content

rootless post "Hello, RootlessNet!"

Start a Node

rootless node start

SDK Usage

import { RootlessNet } from '@rootlessnet/sdk';

const client = new RootlessNet();

// Create identity
const identity = await client.createIdentity();

// Post content
const post = await client.post('Hello, decentralized world!');

// Send encrypted message
await client.sendMessage(recipientDid, 'Private message here');

Documentation

Document Description
CONTEXT.md Complete protocol specification and philosophy
docs/ARCHITECTURE.md Technical architecture details
docs/SECURITY.md Security model and threat analysis
docs/PROTOCOL.md Wire protocol overview
docs/PROTOCOL_SPEC.md Comprehensive protocol specification
docs/CRYPTO_SPEC.md Cryptographic implementation requirements
docs/DEVELOPER_GUIDE.md Developer getting started guide
docs/FAQ.md Frequently asked questions
docs/CONTRIBUTING.md How to contribute
docs/GOVERNANCE.md Project governance

Architecture Overview

┌─────────────────────────────────────────────────────────────┐
│                    Client Applications                       │
├─────────────────────────────────────────────────────────────┤
│                    Protocol Layer                            │
├─────────────────────────────────────────────────────────────┤
│   Identity   │   Content   │   Zones   │   Messaging        │
├─────────────────────────────────────────────────────────────┤
│                    Cryptographic Layer                       │
├─────────────────────────────────────────────────────────────┤
│   P2P Network   │   Relays   │   Storage   │   DHT         │
└─────────────────────────────────────────────────────────────┘

Security

RootlessNet is designed with security as a core principle:

  • Signatures: Ed25519 for all content signing
  • Encryption: XChaCha20-Poly1305 for symmetric encryption
  • Key Exchange: X25519 for asymmetric operations
  • Hashing: BLAKE3 for content addressing
  • Forward Secrecy: Double Ratchet for messages

See SECURITY.md for the complete threat model.

Reporting Vulnerabilities

Please report security issues to: [email protected]


Roadmap

Current (v2.0)

  • ✅ Core protocol specification
  • ✅ Identity system
  • ✅ Content creation and sync
  • ✅ Zone support
  • ✅ E2E messaging

Next (v2.1)

  • 🔄 Post-quantum cryptography migration
  • 🔄 Hardware wallet integration
  • 🔄 Enhanced reputation system

Future

  • 📋 Cross-protocol bridges
  • 📋 Mobile apps
  • 📋 Incentive layer

Contributing

We welcome contributions! See CONTRIBUTING.md for guidelines.

# Clone the repository
git clone https://github.com/RootlessNet/protocol

# Install dependencies
bun install

# Run tests
bun test

License

This project is licensed under the MIT License - see the LICENSE file for details.


Speech is structural. Freedom is designed.

Made with ❤️ by the RootlessNet community

About

Protocol for RootlessNet

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published