Meshline is a decentralized messaging and social protocol built around self-sovereign identity.
This repository contains the protocol specification and shared interoperability test vectors for developers building clients, public relays, and SDKs. It defines how independent implementations discover one another, authenticate devices, route messages, and exchange data across the network.
Protocol 1.0 — Specification draft
- Self-sovereign identity and device authorization. Control your account through keys you hold, with separate device keys and explicit authorization for everyday communication.
- Public relay discovery and verification. Discover relay membership through the on-chain Registry and verify relay identities, endpoints, and declared capabilities.
- Distributed routing and cross-relay delivery. Resolve account routes through the relay DHT, then deliver messages directly between the sender's and recipient's home relays.
- End-to-end encrypted direct messaging. Encrypt message content on clients while relays handle ciphertext storage, synchronization, and delivery.
- Optional channel and group hosting. Support public channels and hosted groups through optional client–relay protocol modules.
Start with the English specification, browse the online reader, or read the Simplified Chinese specification.
| Section | What it covers |
|---|---|
| General conventions | Scope, terminology, network context, data representations, and cryptographic conventions |
| Relay Registry | Public-relay membership, on-chain records, and the interoperable contract ABI |
| Client–relay | Device sessions, account state, contacts, messaging, channels, and groups |
| Relay DHT | Relay discovery within the overlay and distributed account-route publication and lookup |
| Relay RPC | Direct account queries and message delivery between relays |
| Test vectors | Fixed inputs, protocol bytes, and expected results for interoperability checks |
For a first implementation, read the general conventions before the relevant protocol sections. Use the test vectors to check encoding and cryptographic operations against the specification.
Use the Meshline SDKs to integrate Meshline into an application. The SDK repository provides available implementations, installation instructions, examples, and their supported capabilities.
The Registry reference contracts provide the Neo N3 implementation, ABI documentation, and deployment instructions. Find these entry points together on the developer resources page.
Implementations should use the specification and shared test vectors as their interoperability reference.
Issues and pull requests are welcome for specification clarifications, interoperability problems, and improvement proposals. Describe the affected protocol section, the behavior you observed or propose, and a reproducible example where possible.
See the maintenance guide for repository language conventions, translation reviews, validation details, and downstream synchronization.