Demo of capabilities securing access to a dataspace in novy-syndicate

Here’s a screencast of checking out, building, and running one of the novy-syndicate demos, namely simple-chat.ts.

  • After the project is checked out and built, a generic dataspace server is started.

  • Then, two clients are connected, using unattenuated capabilities to the server’s dataspace to enact a “chat” protocol via the dataspace. (Source code for the clients: here)

  • Then, the “root” capability to the server is attenuated, limiting access only to a user calling themself tonyg. One of the clients reconnects with the attenuated capability. Its messages are not transmitted unless it uses the nick tonyg.

  • Because the attenuated capability didn’t allow Observe assertions at all, the attenuated client can only send presence and messages!

  • So the attenuation is redone to allow observation of others’ presence and utterances, and the client is again reconnected.

Just click play on the embedded recording below, or visit the recording’s page on

Alternatively, you can follow along with the instructions in the README on your own machine.