# 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`](./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`](./ssi-pattern-connections-visualization/ssi-patterns) folder contains a project visualizing identified SSI design patterns connections. It can be installed locally likewise: ```bash 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 ```