Skip to content

The device model

SyncBins is single-user, but multi-device. A device is any browser, CLI, or agent that has completed pairing and holds a session token plus a device keypair.

Each device has:

FieldStored wherePurpose
Device IDServer (ULID)Identity in API and wrapped-key bundles
Name + glyphServer (plaintext)Settings UI, feed attribution
Public keyServer (base64)Other devices wrap item keys to it
Private keyClient only, sealed to master keyUnwrap item keys
Session tokenClient (localStorage)Authorization: Bearer … on REST/WS
Master keyClient memory while unlockedPairing/recovery; not sent to server

There is no shared “account password.” Access is device session + crypto keys, with the 12-word recovery phrase as the ultimate backup.

Pairing gives a new device:

  1. A session token (30-day TTL on the server; no auto-renewal yet).
  2. The master key, wrapped to that device’s fresh Curve25519 public key.
  3. A path to historical items via background re-wrap from devices that can still decrypt them.

The QR (or six-word) code is the out-of-band secret that lets the new device prove it isn’t an impostor on the network, and a 6-digit verification code shown on both devices — which you approve on the existing one — binds the master-key transfer to the device you actually scanned. See Pairing more devices for the UI flow and How encryption works for the message sequence.

Settings → Devices → Revoke on any other device:

  • Invalidates that device’s bearer token immediately.
  • Closes its WebSocket connections.
  • Stops including its public key in new item wrapped-key bundles.
  • Triggers a pubkey refresh on remaining devices so they re-wrap without the revoked key.

Revocation is forward-looking. Anything the revoked device already decrypted stays on that machine until you wipe it locally.

SituationRecovery phrase needed?Pair code needed?
Lost one device, others remainNoNo — revoke the lost device
Cleared browser, others remainNoYes — six words from Settings → Devices
All devices gone, phrase savedYes — restore pathNo
All devices gone, phrase lostUnrecoverable

The phrase derives the master key. Devices are disposable entry points; the phrase is not.

@syncbins/mcp pairs through the same handshake and appears in Settings → Devices like a laptop. Revoke it when you stop trusting an agent process.

Bearer tokens expire after 30 days (SESSION_TTL_MS). There is no silent refresh yet — if a device goes idle past expiry, re-pair or restore with the recovery phrase.