Matrix
What is Matrix?
Matrix is a protocol designed for instant messaging. It might seem a little different from anything you’ve seen before, in that it’s decentralized. But what does that mean, really?
The big difference compared to the kind of instant messaging you might be used to is that Matrix is not a platform in itself, but rather a network of independent platforms that talk to each other. This last “talk to each other” part is called federation. There is no central authority; each platform writes its own policies and decides who to federate with.
From matrix.org - Matrix for Instant Messaging:
Matrix works a little like email, but instantaneous and secure:
- You need to register an account at a provider
- Whatever your provider is, you can talk to people using other providers
- In the same way you can use Outlook or Thunderbird with the same email account, you can use different Matrix apps for the same Matrix account.
Foxnet is one such platform or provider. In practice, Foxnet operates a server that speaks the Matrix protocol. This is called a homeserver.
From matrix.org - Elements of Matrix:
A homeserver is a piece of software hosting accounts of Matrix users. […] The accounts on a server have an identifier made of a local part (the username), and a server part, which is the […] domain of the homeserver. A typical identifier would be
@username:example.com.
This identifier is called a Matrix ID (MXID). For accounts on the Foxnet homeserver, MXIDs look like @username:foxnet.systems, where username is the local part and foxnet.systems is the server part. Each account on the Foxnet homeserver is linked to a Foxnet account.
What Can Matrix Do?
Using Matrix, you can participate in communities just like you would if you were using a platform like Discord or Telegram: you can privately message other people, call them, join rooms, and create your own. All of this comes with optional end-to-end encryption so that the content of your messages can only be read by you and the recipients, even across different homeservers.
How Do I Start Using Matrix?
In order to use Matrix, you must find a suitable Matrix client to use. Foxnet provides a web client accessible at chat.foxnet.systems, which will be referenced as Foxnet Chat for the rest of the guide. More supported clients will be listed further below.
The first time you sign into the homeserver using your Foxnet account, a Matrix account is created for you, with your Foxnet account’s username as the local part of the MXID. The easiest way to sign in is by using Foxnet Chat: simply open the website, click on Continue with foxnet.systems, and step through the login process.
If the procedure was successful, you will have just registered a new device on your Matrix account. A device is a session that you create when you sign into a client and destroy when you log out of it.
Device Verification
New devices must always be verified by another device before they can access your encrypted message history. When you register your first device, you must generate a recovery key that you can later enter to verify a new device when no other devices are available to use. Assuming your first device is Foxnet Chat in the same browser you’re using to view this page, you can generate your recovery key here.
If you lose your recovery key and all your devices are destroyed or inaccessible, you will not be able to recover your encrypted message history and you must reset your cryptographic identity.
Rooms and Spaces
If you’re coming from Discord, you are probably familiar with these basic channel types: direct messages between two users, group chats between two or more users, and guild channels. In Matrix, there’s no difference between these three. Everything is a group chat, which Matrix calls rooms. Direct messages translate to an invite-only room with two members.
Rooms can be created to be either public or invite-only, and you can later configure them with an address that can be used by other Foxnet members (local address) or any Matrix user (published address) to find the room. Published addresses can freely be added to the homeserver’s room directory, a list of public rooms that can be browsed by any Matrix user. A room address looks like #room:example.com.
Rooms have a permission system where each member is assigned a power level (an integer) and each permission is assigned a minimum power level that a member must match or exceed in order to have that permission. For example: if the permission to send messages requires power level 50, then only room members whose power level is 50 or higher will be able to send messages.
By default, new room members start at power level 0 and permissions are set up such that power level 50 and 100 can perform moderator and administrator actions respectively. The creator of a room irrevocably receives infinite power level, and additional creators who will also receive that power can be selected during room creation. Room creators can never be added or removed afterwards. Power levels persist through leaving and rejoining a room.
Importantly, a member with the permission to set other members’ power levels can elevate anyone to their own power level. That is, someone with power level 100 can promote another member to power level 100. Be careful who you give dangerous permissions to!
Spaces are rooms that contain other rooms (including spaces). Room membership can be restricted to members of a space, so spaces can function like Discord guilds. The same room can be added to multiple spaces, and rooms do not inherit members or permissions from their parent spaces.
Finding Rooms and Users
When your Matrix account is created, you are automatically added to three rooms: #foxnet:foxnet.systems (a space), #announcements:foxnet.systems, and #chatroom:foxnet.systems. In the member list of these rooms, you can find every other account currently registered on the homeserver. External users cannot join these rooms. If you want to interact with users from other homeservers, you can start by joining our community room at #community:foxnet.systems.
To find new rooms to join, you can look through other homeservers’ room directories or search the list at matrixrooms.info. You can only message a user if you know their MXID.
Supported Clients
Matrix is an open protocol, so there are many other clients you can use instead of (or alongside) Foxnet Chat. You can use any amount of clients at the same time, so you don’t have to pick one and stick with it.
The most important part when bringing your own client is to make sure that you are logging into the right homeserver. Most clients default to matrix.org, but they always offer an option to use a custom homeserver. Read through the prompts carefully and enter foxnet.systems or your MXID when asked.
It has been determined that these clients work fine with the homeserver:
- Sable (all platforms) - Sable features one of the UI designs most reminiscent of Discord among Matrix clients. It is the client used by Foxnet Chat and by far the one with the biggest feature set.
- Element/Element X (all platforms) - Element and Element X are developed by the corporation that funds The Matrix.org Foundation. They are the sane defaults for desktop and mobile, but they don’t implement many secondary features like stickers, custom emoji, and status messages.
- Fractal (Linux Flatpak) - Fractal is GNOME’s Matrix client. As beautiful as it is useless, it works to send and receive messages. GNOME knows best.
- gomuks (Windows, macOS, Linux, Android) - gomuks is a modular, highly technical client for power users.
These clients work, but with issues:
- FluffyChat (>=2.9.0, all platforms) - In order to log in using your Foxnet account, you must go to
(three dots) > About > Advanced Configs, search forenableMatrixNativeOIDC, and make sure it is toggled on. Proceed as normal by returning to login, clickingSign in, and enteringfoxnet.systems. Marking messages as read in rooms does not always work. FluffyChat is otherwise quite fully-featured.
These clients do NOT work:
- Cinny - Cannot log in.
- Nheko - Cannot log in.
- Commet - Cannot log in.
- NeoChat - Cannot log in.
Other clients may or may not work. If you have experience with a different client, let us know so that it can be added to this list!