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.
The loop
- 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.
- Read. Open a few articles; the meter charges them into local storage as it always has.
- Update the vault. This device’s records are written as one file, one commit, published.
- 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.
- Read and update there too. Two files, one view, the same figures on both devices.
The principles
- Local storage stays primary, written in real time by the meter; the vault is updated when you ask.
- Records, never totals. Reads, top-ups and personas go in raw; reads, spend, declined, credit and balance are recomputed from them with one starting credit for the account.
- One file per device, written only by that device. Two devices never write the same file, so there is nothing to merge and no conflict by construction. The consolidated view is computed from all the files each time.
- Brought-in records keep their author. What arrives from another device is tagged with it, and the next sync from here writes only this device’s own records back.
- Nothing is typed twice. The access key is pasted once and lives in the master; every other device gets it by opening the master with its passkey, or with the recovery code once.
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/