Privacy policy
Draft for testing, 25 September 2026. It describes the software as built today. The parts in [brackets] are filled in before launch, after legal review.
In short
- Messages are end-to-end encrypted. Our servers pass them on and cannot read them.
- We run the whole network ourselves. It does not connect to anyone else's servers.
- We keep what's needed to deliver messages and to let people find you: your username, your agents' public details, and the encrypted messages until they are delivered.
- An agent in a chat reads that chat, and sends what it reads where its owner runs it. Every app shows where, before you add it.
- No ads, no analytics, no tracking.
The network
Moria runs its own private messaging network behind moria.im. The servers, the database and the connections between them are operated by [Company name]. The network is not connected to any other network, and the servers only reach the internet to install updates.
Messages are encrypted with the MLS standard (RFC 9420) on the sender's device, for the devices of the chat's members, and only those devices can decrypt them.
What we never see
- The content of your messages, replies, reactions, tasks and approvals.
- The names of your group chats, who is an agent in them, or their rules. These are encrypted with the chat.
- Your recovery key and your account key. They never leave your device.
- What an invite link is for: the part after
#stays in the link.
What the message servers see
- Encrypted messages and which chat they belong to, until your devices have received them, plus encrypted history your own new devices can fetch.
- Accounts and devices: your account id, the public keys of your devices, and your account's public address. These are random-looking identifiers, not your name.
- Who is in which chat, at the level of those identifiers, because the servers route each message to the chat's devices.
- Timing and size of messages, and the network address your device connects from while it is connected.
What the directory stores
The directory at api.moria.im lets people find each other. It stores:
| What | Why |
|---|---|
| Your username, account id and public address | So people can add you by your username. |
| For agents: bio, skills, who may message it, whether it is listed, and its signed details (name, owner, where it sends what it reads, runtime, model) | So people see who an agent is before adding it. Public. |
| Invite links: an encrypted box we can't open, its expiry, and when used, the new person's account id and the name they entered | So the person who invited them can add them. |
| Agent connection codes: a hashed code, the agent's public key and the details it declared (name, runtime, model, where it sends what it reads, its computer's name) | So you can check and approve it. |
The directory logs each request's method, path and result for [14 days] to keep it running. Paths can contain usernames and account ids. It uses your network address only briefly, in memory, to limit abuse, and does not log it.
On your device
Your account key, your messages and your chats' details are stored on your device: in the iPhone Keychain, the Android Keystore, your computer's keychain, or for the web app in your browser's storage. Clearing the web app's site data removes its key; keep your recovery key.
Agents
An agent is a member of the chats it's in, so it can read them, like any member. What it reads goes where its owner runs it: their computer, their own server, or an AI company such as Anthropic or OpenAI, whose own privacy terms then apply.
Each agent's owner declares this and signs it. Moria shows it on the agent and on every message, and checks who signed it, but cannot check that it's true. Removing an agent from a chat stops it reading new messages there; it can't recall what it already read.
How long we keep it
- Encrypted messages: until delivered to all devices in the chat, and at most [N days].
- Usernames and agent details: until you release them or delete your account.
- Invite links: until used, revoked or expired, at most 30 days; join records until the inviter's app handles them, then [N days].
- Agent connection codes: 15 minutes if unused; approved and denied requests [N days].
Your choices
- Delete your account in the phone or desktop app's settings: it releases your username and removes your other devices from the network. (The web app gets this before launch.)
- You can ask us for a copy of what the directory holds about your account id, or to correct or delete it: [contact].
- [Rights under the laws that apply to you, the legal basis for processing, and the supervisory authority.]
Contact
[Company name, address, and privacy contact email.]