Skip to main content

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.

LayerNameCurrent RangeNegotiation Level
1SMP Transport6–7TLS handshake
2SMP Client1–4Queue creation
3SMP Agent2–7Agent handshake
4E2E Encryption2–3Connection setup
5Chat Protocol1–16Chat 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.