Deed Pocket
Your app's actual data, end-to-end encrypted and content-keyed, following an identity across every device Link has enrolled. The crypto happens entirely client-side before anything reaches Pocket; the slice never sees plaintext.
Pocket is the one Deed primitive that authenticates its caller. Every call takes the bearer token KeyAuth.Verify returned, and the token's identity is the only one a call can read or write under. There is no way to name another, even by guessing key names.
drift.Deed.Pocket.Set(token, "balance", ciphertext)
blob, _ := drift.Deed.Pocket.Get(token, "balance")
keys, _ := drift.Deed.Pocket.List(token)
drift.Deed.Pocket.Delete(token, "balance")The ciphertext is yours to produce before the call. See Encrypting client-side.