Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

4 Commits
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Decentralized Chat Protocol (DCP)

A modern, secure, and truly decentralized communication protocol designed for the web

License: CC BY 4.0 Protocol Version Status

Overview

DCP is a spiritual successor to IRC that brings modern security, usability, and extensibility to decentralized chat. Built for the web-first era, it combines the openness of traditional protocols with contemporary features like end-to-end encryption, rich media sharing, and programmable extensions.

Key Features

  • ๐Ÿ”’ End-to-end encryption by default with forward secrecy
  • ๐ŸŒ Web-native - runs in any modern browser, no apps required
  • ๐Ÿ  Self-sovereign identity - you own your data and keys
  • ๐Ÿš€ Programmable - extensible with functions and bots
  • ๐ŸŒ Network adaptive - works from fiber to satellite to mesh networks
  • ๐Ÿ“ง Email compatible - seamless bridge for gradual migration
  • ๐Ÿ”— Federated - decentralized network of independent nodes

Architecture

[Web Client] โ†โ†’ [Home Node] โ†โ†’ [Federation Network]
                    โ†“
              [Media Service]
                    โ†“
             [Function Runtime]
                    โ†“
               [Bot Engine]
                    โ†“
            [Function Database]

Core Components

  • Identity Files: Portable cryptographic identities with user preferences
  • Home Nodes: Your personal server for authentication and message routing
  • Function System: JavaScript/WebAssembly extensions for custom functionality
  • Bot Framework: Automated agents for moderation, integration, and services
  • Trust Chains: Distributed moderation and reputation networks

Getting Started

For Users

  1. Join a community: Visit any DCP-enabled website (like https://chat.example.com)
  2. Create identity: Generate your cryptographic identity automatically
  3. Save your key: Download your identity file - this is your "passport" to the network
  4. Start chatting: Join channels, send messages, share files

For Developers

  1. Read the specification: Start with the full protocol specification
  2. Try the examples: Check out reference implementations and examples
  3. Build clients: Create web, mobile, or desktop clients using the open protocol
  4. Write functions: Extend the protocol with custom JavaScript/WASM functions
  5. Deploy nodes: Run your own home node for ultimate control

For Communities

  1. Deploy a home node: Set up your community's communication hub
  2. Migrate gradually: Use email bridge for seamless transition from existing systems
  3. Customize experience: Install functions and bots tailored to your needs
  4. Federate: Connect with other communities while maintaining autonomy

Use Cases

๐Ÿข Enterprise Communication

  • Replace email + Slack with unified, self-hosted platform
  • Seamless external communication via email bridge
  • Advanced compliance and audit capabilities
  • Custom integrations and workflows

๐ŸŽฎ Gaming Communities

  • Voice chat with spatial audio
  • Rich media sharing and streaming
  • Custom bots for game integration
  • Persistent community across games

๐Ÿ“ฐ Journalism & Privacy

  • Anonymous communication channels
  • Source protection with cryptographic guarantees
  • Censorship-resistant mesh networking
  • Dead-drop systems for maximum security

๐ŸŒ Disaster Response

  • Works over satellite, mesh, and radio networks
  • Offline message queuing and sync
  • Emergency contact systems
  • Bandwidth-adaptive features

๐Ÿซ Education & Research

  • Collaborative documents and whiteboards
  • Academic discussion channels
  • Integration with research tools
  • Privacy-preserving analytics

Network Adaptation

DCP automatically adapts to your network conditions:

Connection Type Features Available
Fiber/Broadband Full features: HD video, real-time collab, unlimited media
Mobile Data Optimized: compressed media, data-saver mode, quality controls
Satellite Essential: text + documents, voice messages, manual downloads
Mesh/Radio Minimal: text only, store-and-forward, emergency protocols

Security & Privacy

  • Identity: Ed25519 keys with PBKDF2 protection
  • Messages: ChaCha20-Poly1305 encryption with Double Ratchet forward secrecy
  • Transport: TLS 1.3 with certificate pinning
  • Metadata: Minimized data collection with user control
  • Functions: Sandboxed WebAssembly/V8 execution
  • Federation: Cryptographically signed cross-node communication

Contributing

We welcome contributions from developers, security researchers, and community members!

Areas We Need Help

  • ๐Ÿ”ง Protocol Implementation: Reference clients and servers
  • ๐Ÿ”’ Security Auditing: Cryptographic review and penetration testing
  • ๐Ÿ“š Documentation: Tutorials, guides, and API documentation
  • ๐Ÿงช Testing: Compliance tests and interoperability validation
  • ๐ŸŽจ UI/UX: Client interfaces and user experience design
  • ๐Ÿค– Extensions: Functions, bots, and integrations

Development Process

  1. Fork this repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Code of Conduct

This project follows a contributor covenant. Be respectful, inclusive, and collaborative. We're building this together! ๐Ÿค

Community

Support

License

This project is licensed under multiple licenses:

  • Protocol Specification: CC BY 4.0 - freely implementable
  • Reference Implementation: MIT License - use in any project
  • Documentation: CC BY 4.0 - share and adapt

Frequently Asked Questions

Why not just use Matrix/XMPP/IRC?

Each has strengths, but DCP combines the best aspects:

  • vs Matrix: Simpler protocol, better performance, web-native design
  • vs XMPP: Modern crypto, built-in media handling, function extensibility
  • vs IRC: Security by default, rich features, network adaptation
  • vs Discord/Slack: Decentralized, open protocol, data ownership

How is this different from blockchain chat apps?

DCP is not a blockchain protocol:

  • โœ… Fast: No mining or consensus delays
  • โœ… Cheap: No transaction fees or token requirements
  • โœ… Scalable: No global state synchronization
  • โœ… Private: No public transaction ledger
  • โœ… Practical: Works with existing internet infrastructure

Can I migrate from Discord/Slack/Teams?

Yes! DCP includes migration tools and bridges:

  • Email bridge: Maintains external communication during transition
  • Import tools: Migrate channels, users, and message history
  • Gradual adoption: Users can switch at their own pace
  • Feature parity: All modern chat features supported

What about mobile support?

DCP is designed mobile-first:

  • Progressive Web App: Install from browser, works offline
  • Native apps: Reference implementations for iOS/Android
  • Battery optimized: Efficient protocols and smart caching
  • Data sensitive: Adapts to mobile data limitations

Is this production ready?

DCP is currently in draft specification phase:

  • โœ… Design: Complete protocol design
  • ๐Ÿ”„ Implementation: Reference implementation in progress
  • โณ Testing: Security audits and compliance testing needed
  • โณ Production: Target late 2025 for initial production deployments

Built with โค๏ธ by the open source community

"Communication should be open, secure, and under your control"

About

Decentralised Chat Protocol, Own your data, protect your right to secure comms

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors