- unified identity
- common identity directory
- common transport API
- forward messages
- compatibility of types
- common apps
- public conformance levels
- collaborative chat features comparison list
- open transport layers to other applications
The possibility to unify user identities per transport under one unique ID, used to address a user irrespective of transport.
This concept of unified identity does not impeed the user to have multiple such identities and is agnostic of individual privacy preferences.
Bidirectional connection user unique identity <-> transport identity.
Used by projects to forward messages to other projects.
Projects must support ChatAlliance deep linking:
- show users ChatAlliance apps that can be used to handle a certain message
- support a general message description format if the project cannot handle the message format itself
- forward the message to the app chosen by the user
Universal clients:
- allow users to enable transports in order of preference
- allow users to exclude specific transports or categories of transports (e.g. centralized, server-based transports or non-encrypted transports)
A table of ChatAlliance features must be kept, showing if and how each app/protocol implements them.
A collaborative list of public chat features, used to objectively compare projects.
- every app has the liberty to propose features, that will be used to compare all projects
- announce other projects when new features are added, so they have time to respond, before making public announcements
Self-driven comparison lists such as https://threema.ch/en/messenger-comparison, https://our.status.im/private-messengers-what-can-they-really-see/ will be collated.
In other words, decouple the client from the transport, so other applications can use your transport layer.
For example, games can use one or more of the existing transport layers instead of creating their own siloed chats.
These are principles that each member promises to uphold, in relation to its ChatAlliance collaboration:
- all technical discussions are public
- all technical discussions are summarized in writing
- each technical idea that is implemented must be traceable to origin
- project implementation made after the ChatAlliance protocols must be open source, to be considered part of the ChatAlliance
- projects must publish an accurate list of features and trade-offs about themselves
- member projects must not contain features that are targeted to block one or more of the other alliance members
- member projects must support the alliance agreed upon API, in an exact manner
- a public git-like system must be used, to keep the history of changes for both protocol implementation and architecture.
- an implemented idea must be traceable up to the initial person who proposed it, along with the discussions that molded that idea.
- Signal - @signalapp
- Reddit - @reddit
- Status - @ethstatus
- Threema - @threemaapp
- Berty - @berty
- Whatsapp - @whatsapp
(https://twitter.com/lorecirstea/status/1364256404870225920)
- Element - @element_hq, https://twitter.com/mr_ligi/status/1364541931083223042
- Bluesky - @bluesky, https://twitter.com/_franzihei/status/1364541250255400960