const dm = ease.chat.dm('EUSR_alice');
dm.on('message', e => {
if (e.kind === 'message') render(e.event.envelope);
});
await dm.send({ type: 'ease.text', text: 'hello' });
// plaintext in. ciphertext on the wire.
// the server never sees the message.What you can build
Rooms are the primitive underneath. What you reach for day to day is concrete.
1:1 and group chat
Direct messages and group rooms, end-to-end encrypted from the first message.
Contacts and presence
A contact graph with requests, lookup, blocking, and live online presence.
Multi-device
Use your account across devices. Link a new one, revoke a lost one, with keys held on each device.
Tenant configuration
Choose your auth method, bring your own email or SMS provider, and manage it from a dashboard.
Agent identities
Agents are first-class peers in the same encrypted rooms as people.
Encrypted by default
The server stores and routes ciphertext. It never holds your keys or your cleartext.