CircleKey — secure shared secrets

Tutorial 2 — losing a device and getting back in

Mandatory backup enrollment (spec §9.6) · a destroyed device recovered from a 128-bit credential the server never sees

← All demos Tutorial · fictitious data
Step 1 of 6

Device #1 — Alice's laptop · acting

Creates its identity, is forced through backup enrollment, works normally — and is then destroyed.

Device #2 — the replacement · acting

A brand-new device with empty storage. Everything it recovers comes from the credential plus the server's opaque data.

Watch the identity key row: after step 5 the replacement holds the same one, which is what makes it the same member rather than a new one.

What happened — newest first
Backup is mandatory: vault operations are unreachable until enrollment completes (spec §9.6)
The recovery credential is system-generated, shown once, and never sent to the server (spec §9.6)
The server stores only an opaque sealed blob; the KDF and its cost parameters travel with it (spec §6.2, §10.2)
A wrong credential fails cryptographically — there is nothing to “reset” server-side (spec §13)
Restore recovers the same device identity, and with it the same manager authority (spec §9.6)
A backup made before the vault existed still recovers its full history, via the secret history chain (spec §9.7)
Server side everything the backend stores, live — you are looking at its whole database
groups
no row yet
transitions
epoch 0
epoch 1
epoch 2
records
doc-1
doc-2
backup_blobs
no row yet
The server's complete view — four tables, nothing else. Every filled slot is clickable: it shows exactly the bytes the server holds for that row, and no more.