Design the identity model: devices as leaves, users as signed device groups, contacts as verified edges. See NOTES.md — Identity and devices.
Leanings:
- Devices as leaves, user = group of devices, sharing groups contain user groups. The unification holds under failure: "lost phone" and "removed collaborator" have the same mechanics (rotate forward, treat history as exposed).
- Device identity substrate already exists in the family: iroh endpoint IDs (Ed25519, key-is-address) held as polymorph:webcrypto non-extractable handles.
- User identity = a signed device-list chain (Keybase-sigchain-ish), with a small gossip/transparency story rather than a global directory.
- Enrollment ceremony (QR / short-authentication-string between devices): cheap and polished, because it is also the origin-migration path and part of recovery.
- Contact exchange: out-of-band verification (QR/link), petnames, TOFU + gossip cross-checks; no global directory in v1.
Open sub-questions:
- Sigchain format: what an entry attests (add/remove device, rotate root?), where chains are stored/gossiped, how peers audit them.
- Introduction flows (contact A introduces B) and what trust that conveys.
- Whether a user root key exists above device keys, and if so where it lives (interacts with the key-lifecycle issue).
- Petname UX vs display-name spoofing.
Design the identity model: devices as leaves, users as signed device groups, contacts as verified edges. See NOTES.md — Identity and devices.
Leanings:
Open sub-questions: