Technical reference for IT and developers. The business overview is in the company documentation.
Technical specification · for developers
Contract v1
Status: phase 1 — contract (2026-10-21). This covers the REST contract (openapi-v1.yaml), events (asyncapi-v1.yaml), E2EE (e2ee-v1.html) and the rules. The backend currently serves /api/*; /v1 is the target public layer.
Principles
- Employees and guests. Employees sign in with SIWE or a corporate ID; guests use a signed invite token. Third-party apps receive scoped tokens, not another user's JWT.
- E2EE on the client. The server stores and relays encrypted envelopes and blobs but sees metadata and signaling parameters. Base messages and media are designed as E2EE. Transcripts and AI summaries are separate features; they are disabled in the confidential profile.
- Explicit versions. Everything is in
/v1; breaking changes only in/v2. - Minimum trust. An app sees only the scopes granted to it; sensitive actions require a wallet signature.
- Metadata is data too. The server sees who/when/how much; this is recorded in the privacy policy, not hidden.
Authentication
| Subject | Method | Token |
|---|---|---|
| Employee | POST /v1/auth/siwe/challenge → signature → verify or corporate ID | JWT aud=user, short TTL |
| Guest | Signed invite token /i/<token> | Short guest session, no wallet |
| User + app | OAuth2 authorization code + PKCE, consent via SIWE | JWT aud=app, wallet, scopes |
| Server bot/integration | Client credentials (by operator decision) | JWT aud=app, no wallet (only granted scopes) |
Scopes: messages:read, messages:write, keys:read, keys:write, rooms:create, rooms:join, devices:write, webhooks:manage.
E2EE in brief
- Each device has an identity key, a signed prekey and one-time prekeys.
- The sender performs X3DH and sends an
EncryptedEnvelope(opaque to the server). - Groups use sender keys inside E2EE; the server sees
senderKeyId, the envelope and metadata. - Room admission is the invitation
/i/<token>; the#k=fragment is the encryption key, not admission. Key material is exchanged through signaling; media uses frame transforms (Insertable Streams/SFrame).
Status and limitations
- Public beta; the contract describes the target
/v1layer. - New rooms are created only by connected companies; self-service creation on the website is disabled.
- Guest links are the primary admission path; the room code remains legacy.
- No independent external audit has been performed.
MEETER / DOCS