Skip to content

docs(be,fe): design doc and implementation checklist for verified emails as a first-class II primitive#4027

Draft
MRmarioruci wants to merge 2 commits into
mainfrom
claude/youthful-stonebraker-518a33
Draft

docs(be,fe): design doc and implementation checklist for verified emails as a first-class II primitive#4027
MRmarioruci wants to merge 2 commits into
mainfrom
claude/youthful-stonebraker-518a33

Conversation

@MRmarioruci

Copy link
Copy Markdown
Contributor

Internet Identity has a single recovery-email slot per anchor, verified through an inbound DKIM/DMARC/DNSSEC ownership-proof flow. Dapps can request email / name / verified_email attributes but only from linked OpenID/SSO sources — the recovery email is invisible to the attribute system. Users can't add multiple verified emails for any other purpose, and there's no way to share an email with a dapp that doesn't go through a third-party identity provider.

This PR adds two design artifacts to start the conversation; no code changes.

Changes

Two new files under docs/design/:

  • verified-email-attributes.md — design doc. Proposes promoting "verified emails" to a first-class anchor primitive that supersedes the current single-slot recovery model, with three phases:
    • Phase 1: verified-emails primitive + batched migration (1a lazy on touch, 1b controller-driven sweep of the long tail, 1c drop the legacy field).
    • Phase 2: verified emails as ICRC-3 attribute sources under a new verified:<H(address)>:email scope.
    • Phase 3: smart-routing + last-used default in the consent dialog; no per-dapp pin, no global "don't share" toggle.
  • verified-email-implementation.md — operational checklist. File-path-level steps for implementers, with locked decisions stated up front (cap=5, wizard rename to emailVerification/, additive candid evolution, etc.) and a suggested PR breakdown for the eventual feature work.

Both files cross-link to each other. The design doc explains why; the checklist is what to do.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant