ssi-patterns
README.md

Self-Sovereign Identity Design Patterns

Identified SSI Design Patterns

Trusted Registries

  • Public Institution Registry
  • Trusted Schemas Registry
  • Status Registry
  • DID Registry or Identifier Registry
  • Identifier-Attribute Registry
  • Blockchain Anchor

Onboarding

  • Onboarding or DID registration
  • Linking onboarding with credential issuance

Verifiable Credentials and Presentations

  • Verifiable ID (V-ID)
  • Verifiable Attestation (VA)
  • Verifiable Mandate (VM)
  • Verifiable Accreditation (VAcc)
  • Verifiable Authorization (VAuth)
  • Selective Content Generation
  • Selective Content Disclosure
  • Time-Constrained Access
  • One-Off Access
  • Expiration Time
  • Effective Time

Decentralized Identifiers and Cryptographic Keys

  • Multiple Registration
  • Blockchain and Social Media Account Pair
  • Public DIDs or Anywise DIDs
  • Pairwise DIDs (and N-wise DIDs)
  • Static DIDs
  • Dual Resolution or DID Resolution
  • Delegate List
  • DID Controller
  • Master and Sub Key Generation
  • Key Shards Patterns

Qualified Electronic Certificates

  • Qualified Verifiable Credentials
  • Binding VCs and QECs
  • Binding DIDs and QECs

Wallet and Off-Chain Storage

  • Hot and Cold Wallet Storage,
  • Local (Private) Storage
  • External (Remote) Cloud Storage

Patterns Definition

The file SSI_DesignPatterns.xlsx defines each pattern using the Alexander pattern template, including (i) name, (ii) summary, (iii) context, (iv) problem, (v) forces, (vi) solution, (vii) example of application, (viii) resulting context, (ix) related patterns, and (x) known use cases. Additionally, each pattern was also classified into a representative category.

Patterns Connection Visualization

The ssi-pattern-connections-visualization/ssi-patterns folder contains a project visualizing identified SSI design patterns connections. It can be installed locally likewise:

git clone https://github.com/spelacu/ssi_patterns.git
cd ssi_patterns\ssi-pattern-connections-visualization
npm install
cd ssi-patterns
npm install
npm start