Developer docs

Start with one encrypted message, then carry the same identity and sessions safely into your application. These guides point from the first command to the decisions an app owns in production.

Choose your path

Try the service

Create a test tenant, install the CLI and send an encrypted message in two commands. Use this to check the hosted path before writing code.

Build with an SDK

Choose TypeScript, Swift, Kotlin or Rust. Each guide has a runnable send-and-receive sample and its generated API reference.

Ship safely

Persist the client identity, protect its state and choose the receive loop your application runs for each signed-in device.

Integrate the client

The SDK surface has two objects. A tenant handle connects with an API key and signs users in. A client is one signed-in user on one device: it finds other users, sends, receives and exports its state. The surface is checked across every SDK head from one published manifest.

Production guidance

What end-to-end encryption needs
The parts an app needs beyond a protocol library, which of them Tacenta provides, and the calls that send a first message.
Client state and device identity
Exported state contains the identity and live sessions. Learn when to persist it, how each platform protects it and what a restore must do.
Current product limits
Package availability, secure storage differences, delivery behaviour and other constraints that should shape an integration plan.
Security and assurance
What is proven, tested and assumed, with links to the source claims and reproduction records.

Language references

The references are generated from each release, while the guides above explain the integration choices around the calls.

Source and deeper detail

The product repository holds the detailed platform examples and the protocol repository holds the verification record. The website guides are the place to begin; the source is there when you need to inspect the contract in full.