XMPP is an open source messaging protocol that’s decentralized. It’s what’s called “federated,” which means that anyone can set up their own server, and these servers can all communicate through the same protocol.
This means you can easily talk to your friends on your own hidden social media network, while at the same time talk to strangers on other servers end-to-end encrypted. XMPP is similar to a decentralized version of Signal because you get end-to-end encryption but without trusting the Signal Foundation or Amazon AWS servers with your personal metadata such as who and when is communicating.
You can understand XMPP with the example of email because they are both structured in a similar standardized, yet decentralized, format. Anyone can set up an email server to communicate with another email account or server using the Standard Messaging Protocol. There are no permissions or centralized authority.
XMPP usernames are called JIDs and are structured like email, with the format of user@server. So if the server is example.com then you would communicate with firstname.lastname@example.org.
There are many different servers worldwide from which you can choose (or even set up your own), although when XMPP first started, Jabber.org was the original popular server that many used. Because of this, people often refer to XMPP as “Jabber.” Someone asking you to “send me your Jabber ID” is probably referring to XMPP in general, and so you could send him or her an account that’s not on the Jabber.org server.
There are two popular encryption protocols for XMPP. These protocols offer the possibility of end-to-end encryption, but both your server and the client of the person you’re talking to have to allow it. The two types of XMPP encryption are Off the Record messaging (OTR)and OMEMO.
Because XMPP is decentralized, you have to make 3 choices when you first set up an account.
1) What software client you want to use?
2) What server do you want to use?
3) What username will you pick on that server?
There are many different choices for what software you should use for XMPP. We recommend you make your decision based on how you will use it.
Dino is good for Linux video and audio calls, but it won’t work on Windows or Mac.
Gajim works on Windows and has audio calls, but no video. It has a real small user interface.
Pidjin works on many platforms but requires installing an additional plugin for encryption, which you can find here:
You should use an XMPP server that respects your privacy. If you truly want privacy and don’t want to trust any server, we recommend setting up your own server. If this beyond your technical interests then we can setup a server for you and hand over the passwords. If we setup a server for you, then you’d pick the domain name and get complete control over who can use it.
In our future articles, we’ll be covering the different types of encryption that can be used with XMPP as well as different clients more in-depth. You would get a lot out of subscribing for free to our new content by email, by Session messenger, via RSS feed, our Ethereum push notification channel, or on Nostr.