Other apps have user IDs: Signal, Matrix, Session, Briar, Jami, Cwtch, etc. SimpleX does not, not even random numbers. This radically improves your privacy.
When users have persistent identities, even if this is just a random number, like a Session ID, there is a risk that the provider or an attacker can observe how the users are connected and how many messages they send. They could then correlate this information with the existing public social networks, and determine some real identities. And, if you use Incognito mode, you will have a different display name for each contact, avoiding any shared data between them.
To deliver messages, instead of user IDs used by all other platforms, SimpleX uses temporary anonymous pairwise identifiers of message queues, separate for each of your connections — there are no long term identifiers.
You define which server(s) to use to receive the messages, your contacts — the servers you use to send the messages to them. Every conversation is likely to use two different servers.
This design prevents leaking any users’ metadata on the application level. To further improve privacy and protect your IP address, you can connect to messaging servers via Tor.
Only client devices store user profiles, contacts and groups; the messages are sent with 2-layer end-to-end encryption.
To connect to your friend, you can connect via their 1-time QR-code, in person or via a video link. You can also connect by sharing an invitation link. So, there is no user ID you share to groups or the public to connect with you. Every code is a one-time use code for just a single friend to connect. The channel through which you share the link does not have to be secure – it is enough that you can confirm who sent you the message and that your SimpleX connection is established.
See https://simplex.chat/ and also a video by the developers at https://youtu.be/7yjQFmhAftE.