Versioning
Draft
This section is under construction.
Five Independent Version Layers
SimpleX uses five separate, independent version numbers. This is one of the most confusing aspects of the protocol for new implementers.
| Layer | Name | Current Range | Negotiation Level |
|---|---|---|---|
| 1 | SMP Transport | 6–7 | TLS handshake |
| 2 | SMP Client | 1–4 | Queue creation |
| 3 | SMP Agent | 2–7 | Agent handshake |
| 4 | E2E Encryption | 2–3 | Connection setup |
| 5 | Chat Protocol | 1–16 | Chat messages |
warning
Early SimpleGo sessions incorrectly assumed "SMP versions 6 to 17" — this was wrong. The number 17 likely referred to the maximum across different version layers.
Backward Compatibility
SimpleX maintains a minimum 1-year backward compatibility policy. Version ranges are negotiated using (minVersion, maxVersion) pairs, and both sides select the highest mutually supported version.