Deed Vault
A user-scoped store for a blob the slice cannot read. The client encrypts under a key the slice never sees and hands over the ciphertext. That makes it the natural home for an account-recovery bundle pairing with KeyAuth. Put appends a new entry; Get returns the newest one for a uid.
drift.Deed.Vault.Put(uid, ciphertext) // the slice stores bytes it can't read
blob, _ := drift.Deed.Vault.Get(uid)Vault does not authenticate its caller.
uid is a plain argument, so any function in your slice can read or write any uid's blob. The confidentiality guarantee rests entirely on the client having encrypted first, so check who is asking before you hand a blob back. Pocket is the primitive that enforces per-identity isolation for you.History is bounded rather than infinite: past the per-uid entry cap the oldest entries are deleted, so Put appends within a window. See Limits for the numbers.
The ciphertext that belongs here is the one e2ee.js produces: a content key wrapped under a passphrase or a recovery seed.