# orderedItems[].object.content
Signal is developing a standalone desktop app without requiring a smartphone for setup or use, based on recent open-source code changes. 🖥️
The update adds more desktop controls while keeping end-to-end encryption, improving device independence with a privacy-first design. 🔐

@signalapp

🔗 https://aboutsignal.com/news/signal-de sktop-without-a-mobile-phone-standalone-version-in-development/

#TechNews #Signal #Messaging #Privacy #E2EE #Encryption #EndToEndEncryption #OpenSource #FOSS #Cybersecurity #Security #Data #Internet #Freedom #Software #Tech #Communication

# orderedItems[].object.content
With the political changes of
the coming years, we might need to rely more and more on tools that provide us the privacy and security we need to stay safe.

One of these tool that is and will likely become increasingly essential to our communities is Signal :signal: 💙

But @signalapp is a nonprofit organization
and, to survive, it will need our support. Especially with the continuing battle to protect end-to-end encryption ✊🔒

If you can afford it,
I highly encourage you to support Signal financially.

HOW TO ❓

1. From mobile: You can donate monthly and even get a cute donor badge in the app! On iOS, click on your name on the upper left, then "Settings", then "Donate to Signal" :awesome:

2. From browser: You can setup a monthly or one-time donation, even a small amount helps: https://signal.org/donate/ :blobcatheart:

3. IRL: Buy swag! You can also buy cool swag to help financially while spreading the good word about Signal while wearing it! Check out Signal's store: https://shop.signal.org 👕✨

Thank you for supporting the tools that help us all 💙

#Privacy #Signal #Encryption #E2EE #NonProfit #DigitalRights

# orderedItems[].object.content
I'm looking forward to giving everyone a demo of #E2EE at #FediForum. If I can get enough done, I open up a beta for people who attend.

I'm going to call this the @jaz screen:

# orderedItems[].object.content
💡 Got a story to tell about Matrix? The #MatrixConf 2026 CFP is open!

Topics include: Matrix internals, public sector deployments, community, safety, and more.

🗓️ Oct 20-23, 2026 | Malmö, Sweden

https://cfp.2026.matrix.org/matrix-con ference-2026/cfp

#DigitalSovereignty #Decentralization #E2EE

# orderedItems[].object.ephemeral.metadata[].description
Schedule, talks and talk submissions for The Matrix Conference 2026

# orderedItems[].object.ephemeral.metadata[].ogDescription
Schedule, talks and talk submissions for The Matrix Conference 2026

# orderedItems[].object.content
RE: https://mastodon.social/@benpate/11641 6165885691153

#E2EE is coming to the #Fediverse. Every effort will be made for #Fedilab to be among the first Android clients to support it. Not as a spectator but as an actor, thanks to the beta testers who make early iterations possible. Be ready.

# orderedItems[].object.ephemeral.metadata[].description
ZOMG! #E2EE news on the Fediverse keeps getting better

The @HolosSocial team is planning to implement the same encryption standard as Mastodon, Bonfire, and Emissary.

When it lands, truly private messages should interoperate between all four platforms. This is an _absolute_win_ for open platforms and open APIs.

# orderedItems[].object.ephemeral.metadata[].ogDescription
ZOMG! #E2EE news on the Fediverse keeps getting better

The @HolosSocial team is planning to implement the same encryption standard as Mastodon, Bonfire, and Emissary.

When it lands, truly private messages should interoperate between all four platforms. This is an _absolute_win_ for open platforms and open APIs.

# orderedItems[].object.content
RE: https://mastodon.social/@HolosSocial/1 16416045056891863

ZOMG! #E2EE news on the Fediverse keeps getting better

The @HolosSocial team is planning to implement the same encryption standard as Mastodon, Bonfire, and Emissary.

When it lands, truly private messages should interoperate between all four platforms. This is an _absolute_win_ for open platforms and open APIs.

# orderedItems[].object.ephemeral.metadata[].description
@benpate
Holos will update its E2EE model to align with the shared spec, shipped well before 2027 and landing in the Fediverse first. Mastodon will likely make its own choices later on, and Holos will adapt again to stay compatible. No problem.
@lgsp@social.tchncs.de @apps@toot.fedilab.app

# orderedItems[].object.ephemeral.metadata[].ogDescription
@benpate
Holos will update its E2EE model to align with the shared spec, shipped well before 2027 and landing in the Fediverse first. Mastodon will likely make its own choices later on, and Holos will adapt again to stay compatible. No problem.
@lgsp@social.tchncs.de @apps@toot.fedilab.app

# orderedItems[].object.content
Have you seen this news?

#Mastodon just got funding to add end to end encryption into their software.

So, some time next year, you’ll be able to send truly private messages to the vast majority of the #Fediverse

Im so excited about this.

Because it’s an open spec, this opens the doors for every Fediverse app to join the party.

Yesterday, this project was a proof of concept. Today, Mastodon has turned it into a stampede.

#E2EE

https://blog.joinmastodon.org/2026/04/sovereign-tech-agency-funding/

# orderedItems[].object.ephemeral.metadata[].ogDescription
Announcing a service agreement for new work to improve Mastodon and the broader ecosystem.

# orderedItems[].object.content
listening to music on #spotify 👎

listening to #music inside #ArcaneChat while the playlist and currently playing song is synchronized #p2p so me and the boys chill listening to the same song at the same time in real-time 👍

all end-to-end #encrypted, with Perfect Forward Secrecy (#PFS), no centralized servers, no #billionaire platform, no #DRM, no logins, no personal data, no age verification, no bullshit, just you, your friends and the chilling vibes

#privacy #e2ee #DeltaChat #webxdc

# orderedItems[].object.attachment[].name
an screenshot of an in-chat mini-app in ArcaneChat, the mini-app is a music player with a playlist

# orderedItems[].object.content
#Holos started at the end of 2025. A full #ActivityPub server now runs on your phone, with the ability to use your own domain as your identity, #E2EE DMs via Signal Protocol, zero-knowledge encrypted backup, #ActivityPub media served from your own cloud, a tailored timeline based on your interests thanks to #HolosDiscover, and the ability to switch views depending on your mood or the content you want to browse. Thank you for your feedback and support that helped to go through these steps.

# orderedItems[].object.content
Taking on challenges like #E2EE direct messages or making your identity independent from any server was a priority for me. Not depending on any external API means all the cards are in our hands to respond to what people need, without compromise. Behind the scenes, the work between the app and the relay is tightly coupled. A lot of relay improvements, especially around Bloom filter performance, are not always reflected in changelogs.(3/4)

# orderedItems[].object.content
I'm deep into refactoring the #E2EE code today. My goal is to reconstruct all of the server side code.

So, it's back to #Bandwagon roulette for today's coding music. It's simple: go to search, pick a hashtag (#Ambient for me, please), then play the top album in the results. They shuffle every time you reload, so there's always something new.

First up for me ~ Pathfinder by HCM: https://bandwagon.fm/678ec24cd84b0eb34 6b7a482

# orderedItems[].object.content
Check this out: https://clip.place/w/ajgJ5Hi69bbbxHCK3 nXNdj

I just published a video of the new "end to end encryption" protocol for ActivityPub in #Emissary. The UX is rougher than I'd like, but you can see the client app is coming along nicely.

Today, it sends and receives messages using MLS, a widely used industry standard and successor to the Signal protocol.

By June 2026, it should be ready for you.

For more details on the project and my progress, see: https://emissary.dev/e2ee

#JustBetweenUs #e2ee

# orderedItems[].object.ephemeral.metadata[].description
So here's a progress report on "end to end encryption" in Emissary.

# orderedItems[].object.ephemeral.metadata[].ogDescription
So here's a progress report on "end to end encryption" in Emissary.

# orderedItems[].object.ephemeral.metadata[].twitterDescription
So here's a progress report on "end to end encryption" in Emissary.

# orderedItems[].object.content
Signal Protocol for a P2P Webapp

TL;DR: I have open-sourced a #Rust implementation of the #SignalProtocol that compiles to #WASM for #Browser-based #P2P messaging, overcoming the #NodeJS limitations of the official library.

I am sharing my implementation of the Signal Protocol designed specifically for the #Frontend. While the official libsignal is the gold standard, its #JavaScript targets are often optimized for Node.js, which creates integration challenges for client-side web applications.

My version is built in #RustLang and compiles to #WebAssembly, utilizing #ModuleFederation to provide robust #Encryption for decentralized environments. It currently powers the end-to-end security for my #P2P messaging project.

Protocol Demo:
https://signal.positive-intentions.com/

P2P App Demo:
https://p2p.positive-intentions.com/if rame.html?globals=&id=demo-p2p-messaging--p-2-p-messaging&viewMode=story

I am looking for feedback from the #Dev and #Infosec community. If you have experience with #Cryptography audits or formal-proof verification, I would appreciate your eyes on the codebase as I work toward a more finished state.

GitHub Repository:
https://github.com/positive-intentions/signal-protocol

#Signal #SignalProtocol #Rust #RustLang #WASM #WebAssembly #OpenSource #OSS #Privacy #Encryption #E2EE #WebDev #Frontend #BrowserTech #Decentralized #WebApps #Coding #Security #SoftwareEngineering #Networking #PeerToPeer #P2P #Cryptography #Audit #CyberSecurity #Tech #JavaScript #Programming #ModuleFederation #P2PWeb #PrivacyTech #SecureMessaging #WebPerf #TechCommunity #InfoSec #WebSecurity

# orderedItems[].object.ephemeral.metadata[].twitterTitle
GitHub - positive-intentions/signal-protocol: Signal protocol for the browser

# orderedItems[].object.ephemeral.metadata[].description
Signal protocol for the browser. Contribute to positive-intentions/signal-protocol development by creating an account on GitHub.

# orderedItems[].object.ephemeral.metadata[].ogDescription
Signal protocol for the browser. Contribute to positive-intentions/signal-protocol development by creating an account on GitHub.

# orderedItems[].object.ephemeral.metadata[].ogTitle
GitHub - positive-intentions/signal-protocol: Signal protocol for the browser

# orderedItems[].object.ephemeral.metadata[].twitterDescription
Signal protocol for the browser. Contribute to positive-intentions/signal-protocol development by creating an account on GitHub.

# orderedItems[].object.content
This is how #Holos currently handles #E2EE DMs over #ActivityPub. Holos is a project we develop alongside #Fedilab.

https://holos.social/e2ee

#HolosSocial

# orderedItems[].object.ephemeral.metadata[].ogDescription
Your private messages, readable only by you and your recipient

# orderedItems[].object.content
I like how people are recommending a bunch of FLOSS messengers now, its an opportunity to check out underrated projects like I just a few minutes ago learned about the FLOSS project Quiet (https://tryquiet.org) from a discord community trying to relocate.

The website says its all E2EE P2P with tor built in, channels like slack/discord, no email or phone number required. Unfortunately no quantum resistant encryption on the roadmap so I still would recommend SimpleX for general purpose instant messaging but Tor-by-default and P2P are genuine advantages over Simplex

If you found this post interesting you might also be interested in these decentralised encrypted messengers with various pros and cons compared to eachother:

Cwtch
https://cwtch.im
http://cwtchim3z2gdsyb27acfc26lup5aqb egjrjsqulzrnkuoalq5h4gmcid.onion/

Briar
https://briarproject.org/

Meshtastic
https://meshtastic.org/

#FLOSS #E2EE #PSA #Privacy #Security #Anonymity #Deniability #Meshtastic #Briar #Cwtch #SimpleX #Quiet #P2P #Tor #Slack #Discord

# orderedItems[].object.ephemeral.metadata[].description
An open source, off-grid, decentralized mesh network built to run on affordable, low-power devices

# orderedItems[].object.ephemeral.metadata[].ogDescription
An open source, off-grid, decentralized mesh network built to run on affordable, low-power devices

# orderedItems[].object.content
We are entering a new step in the development of #Holos and we need more people to test.
We have reopened subscriptions through the app: https://holos.social/signup

We wrote a page explaining how we implemented #E2EE DMs over #ActivityPub: https://holos.social/e2ee

Don't hesitate to contribute and share your feedback with us. Thank you.

#HolosSocial

# orderedItems[].object.ephemeral.metadata[].ogDescription
Your private messages, readable only by you and your recipient

# orderedItems[].object.content
«#KashPatel says the FBI is investigating #Signal chats of Minnesotans tracking #ICE:
On Monday, the #FBI director said, “We’re not going after people and infringing on their #freedom of speech.” There’s fresh evidence to the contrary»

In this regard, I wonder if @signalapp is legally obliged to keep #silent about this, since it is a #US organization and because they are a centralized online #software from the #USA.

👉 https://www. ms.now/rachel-maddow-show/madd owblog/kash-patel-says-the-fbi-is-investigating-signal-chats-of-minnesotans-tracking-ice

#signal #privacy #chat #encryption #e2ee #security

# orderedItems[].object.ephemeral.metadata[].description
On Monday, the FBI director said, “We’re not going after people and infringing on their freedom of speech.” There’s fresh evidence to the contrary.

# orderedItems[].object.ephemeral.metadata[].ogDescription
On Monday, the FBI director said, “We’re not going after people and infringing on their freedom of speech.” There’s fresh evidence to the contrary.

# orderedItems[].object.ephemeral.metadata[].ogTitle
Kash Patel says the FBI is investigating Signal chats of Minnesotans tracking ICE

# orderedItems[].object.content
There are many ways that #WhatsApp could implement methods for getting users' messages while still using #EndToEndEncryption. The #mobile app could take a command to send messages to #Meta before they are encrypted (via an #E2EE channel still). This is why #FreeSoftware and #OpenSource are essential for #privacy. Anyone can then inspect what the app is actually doing. #Proprietary #software means blinding trusting the developer's claims.

https://www. pcmag.com/news/lawsuit-alleges-that-whatsapp-has-no-end-to-end-encryption

#lawsuit #FOSS #FLOSS

# orderedItems[].object.ephemeral.metadata[].twitterTitle
Lawsuit Alleges That WhatsApp Has No End-to-End Encryption

# orderedItems[].object.ephemeral.metadata[].description
The lawsuit cites 'courageous whistleblowers,' but provides no technical evidence. WhatsApp's parent company, Meta, calls the claims 'absurd' and warns that it plans to countersue.

# orderedItems[].object.ephemeral.metadata[].ogDescription
The lawsuit cites 'courageous whistleblowers,' but provides no technical evidence. WhatsApp's parent company, Meta, calls the claims 'absurd' and warns that it plans to countersue.

# orderedItems[].object.ephemeral.metadata[].ogTitle
Lawsuit Alleges That WhatsApp Has No End-to-End Encryption

# orderedItems[].object.ephemeral.metadata[].twitterDescription
The lawsuit cites 'courageous whistleblowers,' but provides no technical evidence. WhatsApp's parent company, Meta, calls the claims 'absurd' and warns that it plans to countersue.

# orderedItems[].object.content
#JustBetweenUs

I've just sent the first end-to-end-encrypted #MLS messages from one #Emissary instance to another.

News from around the USA really has me down, so it's important to celebrate the little wins 🎉

And, there's still so much to do. But with equal quantities of luck and caffeine, I can screencast some early prototypes for you before too long.

I believe #E2EE is important for the #Fediverse because it will give us more ways to use this network, and expand what people can do here.

# orderedItems[].object.attachment[].name
Application screenshot of the terminal from my laptop, showing debug output of an ActivityPub message being sent from one account and received by another.

It's really a bunch of gibberish, but that's the point. The messages are "end to end" encrypted using MLS, so there's nothing to actually read. And the lack of readable information is the whole point.

# orderedItems[].object.content
Anatomy of an E2EE ActivityPub Note in Enigmatick

Over the break I spent some time revamping my structs and enums for handling #E2EE #ActivityPub exchanges. This is what I have at the moment for the initial Create from the client (this is subject to change).

{
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    "https://purl.archive.org/socialweb/mls"
  ],
  "type": "Create",
  "actor": "https://enigmatick.social/user/jdt",
  "to": [
    "https://enigmatick.social/user/mls-tester"
  ],
  "cc": [],
  "object": {
    "mediaType": "message/mls",
    "encoding": "base64",
    "published": "2025-12-29T21:11:17Z",
    "type": "Note",
    "to": [
      "https://enigmatick.social/user/mls-tester"
    ],
    "cc": [],
    "attributedTo": "https://enigmatick.social/user/jdt",
    "content": "AAEAAhDIkTdahK5U3s1SQBbA2fIvAAAAAAAAAAEBABzHJj3+WZDE3Hw6H5W9YNhE3bhDSyExL4tnn0E5QOvPUeOgYdo/2n+rGUI1M8wupeK2bt919jAs8yTj2awvBAsprxAInHm8qWgq2FER2xjcpAx9f42ncAL8Xehfy3v6vonGuAPkYteAzdFCC8mGWxg3slpI+VoPrSWThSKqjMNxttZSfvbnhEFYw0jUFmJwxOecDS8n3UVjuLDt14V0Fw9YMv+XXUgKj9bWaCPi0qhuatcgxCqXwXzpevJBhY0trbPZgjB8LlhC/zcx5NNLI9WJtCF9zq3RPkG6ByPdH6IWTH5drOJyvefILElybP4eGMSoGWZATmGUQm/k3iKG6tRyzMM/fHxpIz34",
    "tag": [
      {
        "type": "Mention",
        "name": "[at]mls-tester@enigmatick.social",
        "href": "https://enigmatick.social/user/mls-tester"
      }
    ],
    "attachment": []
  },
  "published": "2025-12-29T21:11:17Z",
  "instrument": [
    {
      "type": "VaultItem",
      "content": "oAjN0c2+q5gCtrFlauGU1kbKGizm5a5pH+iY5cObdihVBjjsSiSbkeu6XQ7/RR4lcn0OIqS9O+MVJ0QyympRxt7JI9qzCGlkCFcAyp4oe8nhh/YG7WHoLWL272vPqlq8A/Yf0YFprhIBlU48sJF6A1iRlU4fEBaRwnwV4gniSCQr55jpDe++M/HD3bSFJNcvpmf5BH9G4Z3VBaB8HMnDECGzFrB8zFycAR0w1SNYbGJuXFsopfMb4EfPkZoHT28="
    },
    {
      "type": "Welcome",
      "mediaType": "message/mls",
      "encoding": "base64",
      "content": "AAFAmCDd32lw8FF8QC6uFjAHr3mgvxBPjuGV1Pssxx+h5CNhcCAv4/tP+dWUbCq6L4A+aMr+L1uP3Xkusb4ea2H80EgFOUBUqHDCdGzjAhZdLCrjE0kM/aou36ZSZc0ahftKmE07chTiMUo8FgIj12deS4A0l3sXAR8x724HeigtyObI1GK7fxMGXU5oWemHGhS1unxK6XVyiuqvQriKP+VJPZa6JzN3Yb4r4l9B5jUfNUc5gX3XvzkzcO57Exj8SgpTTygo2zBTOPQ+6steYycUA70ed3LPKEfSCllIWeWAV+J+EFh7ywm90XFYzaPrXVudIx3orRzVMFnIldLax3oHUW5uXIrGQ06JWfgdOQ6DByb2iy/Dw4zJlbZP1oJptBTgO19IqUQaz58wrWDBSiYIT3h1jOXE3GvJgeeQIiW78noO5MF3xI3WRXB4C0cttyKm7Od2CBOk1USo+TDLCevnmExhlKlVTobTMMI4xZ1vVCdYpnb0k9rO7coVKPueBqVg2mE20GS/IoRG0v8+h0xUKIgsbYua41krjXoB5hctX4kH3lRO+qERkoXEcLVxRJuyeZEGsk4XrJ18AigU1a8gB6cZZ5LyvcV756yelu6F6MRQKba6zawDLOn4Takm3Lr3urfWo5Br7DBZcigMVjzGn8MhLSIEMhv6Ehmqajj9Vl6sTnpi90tVYWUtKO1buPrk3AiXrsbnEoNubqCs1sVmA93/Z0CcE8GQa1dO7NywofSV4/ax/tmBCZEoU6/uL7ygZHt8ZvSyd6wniPCR6sfd4ys4O8C7qW1KKFtEBbb1lMre494ZeXI5v0sG7MwbwFtI3d2uRHtWZ8v9khGr1ds4AFz3QnvoMSUtsR2kvq+C6H45kUs2ae957+txpKt5MDrcmK+CTTcX/FhlAtib4mlbs+Aj4WJFLOkXuB+MlHOMBlMz3ndJ5I3GDbo+VQvdJC2mCUOBWraihOV92mQQHi2gLXAA1NSsZIjXgnyVSYsrUvNJgTvw+AOVmJ7q5tXENPlZoOKUjSB3fEmKlywf90EQLUjDpphnYtvdFz8Oh8Vbgze+QAQp2VVYImI+1voBErK1EMKqEDFz1DC1CWUzqhl3k2pMgx00JhP3ZZpbX7YtjRmLjJM="
    }
  ]
}

The mention of mls-tester has an [at] to avoid triggering my automatic webfinger resolution.

I've adopted the mediaType and encoding attributes from the draft ActivityPub specification. And I've standardized the Welcome message to incorporate those.

The Create includes the Welcome and a VaultItem as instruments rather than being sent as separate activities. The Welcome can include any number of recipients, so one within the activity should be sufficient.

The VaultItem is specific to the #Enigmatick client and isn't intended to be federated. That's how I'm handling ongoing access to the decrypted data; the VaultItem is a symmetrically encrypted representation of the original content that can be safely stored on the server for repeated use by the client. I'll need to eventually update the @context with that extension.

# orderedItems[].object.source.content
## Anatomy of an E2EE ActivityPub Note in Enigmatick

Over the break I spent some time revamping my `structs` and `enums` for handling #E2EE #ActivityPub exchanges. This is what I have at the moment for the initial `Create` from the client (this is subject to change).

```json
{
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    "https://purl.archive.org/socialweb/mls"
  ],
  "type": "Create",
  "actor": "https://enigmatick.social/user/jdt",
  "to": [
    "https://enigmatick.social/user/mls-tester"
  ],
  "cc": [],
  "object": {
    "mediaType": "message/mls",
    "encoding": "base64",
    "published": "2025-12-29T21:11:17Z",
    "type": "Note",
    "to": [
      "https://enigmatick.social/user/mls-tester"
    ],
    "cc": [],
    "attributedTo": "https://enigmatick.social/user/jdt",
    "content": "AAEAAhDIkTdahK5U3s1SQBbA2fIvAAAAAAAAAAEBABzHJj3+WZDE3Hw6H5W9YNhE3bhDSyExL4tnn0E5QOvPUeOgYdo/2n+rGUI1M8wupeK2bt919jAs8yTj2awvBAsprxAInHm8qWgq2FER2xjcpAx9f42ncAL8Xehfy3v6vonGuAPkYteAzdFCC8mGWxg3slpI+VoPrSWThSKqjMNxttZSfvbnhEFYw0jUFmJwxOecDS8n3UVjuLDt14V0Fw9YMv+XXUgKj9bWaCPi0qhuatcgxCqXwXzpevJBhY0trbPZgjB8LlhC/zcx5NNLI9WJtCF9zq3RPkG6ByPdH6IWTH5drOJyvefILElybP4eGMSoGWZATmGUQm/k3iKG6tRyzMM/fHxpIz34",
    "tag": [
      {
        "type": "Mention",
        "name": "[at]mls-tester@enigmatick.social",
        "href": "https://enigmatick.social/user/mls-tester"
      }
    ],
    "attachment": []
  },
  "published": "2025-12-29T21:11:17Z",
  "instrument": [
    {
      "type": "VaultItem",
      "content": "oAjN0c2+q5gCtrFlauGU1kbKGizm5a5pH+iY5cObdihVBjjsSiSbkeu6XQ7/RR4lcn0OIqS9O+MVJ0QyympRxt7JI9qzCGlkCFcAyp4oe8nhh/YG7WHoLWL272vPqlq8A/Yf0YFprhIBlU48sJF6A1iRlU4fEBaRwnwV4gniSCQr55jpDe++M/HD3bSFJNcvpmf5BH9G4Z3VBaB8HMnDECGzFrB8zFycAR0w1SNYbGJuXFsopfMb4EfPkZoHT28="
    },
    {
      "type": "Welcome",
      "mediaType": "message/mls",
      "encoding": "base64",
      "content": "AAFAmCDd32lw8FF8QC6uFjAHr3mgvxBPjuGV1Pssxx+h5CNhcCAv4/tP+dWUbCq6L4A+aMr+L1uP3Xkusb4ea2H80EgFOUBUqHDCdGzjAhZdLCrjE0kM/aou36ZSZc0ahftKmE07chTiMUo8FgIj12deS4A0l3sXAR8x724HeigtyObI1GK7fxMGXU5oWemHGhS1unxK6XVyiuqvQriKP+VJPZa6JzN3Yb4r4l9B5jUfNUc5gX3XvzkzcO57Exj8SgpTTygo2zBTOPQ+6steYycUA70ed3LPKEfSCllIWeWAV+J+EFh7ywm90XFYzaPrXVudIx3orRzVMFnIldLax3oHUW5uXIrGQ06JWfgdOQ6DByb2iy/Dw4zJlbZP1oJptBTgO19IqUQaz58wrWDBSiYIT3h1jOXE3GvJgeeQIiW78noO5MF3xI3WRXB4C0cttyKm7Od2CBOk1USo+TDLCevnmExhlKlVTobTMMI4xZ1vVCdYpnb0k9rO7coVKPueBqVg2mE20GS/IoRG0v8+h0xUKIgsbYua41krjXoB5hctX4kH3lRO+qERkoXEcLVxRJuyeZEGsk4XrJ18AigU1a8gB6cZZ5LyvcV756yelu6F6MRQKba6zawDLOn4Takm3Lr3urfWo5Br7DBZcigMVjzGn8MhLSIEMhv6Ehmqajj9Vl6sTnpi90tVYWUtKO1buPrk3AiXrsbnEoNubqCs1sVmA93/Z0CcE8GQa1dO7NywofSV4/ax/tmBCZEoU6/uL7ygZHt8ZvSyd6wniPCR6sfd4ys4O8C7qW1KKFtEBbb1lMre494ZeXI5v0sG7MwbwFtI3d2uRHtWZ8v9khGr1ds4AFz3QnvoMSUtsR2kvq+C6H45kUs2ae957+txpKt5MDrcmK+CTTcX/FhlAtib4mlbs+Aj4WJFLOkXuB+MlHOMBlMz3ndJ5I3GDbo+VQvdJC2mCUOBWraihOV92mQQHi2gLXAA1NSsZIjXgnyVSYsrUvNJgTvw+AOVmJ7q5tXENPlZoOKUjSB3fEmKlywf90EQLUjDpphnYtvdFz8Oh8Vbgze+QAQp2VVYImI+1voBErK1EMKqEDFz1DC1CWUzqhl3k2pMgx00JhP3ZZpbX7YtjRmLjJM="
    }
  ]
}
```

_The mention of `mls-tester` has an `[at]` to avoid triggering my automatic webfinger resolution._

I've adopted the `mediaType` and `encoding` attributes from the draft ActivityPub specification. And I've standardized the `Welcome` message to incorporate those.

The `Create` includes the `Welcome` and a `VaultItem` as `instruments` rather than being sent as separate activities. The `Welcome` can include any number of recipients, so one within the activity should be sufficient.

The `VaultItem` is specific to the #Enigmatick client and isn't intended to be federated. That's how I'm handling ongoing access to the decrypted data; the `VaultItem` is a symmetrically encrypted representation of the original content that can be safely stored on the server for repeated use by the client. I'll need to eventually update the `@context` with that extension.