INVITE ONLY
OBSERVATORY

Developers

Run it. Verify it.

Everything you need to stand on this stack: the quickstart, the verification paths, and the relay API — written in the same terms as the code.

Read every field the relay deserializes.

Four requests carry the whole messenger. Tap through the exact shapes — every field the server deserializes, and what stays opaque to it.

POST /auth/register

{
  "serpent_id": "string   — 3–64 chars: letters, digits, - and _",
  "password":   "string   — 8–128 chars"
}

// 200 —
{
  "token":      "<jwt>",
  "user_id":    "<uuid — internal routing id>",
  "profile_id": "PROFILE-XXXXXXXX-XXXXXXXX"
}

Two fields. That is the complete identity surface the relay ever learns. Full reference.

Hold these pages to their own law

Every security sentence on these pages names a primitive, links an artifact, or states what the system cannot do. The relay carries ciphertext; it cannot read messages. Where a capability is not shipped yet, the page says so in the present tense — a roadmap is labeled a roadmap.

The request and response shapes in the API reference mirror the structures the server actually deserializes, field by field. A field not documented here is not read.

Then one of them is wrong and we want to know which. Report it through responsible disclosure — documentation drift on a security surface is triaged like a bug.