Skip to content

Spike code for did plc adoption #463

@fforbeck

Description

@fforbeck

What

Replace the existing login + email verification flow with a fully client-side authentication process using Lit PKP + DID PLC.

Users prove ownership of a did:plc and are granted upload permissions using UCANs signed by a Space DID.

Why

This change, if possible, removes reliance on Storacha servers for authentication by letting users prove ownership of a did:plc directly in the browser using Lit PKP. It simplifies infrastructure, aligns identity with your UCAN-based permission model, and enables secure, walletless logins via various providers. It offers a decentralized, scalable, and user-friendly auth flow.

How

The new authorization flow should

  • Resolve did:plc
  • Verify did:plc ownership (equivalent to access/authorize)
  • Support did:plc type (cli, upload, auth, etc)
  • Provide existing delegations for a given did:plc (access/fetch)
  • Preserve UCAN Delegations chain of authority
    • New Spaces:
      • space -> agent
      • space -> did:plc (note: we don't delegate to did:mailto anymore)
      • discard space private key
    • Existing Spaces
      • client fetchs the existing delegations
  • Support user sign up (first time)
  • User sign in
  • Existing user signs up on a new device (sounds similar to the sign-in process?)
  • Billing Integration
  • Lit Integration

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

Status

Stuck / Dead Issue

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions