You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Where does a note's signing key live so the author can seal from any device? #244
Where does a note's signing key live, so the author can seal and publish from any of their devices?
Today the genesis controller key for every list asset lives in the creating device's localStorage (localCelKeyStore, src/lib/originals.ts), so a list or note is unauthorable from a second device. Notes are sealed on publish (#229), so a note written on a phone can't be published from a laptop.
Options to weigh: holding asset keys in Turnkey (the user's auth wallet), syncing keys between the user's devices, or authorizing extra device keys as controllers on the asset DID. Whatever is chosen has to keep the author, not boop, as the signer (the trust model the destination depends on). It also has to say what happens to notes created before the change.
Blocks ship; does not block the sealing or verification decisions.
Trust model: author-present signing. boop's parent-org Turnkey API key must not be able to sign as the author.
Key: one author Turnkey Ed25519 key controls every asset and is published in the author's did:webvh.
Signing UX: routine actions are signed client-side with the author's short-lived Turnkey session; publish seals need a fresh passkey step-up. Works from any signed-in device.
Agents: each agent/API key has its own key, authorized by a signed author delegation.
Notes/lists created before the change: re-genesis everything under the Turnkey key. Published usage is negligible, so there's no continuity or redirect tooling.
Correction from follow-up grilling (full model in #286): there's no passkey step-up to seal. The author's Turnkey key only controls the did:webvh. Per-device keys (and agent-generated keys), registered as verification methods in the author's DID, sign routine actions and seals. Sessions last 7 days with silent refresh. Recovery is user-completed email OTP plus optional passkeys.
Activity
pullfrog commentedon Sep 30, 2026
brianorwhatever commentedon Oct 8, 2026
Resolved in grilling:
brianorwhatever commentedon Oct 8, 2026
Correction from follow-up grilling (full model in #286): there's no passkey step-up to seal. The author's Turnkey key only controls the did:webvh. Per-device keys (and agent-generated keys), registered as verification methods in the author's DID, sign routine actions and seals. Sessions last 7 days with silent refresh. Recovery is user-completed email OTP plus optional passkeys.
feat: sign action records with the owner's Turnkey sub-org key