Send your first message
From an API key to an encrypted round trip between two of your users, in two commands. It runs against hosted Tacenta; the encryption happens on your machine, and the server only ever routes ciphertext.
How the pieces fit
A tenant is your organisation. Inside it you create users, the people in your app, each signed in on one or more devices. The encryption keys live on the device, never on the server.
Two credentials, two jobs:
- API key
- Your app uses it to sign users in and send. You get it at signup.
- Tenant password
- You use it, with your email, to rotate or revoke keys later. Set at signup; there is no reset yet, so keep it.
-
Get an API key
Create a tenant on the signup page. You get an API key that starts with
tct_. It is shown once, so copy it. -
Install the CLI
On macOS or Linux:
curl -fsSL https://tacenta.com/install.sh | shOn Windows, from PowerShell:
irm https://tacenta.com/install.ps1 | iexEither way you get a
tacentabinary on your PATH. Prebuilt for macOS (Apple Silicon), Linux (x86_64 and arm64), and Windows (x64). -
Send it
tacenta try tct_your_key_hereThe CLI signs up two throwaway users in your tenant, sends an end-to-end encrypted message from one to the other, and echoes it back:
→ you-15046f77 sent "hello from tacenta" ↔ echo-7a3f5698 received it and echoed it back ← you-15046f77 got "hello from tacenta" back, decrypted on your device end to end: both users are yours, and the server only ever saw ciphertext. -
Chat with your own words
trywas a scripted round trip. To type your own messages, open an interactive chat that shows each one encrypted on your device, sent, and decrypted back:tacenta chat tct_your_key_hereOr hold a real two-terminal chat between two of your users:
tacenta chat --as youhere, then--tothe name it prints in a second terminal. Ctrl-D to leave.
What just happened
Two users in your tenant established an end-to-end encrypted session. A message travelled from one to the other as an opaque envelope the relay could not read, and back again. Every byte of message content on the wire was ciphertext, decrypted only on the receiving device. The SDK gives your app the same primitives: sign users in, find each other, send. The SDK section shows it in TypeScript, Swift, Kotlin and Rust.
Before you build on it, know the limits. Tacenta has not been independently audited, and it is one-to-one only today. The assurance record sets out what is proven, what is only tested and what is assumed.