Home / Account / Your vault

Your vault · beta

Your vault

The reading account lives in this browser. The vault is its second home, one you own and every device of yours reaches with a passkey. Enable it on the right, read, update; then do the same on another device.

A beta. The pane on the right is the vault: the reading account this browser keeps, carried between your devices through an encrypted vault that opens with your passkey. It is on every page, behind the Vault button beside the balance. Nothing about the meter changes; the vault is a second home for its data that you keep current.

The loop

  1. On this device, press Enable with your passkey. The first time there is no door at the derived address: paste an access key and Create the account. Three vaults are made (a door, a master, a reader vault), the access key goes into the master, and a recovery code is shown once.
  2. Read. Open a few articles; the meter charges them into local storage as it always has.
  3. Update the vault. This device’s records are written as one file, one commit, published.
  4. On another device, enable with the same passkey. The door is there, the master brings the access key, the reader vault opens. Across your devices lists the first one. Bring that device’s activity here adds its records to this browser and the meter shows the consolidated balance.
  5. Read and update there too. Two files, one view, the same figures on both devices.

The principles

The design, the data layout, what is not synced and why, and the experiments to run next are in the activity vault. The pieces it is made of are in the passkey lab, and the vault code is the library that runs dev.vault.sgraph.ai, vendored here.

What leaves this browser

Ciphertext, to the vault server (dev.send.sgraph.ai), when you create, update or open: every file is encrypted here under keys derived from your passkey, and the server sees requests, sizes and times. The pane lists every call as it happens. The access key travels only as a request header to that server. Nothing goes anywhere else.

For an agent

The vault pane (assets/vault-pane/vault-pane.js) carries the reading account between a reader's devices through an sgit vault opened with a passkey: a door derived from the PRF bytes (assets/door.js), the master and the reader vault (assets/newsroom-vault.js). The reader vault holds activity/account.json (one starting credit) and activity/devices/.json (that device's raw reads, top-ups and personas, rewritten whole on each sync); totals are recomputed from the records (assets/vault-pane/sync.js). Local storage stays primary; the vault is updated when the reader presses Update. The design is https://newsroom.sgit.ai/admin/notes/2026-10-12__the-activity-vault.md; the tests are admin/build/test_sync.mjs (the logic) and test_pane.mjs (two devices in Chromium against a mock of the vault API).