Privacy
Effective 2026-07-30 · operated by the Witbitz project.
Witbitz is a trusted runtime for collaborative apps where people and AI agents work together. Its first app is Spaces — a shared room where you and others work with an AI. This policy explains what data the Witbitz service handles. Unusually, most of what you'd expect a service to see, we can't: your content is end-to-end encrypted, and the platform holds only ciphertext at rest. Where the design falls short of that, we say so plainly below.
The short version
- Content-blind by design. Your messages, documents, images, and a Space's configuration are encrypted with a key that lives in your link and on your device — never sent to us on the read path. At rest we store only ciphertext. Neither Witbitz nor the app's own owner can read your content at rest.
- No accounts to use a Space. Access is by link. Some rooms additionally require a sign-in chosen by the app owner (see Identity).
- The one exception, stated honestly: to run an AI agent's turn, a certified, reproducible, egress-locked function decrypts your message in memory for that turn only — to run the model and enforce the room's admission rules — then discards it. It is not stored or logged in plaintext.
- Verifiable. You can read the running code's true data footprint at
/docs/verify.md and its signed build certificate at
/cert.json, and reproduce the build yourself. - No advertising, no tracking cookies, no selling of data.
What is encrypted, and where the key lives
Everything that carries meaning in a Space is sealed under a room key: the conversation ledger, shared documents and widgets, images, and the Space's configuration (its agent persona, tools, and its admission rules and allow-list). That key is generated on your device and lives in your link — it is never transmitted to us during ordinary reading (the client opens the sealed data itself). We store only a one-way commitment to the key (a hash), which lets the service accept the right key without ever holding it.
The in-use exception — and how we bound it
An AI agent genuinely needs to read a turn's plaintext to think, and the platform needs to check who is allowed to participate. So when a turn runs, a certified-ephemeral function receives your (still end-to-end-encrypted) message, decrypts it in memory, runs the agent and enforces admission, and discards the plaintext when the turn ends. That plaintext is not persisted and not logged. The function is a reproducible, egress-locked build whose declared data footprint you can verify (above). This is the one point where your content exists in the clear on a server we operate; a hardware-attested (TEE) tier — described at /docs/the-attested-tier.md — is the roadmap to remove even this in-memory exposure. Running Witbitz on-premises puts this function inside your own boundary entirely.
The model (a sub-processor)
To generate a reply, the agent sends the turn's content to a large-language-model provider (for the hosted service, an OpenAI/Azure-hosted model; on-premises, a model of your choosing, including a self-hosted one). That provider processes the content under its own policy. Which model a Space uses is part of its configuration; an air-gapped or on-premises deployment keeps this inside your infrastructure.
- OpenAI Privacy Policy (hosted default)
Identity and admission
Many Spaces are open by link. Others are gated: the app owner requires you to sign in with an identity provider (Google, or the owner's own Okta/Entra/Keycloak). When a gated room runs a turn or read, we verify your sign-in token against the room's sealed allow-list and then discard the token. We persist only the display name you chose and a "verified" marker — not the token, not your email. The allow-list itself is sealed, so the platform cannot read who is permitted at rest.
Metadata we do handle
- Opaque room identifiers, timestamps, and version tags (computed over ciphertext) so the service can route and sync.
- IP address and request metadata, transiently, for delivering the service and for security and abuse prevention. Standard server logs (timings, counts, errors — never content) auto-expire within days.
- Cleartext markers that reveal only that a room is identity-gated or owner-governed — never who is allowed or what the policy is.
- Push subscriptions, if you enable notifications: the notice is content-free (we learn only that something happened in a room), and your device composes the text on-device from the sealed data.
Maps, places, and other content
If an agent uses map, routing, or place-lookup features, the service proxies those requests to the map/geo providers, so those providers see the Witbitz server rather than your IP address. Place photos are served from Wikimedia. In an air-gapped deployment these external calls are turned off.
Payments
Paid features are handled by a third-party payment processor. Witbitz does not receive or store your full card details; the processor handles payment data under its own policy. We keep only the non-secret records needed to grant and meter what you purchased.
Hosting and infrastructure
The hosted service runs on cloud infrastructure (a CDN for static assets; a short-lived cloud function for the certified render; managed storage that holds only ciphertext and non-secret records). These providers may produce standard operational logs.
Retention and deletion
Your content persists as ciphertext until it is deleted. Because you hold the key, you control access; deleting a Space removes its stored ciphertext. Sign-in tokens are never stored. Operational logs auto-expire within days. Note that, by design, we often cannot identify or read the data associated with a given person — we hold ciphertext plus a key we cannot use — which both protects you and limits what we can retrieve on request.
Your choices and rights
Depending on where you live, you may have rights to access, correct, delete, or port your personal data, or to object to certain processing. Because of the encryption model, the most effective controls are in your hands: keep or delete your link/key, and delete a Space to remove its ciphertext. For requests we can act on, contact us below. Organizations that need data to stay inside their own boundary can run Witbitz on-premises.
Children
Witbitz is not directed to children and should not be used by anyone under the age required by their local law to consent to this kind of processing.
Changes
We may update this page; material changes will be reflected by a new effective date above.
Contact
Questions or requests? Email privacy@witbitz.chat.