Matrix Dart SDK

A Dart implementation of the federated communications protocol, Matrix.

This SDK is for general use, but mainly being developed for Pattle, an easy to use Matrix app.


   import 'package:matrix_sdk/matrix_sdk.dart';
   import 'package:url/url.dart';

   void main() async {
     final sqfliteStore = SqfliteStore();
     final homeserver = Homeserver(Url.parse(''));

     final user = await homeserver.login(Username('pat'), 'pattle', store: sqfliteStore);

     await for(SyncState syncState in user.sync()) {
       await for (final room in user.rooms.all()) {
         // Do something

This example uses the SqfliteStore , which is a seperate dependency and only works on Flutter.

Note that using a store is optional.

Also uses the url package for Url.parse(..).


To contribute, a CLA has to be signed. This is the Fiduciary Contributor License Agreement, a very free software friendly license agreement. It actually guarantees you (the Contributor) that your contributions will never be relicensed to anything other than AGPL version 3 or higher.

To sign the CLA, please send a signed copy to

An image of your signature is also okay, to do this easily you can edit the HTML version, add a photo of your signature as an <img> tag, render it with pandoc using:

   pandoc cla-signed.html -t html -o cla-signed.pdf --css cla.css

Please note that in the future the signing process will be automated using CLAM.