matrix.org Open in urlscan Pro
2606:4700:10::6814:14ec  Public Scan

Submitted URL: http://matrix.org/
Effective URL: https://matrix.org/
Submission: On May 03 via api from GB — Scanned from GB

Form analysis 0 forms found in the DOM

Text Content

This app works best with JavaScript enabled.
DiscoverDevelopFoundationBlogFAQsMatrix LiveShopTry Now




AN OPEN NETWORK FOR SECURE, DECENTRALIZED COMMUNICATION

Learn More


AN OPEN NETWORK FOR SECURE, DECENTRALIZED COMMUNICATION

Get started
 * Imagine a world...
 * ...where it is as simple to message or call anyone as it is to send them an
   email.
 * ...where you can communicate without being forced to install the same app.
 * ...where you can choose who hosts your communication.
 * ...where your conversations are secured by E2E encryption.
 * ...where there’s a simple standard HTTP API for sharing real-time data on the
   web.

This is Matrix.

Matrix is an open source project that publishes the
Matrix open standard for secure, decentralised, real-time communication, and its
Apache licensed
reference implementations.

Maintained by the non-profit Matrix.org Foundation, we aim
to create an open platform which is as independent, vibrant and evolving as the
Web itself... but for communication.

As of June 2019, Matrix is out of beta, and the protocol is fully suitable for
production usage.

MESSAGING

Matrix gives you simple HTTP APIs and SDKs (iOS, Android, Web) to create
chatrooms, direct chats and chat bots, complete with end-to-end encryption, file
transfer, synchronised conversation history, formatted messages, read receipts
and more.

Conversations are replicated over all the servers participating in them, meaning
there are no single point of control or failure. You can reach any other user in
the global Matrix ecosystem of over 40M users, even including those on other
networks via bridges.

Learn more

END-TO-END ENCRYPTION

Matrix provides state-of-the-art end-to-end-encryption via the Olm and Megolm
cryptographic ratchets. This ensures that only the intended recipients can ever
decrypt your messages, while warning if any unexpected devices are added to the
conversation.

Matrix’s encryption is based on the Double Ratchet Algorithm popularised by
Signal, but extended to support encryption to rooms containing thousands of
devices. Olm and Megolm are specified as an open standard and implementations
are released under the Apache license, independently audited by NCC Group.

Learn more

VOIP

With the advent of WebRTC, developers gained the ability to exchange high
quality voice and video calls – but no standard way to actually route the calls.

Matrix is the missing signalling layer for WebRTC. If you are building VoIP into
your app, or want to expose your existing VoIP app to a wider audience, building
on Matrix’s SDKs and bridges should be a no-brainer.

Learn more

BRIDGING

Matrix owes its name to its ability to bridge existing platforms into a global
open matrix of communication. Bridges are core to Matrix and designed to be as
easy to write as possible, with Matrix providing the highest common denominator
language to link the networks together.

The core Matrix team maintains bridges to Slack, IRC, XMPP and Gitter, and
meanwhile the wider Matrix community provides bridges for Telegram, Discord,
WhatsApp, Facebook, Hangouts, Signal and many more.

Learn more

IOT, VR AND MORE...

Matrix can handle any type of real-time data, not only messaging and VoIP.

By building bridges to as many IoT silos as possible, data can be securely
published on the Matrix network. IoT solutions built on Matrix are unified,
rather than locked to specific vendors, and can even publish or consume Matrix
data directly from devices via ultra-low bandwidth transports (100bps or less)

Meanwhile AR and VR vendors are recreating the silos we’ve seen in instant
messaging rather than working together towards an open ecosystem. Matrix can be
the unifying layer for both communication and world data in AR and VR.


HOW DOES IT WORK?

Matrix is really a decentralised conversation store rather than a messaging
protocol. When you send a message in Matrix, it is replicated over all the
servers whose users are participating in a given conversation - similarly to how
commits are replicated between Git repositories. There is no single point of
control or failure in a Matrix conversation which spans multiple servers: the
act of communication with someone elsewhere in Matrix shares ownership of the
conversation equally with them. Even if your server goes offline, the
conversation can continue uninterrupted elsewhere until it returns.

This means that every server has total self-sovereignty over its users data -
and anyone can choose or run their own server and participate in the wider
Matrix network. This is how Matrix democratises control over communication.

By default, Matrix uses simple HTTPS+JSON APIs as its baseline transport, but
also embraces more sophisticated transports such as WebSockets or
ultra-low-bandwidth Matrix via CoAP+Noise.

Next
Here are three Matrix homeservers, each with one client connected.

The clients are all participating in the same Matrix room, which is synchronised
across the three participating servers.
Alice sends a JSON message to a room on her homeserver.

curl -XPOST
 -d '{"msgtype":"m.text", "body":"hello"}'
 "https://matrix.alice.com/_matrix/client
 /v2/rooms/ROOM_ID/send/m.room.message
 ?access_token=ACCESS_TOKEN"

{
  "event_id": "$YUwRidLecu:alice.com"
}


Alice's homeserver adds the JSON to its graph of history, linking it to the most
recent unlinked object(s) in the graph.

The server then signs the JSON including the signatures of the parent objects to
calculate a tamper-resistent signature for the history.
The server then sends the signed JSON over HTTPS to any other servers which are
participating in the room.

curl –XPOST –H 'Authorization: X-Matrix origin=alice.com,...' –d '{
  "ts": 1413414391521,
  "origin": "alice.com",
  "destination": "bob.com",
  "pdus": [{
      "event_id": "$YUwRidLecu:alice.com",
      "content": {
      "body": "hello world",
      "msgtype": "m.text"
    },
    ...
    "pdu_type": "m.room.message",
    "signatures": {
      "matrix.org": {
        "ed25519:auto": "jZXTwAH/7EZ..."
      }
    },
    "sender": "@alice:alice.com"
  }]
}' https://matrix.bob.com:8448/_matrix/federation/v1/send/916d...


The destination servers perform a series of checks on the message:
 * Validate the message signature to protect against tampering with history
 * Validate the HTTP request's auth signature to protect against identity
   spoofing
 * Validate whether Alice's historical permissions allow her to send this
   particular message

If these checks pass, the JSON is added to the destination servers' graphs.
Destination clients receive Alice's message with a long-lived GET request.
(Clients are free to implement more efficient transports than polling as
desired).

curl "https://matrix.bob.com/_matrix/client
 /v2/sync?access_token=ACCESS_TOKEN"
{
  "next_batch": "s72595_4483_1934",
  "rooms": [{
    "room_id": "!KrLWMLDnZAyTapqLWW:alice.com",
    "events": {
      "batch": [{
        "event_id": "$YUwRidLecu:alice.com",
        "type": "m.room.message",
        "content": {
          "body": "I am a fish",
          "msgtype": "m.text",
        },
        "origin_server_ts": 1417731086797,
        "sender": "@alice:alice.com"
      }],
    },
  }]
}


Bob sends a response to Alice's message, and his server adds his message into
his copy of the room's history, linking it to the most recent unlinked object in
the graph - Alice's last message.
Meanwhile, Charlie also responds to Alice's message - racing with Bob's message.

Alice, Bob and Charlie's homeservers all have different views of the message
history at this point - but Matrix is designed to handle this inconsistency.
Bob's homeserver relays his message through to Alice and Charlie's servers, who
accept it.

At this point Alice and Bob are in sync, but Charlie's room history has split -
both messages 2 and 3 follow on from message 1. This is not a problem; Charlie's
client will be told about Bob's message and can handle it however it chooses.
Charlie's homeserver relays his message through as well, at which point all 3
servers have a consistent view of history again (including the race between Bob
and Charlie). All three clients have seen all three messages, and the room
history is now back in sync across the participating servers.
Later on, Alice sends another message - her homeserver adds it to her history,
and links it to the most recent unlinked objects in the graph: Bob and Charlie's
messages.

This effectively merges the split in history and asserts the integrity of the
room (or at least her view of it).
Alice's message is then relayed to the other participating servers, which accept
it and update their own history with the same rules, ensuring eventual
consistency and integrity of the distributed room history.


AN OPEN STANDARD

SIMPLE PRAGMATIC RESTFUL HTTP/JSON APIS BY DEFAULT

OPEN SPECIFICATION OF THE MATRIX STANDARD



FULLY DECENTRALISED CONVERSATIONS WITH NO SINGLE POINTS OF CONTROL OR FAILURE

END-TO-END ENCRYPTION VIA OLM AND MEGOLM

WEBRTC VOIP/VIDEO CALLING USING MATRIX SIGNALLING

REAL-TIME SYNCHRONISED HISTORY AND STATE ACROSS ALL CLIENTS

INTEGRATES WITH EXISTING 3RD PARTY IDS TO AUTHENTICATE AND DISCOVER USERS

MAINTAINED BY THE NON-PROFIT MATRIX.ORG FOUNDATION

GROUP CONVERSATIONS, READ RECEIPTS, TYPING NOTIFICATIONS, PRESENCE...


LATEST NEWS


THIS WEEK IN MATRIX 2022-04-29

2022-04-29 by Thib


Matrix Live 🎙 Dept of Status of Matrix 🌡️ Thib says Taking my GNOME Foundation
hat on for this news: the GNOME Foundation is adopting…


Read more


THIS WEEK IN MATRIX 2022-04-22

2022-04-22 by Thib


Matrix Live 🎙 Dept of Servers 🏢 Synapse ( website ) Synapse is a Matrix
homeserver implementation developed by the matrix.org core team…


Read more


SYNAPSE 1.57 RELEASED

2022-04-19 by Brendan Abolivier


Hey everyone! Guess what? Synapse 1.57 has just been released! Let's see what's
new in this version! Application services Application…


Read more


THIS WEEK IN MATRIX 2022-04-14

2022-04-14 by Ben Parsons


Dept of Servers 🏢 Conduit ( website ) cel says Gained v9 room support on next
branch: https://gitlab.com/famedly/conduit/-/merge…


Read more
View all posts


EXPLORE MATRIX

Try Matrix
Clients
Bots
SDKs
Hosting


SDKS

Native SDKs for multiple platforms, including:

Python
JavaScript
Android
iOS
View all SDKs


OPEN SOURCE

Join thousands of other developers in our open source repositories, including:


Synapse



JavaScript SDK



Android SDK



iOS SDK


View all on GitHub


THE MATRIX FOUNDATION

Matrix is managed through an open governance process, looked after by The
Matrix.org Foundation - a non-profit UK Community Interest Company.


It acts as a neutral guardian of the Matrix spec, nurturing and growing Matrix
for the benefit of the whole ecosystem.


The Guardians are the legal directors of the Foundation, responsible for
ensuring that it keeps on mission and neutrally protects the development of
Matrix.



WHAT PEOPLE ARE SAYING




SUPPORT MATRIX

If you share our vision, or are building on top of Matrix, please consider
donating...

Support us on Patreon for great rewards including access to the supporters-only
podcast, and even a voice at our weekly meetings.
Find out more at our Patreon page.

PATREON



LIBERAPAY



CRYPTOCURRENCY

You can also send us cryptocurrency:
BTC 1LxowEgsquZ3UPZ68wHf8v2MDZw82dVmAE
ETH 0xA5f9a4f9E024F6D727f7afdA9257e22329A97485



If you share our vision, or are building on top of Matrix, please consider
donating. See our current Elliptic supporters!


THANK YOU TO OUR INCREDIBLE SPONSORS

STATUS

A Mobile OS, Built for Ethereum.

Learn more

UPCLOUD

Matrix.org is generously hosted by UpCloud! Host your homeserver via UpCloud and
get a $25 credit.

Learn more

PRIVATE INTERNET ACCESS

Private Internet Access™ VPN Service encrypts your connection and provides you
with an anonymous IP to protect your privacy.


Learn more

INBLOCKCHAIN

INBlockchain is a full-service firm focusing on consulting, incubating and
facilitating crowdsales for promising blockchain startups.


Learn more

OMISEGO

OmiseGO is a public Ethereum-based financial technology for use in mainstream
digital wallets.


Learn more

TENDERMINT

Byzantine fault-tolerant replicated state machines in any programming language.


Learn more
DiscoverTry MatrixClientsBotsSDKsHosting
GuidesGetting StartedClient-Server APIInstall SynapseBridgesAll guides
Develop DocsSpecAPI PlaygroundCode
BlogAll PostsThis Week In MatrixSecuritySecurity RSSRSS
MoreFAQsMatrix LiveSecurity Disclosure PolicyCode of Conduct for
Matrix.orgLegalContactSite Source

© 2021 The Matrix.org Foundation C.I.C.