A rootless, ownerless substrate for human expression.
Speech without roots. Power without owners.
Features β’ Quick Start β’ Documentation β’ Contributing β’ License
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.
- π 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
- Self-generated cryptographic identities
- Persistent pseudonyms or ephemeral presence
- Key rotation and recovery options
- Zero-knowledge proofs for attribute verification
- Signed, content-addressed posts
- Multi-format support (text, media, documents)
- Threaded conversations
- Optional encryption levels
- Create topic-focused spaces
- Flexible governance models
- Local moderation policies
- Federation between zones
- End-to-end encrypted direct messages
- Group messaging with forward secrecy
- Optional message expiration
- Anonymous sending option
- P2P mesh networking
- Multiple transport options
- Tor/I2P support for anonymity
- Offline-first design
# Using bun (recommended)
bun add @rootlessnet/sdk
# Install CLI globally
bun add -g @rootlessnet/clirootless identity createrootless post "Hello, RootlessNet!"rootless node startimport { 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');| 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 |
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Client Applications β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Protocol Layer β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Identity β Content β Zones β Messaging β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Cryptographic Layer β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β P2P Network β Relays β Storage β DHT β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
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.
Please report security issues to: aaryan.bansal.dev@gmail.com
- β Core protocol specification
- β Identity system
- β Content creation and sync
- β Zone support
- β E2E messaging
- π Post-quantum cryptography migration
- π Hardware wallet integration
- π Enhanced reputation system
- π Cross-protocol bridges
- π Mobile apps
- π Incentive layer
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 testThis 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