A complete, working implementation of the RootlessNet protocol in TypeScript with 31 passing tests.
-
@rootlessnet/crypto - Core cryptographic primitives
- Ed25519 signatures
- X25519 key exchange
- XChaCha20-Poly1305 encryption
- BLAKE3 hashing
- HKDF key derivation
- CID/DID identifiers
-
@rootlessnet/identity - Identity management
- Self-sovereign identity creation
- Encrypted backup/restore
- Key rotation support
- DID-based addressing
-
@rootlessnet/content - Content protocol
- Content creation & signing
- Multi-recipient encryption
- Content verification
- CID-based addressing
-
@rootlessnet/messaging - E2E encrypted messaging
- X3DH key exchange (Signal protocol)
- Double Ratchet for forward secrecy
- Sealed (anonymous) messages
- Session management
-
@rootlessnet/sdk - Complete developer SDK
- Unified API for all features
- Event system
- Easy-to-use client interface
β 31 tests passing
β 51 assertions
β All cryptographic operations verified
β Identity creation/export/import working
β Content creation/verification working
β Messaging encryption working
You need to authenticate with GitHub to push to the RootlessNet organization. Here are your options:
# Install GitHub CLI
sudo pacman -S github-cli
# Authenticate
gh auth login
# Push
cd /home/aaryan/Projects/RootlessNet
git push origin main- Go to https://github.com/settings/tokens/new
- Create token with
reposcope - Copy the token
- Run:
cd /home/aaryan/Projects/RootlessNet
git remote set-url origin https://YOUR_TOKEN@github.com/RootlessNet/protocol.git
git push origin main# Generate key
ssh-keygen -t ed25519 -C "your_email@example.com"
# Copy public key
cat ~/.ssh/id_ed25519.pub
# Add to GitHub at: https://github.com/settings/keys
# Update remote and push
git remote set-url origin git@github.com:RootlessNet/protocol.git
git push origin main- Complete protocol implementation (5 packages)
- Comprehensive test suite (31 tests)
- Documentation (PROTOCOL_SPEC.md, CRYPTO_SPEC.md)
- Package configuration (bun workspaces)
- TypeScript type definitions
- All dependencies configured
RootlessNet/protocol/
βββ packages/
β βββ crypto/ # Cryptographic primitives
β βββ identity/ # Identity management
β βββ content/ # Content protocol
β βββ messaging/ # E2E messaging
β βββ sdk/ # Complete SDK
βββ docs/
β βββ PROTOCOL_SPEC.md # Complete protocol spec
β βββ CRYPTO_SPEC.md # Crypto implementation
β βββ SECURITY.md # Security model
β βββ ARCHITECTURE.md # System architecture
βββ package.json # Root workspace config
βββ tsconfig.json # TypeScript config
βββ biome.json # Linter config
import { RootlessNet } from '@rootlessnet/sdk';
// Create client
const client = new RootlessNet();
// Create identity
const identity = await client.createIdentity();
console.log('DID:', identity.did);
// Post content
const post = await client.post('Hello, RootlessNet!');
console.log('Posted:', post.id);
// Verify content
const isValid = await client.verifyContent(post);
console.log('Valid:', isValid);β
Protocol implemented and tested
β
All tests passing
β
Code committed locally
β³ Waiting for GitHub authentication to push
Once you authenticate using one of the methods above, the protocol will be live at: https://github.com/RootlessNet/protocol