diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml
new file mode 100644
index 0000000..5983c41
--- /dev/null
+++ b/.github/workflows/pages.yml
@@ -0,0 +1,57 @@
+name: Deploy GitHub Pages
+
+on:
+ push:
+ branches: ["main"]
+ paths:
+ - 'docs/**'
+ - '_config.yml'
+ - '.github/workflows/pages.yml'
+ workflow_dispatch:
+
+permissions:
+ contents: read
+ pages: write
+ id-token: write
+
+concurrency:
+ group: "pages"
+ cancel-in-progress: false
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+
+ - name: Setup Ruby
+ uses: ruby/setup-ruby@v1
+ with:
+ ruby-version: '3.1'
+ bundler-cache: true
+
+ - name: Setup Pages
+ id: pages
+ uses: actions/configure-pages@v4
+
+ - name: Build with Jekyll
+ run: |
+ bundle add jekyll jekyll-theme-minimal jekyll-relative-links jekyll-seo-tag jekyll-sitemap
+ bundle exec jekyll build --source . --destination ./_site
+ env:
+ JEKYLL_ENV: production
+
+ - name: Upload artifact
+ uses: actions/upload-pages-artifact@v3
+
+ deploy:
+ environment:
+ name: github-pages
+ url: ${{ steps.deployment.outputs.page_url }}
+ runs-on: ubuntu-latest
+ needs: build
+ steps:
+ - name: Deploy to GitHub Pages
+ id: deployment
+ uses: actions/deploy-pages@v4
\ No newline at end of file
diff --git a/docs/.jekyll-metadata b/docs/.jekyll-metadata
new file mode 100644
index 0000000..b96d99a
Binary files /dev/null and b/docs/.jekyll-metadata differ
diff --git a/docs/2021-10-12_Update-vLEI-IIW_v1.1_final.pdf b/docs/2021-10-12_Update-vLEI-IIW_v1.1_final.pdf
deleted file mode 100644
index e176ca4..0000000
Binary files a/docs/2021-10-12_Update-vLEI-IIW_v1.1_final.pdf and /dev/null differ
diff --git a/docs/Gemfile b/docs/Gemfile
new file mode 100644
index 0000000..4826df5
--- /dev/null
+++ b/docs/Gemfile
@@ -0,0 +1,7 @@
+source "https://rubygems.org"
+
+gem "jekyll", "~> 4.3"
+gem "minima", "~> 2.5"
+gem "jekyll-feed"
+gem "jekyll-seo-tag"
+gem "webrick"
\ No newline at end of file
diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock
new file mode 100644
index 0000000..6210e36
--- /dev/null
+++ b/docs/Gemfile.lock
@@ -0,0 +1,173 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ addressable (2.8.7)
+ public_suffix (>= 2.0.2, < 7.0)
+ base64 (0.3.0)
+ bigdecimal (3.2.2)
+ colorator (1.1.0)
+ concurrent-ruby (1.3.5)
+ csv (3.3.5)
+ em-websocket (0.5.3)
+ eventmachine (>= 0.12.9)
+ http_parser.rb (~> 0)
+ eventmachine (1.2.7)
+ ffi (1.17.2)
+ ffi (1.17.2-aarch64-linux-gnu)
+ ffi (1.17.2-aarch64-linux-musl)
+ ffi (1.17.2-arm-linux-gnu)
+ ffi (1.17.2-arm-linux-musl)
+ ffi (1.17.2-arm64-darwin)
+ ffi (1.17.2-x86-linux-gnu)
+ ffi (1.17.2-x86-linux-musl)
+ ffi (1.17.2-x86_64-darwin)
+ ffi (1.17.2-x86_64-linux-gnu)
+ ffi (1.17.2-x86_64-linux-musl)
+ forwardable-extended (2.6.0)
+ google-protobuf (4.32.0)
+ bigdecimal
+ rake (>= 13)
+ google-protobuf (4.32.0-aarch64-linux-gnu)
+ bigdecimal
+ rake (>= 13)
+ google-protobuf (4.32.0-aarch64-linux-musl)
+ bigdecimal
+ rake (>= 13)
+ google-protobuf (4.32.0-arm64-darwin)
+ bigdecimal
+ rake (>= 13)
+ google-protobuf (4.32.0-x86-linux-gnu)
+ bigdecimal
+ rake (>= 13)
+ google-protobuf (4.32.0-x86-linux-musl)
+ bigdecimal
+ rake (>= 13)
+ google-protobuf (4.32.0-x86_64-darwin)
+ bigdecimal
+ rake (>= 13)
+ google-protobuf (4.32.0-x86_64-linux-gnu)
+ bigdecimal
+ rake (>= 13)
+ google-protobuf (4.32.0-x86_64-linux-musl)
+ bigdecimal
+ rake (>= 13)
+ http_parser.rb (0.8.0)
+ i18n (1.14.7)
+ concurrent-ruby (~> 1.0)
+ jekyll (4.4.1)
+ addressable (~> 2.4)
+ base64 (~> 0.2)
+ colorator (~> 1.0)
+ csv (~> 3.0)
+ em-websocket (~> 0.5)
+ i18n (~> 1.0)
+ jekyll-sass-converter (>= 2.0, < 4.0)
+ jekyll-watch (~> 2.0)
+ json (~> 2.6)
+ kramdown (~> 2.3, >= 2.3.1)
+ kramdown-parser-gfm (~> 1.0)
+ liquid (~> 4.0)
+ mercenary (~> 0.3, >= 0.3.6)
+ pathutil (~> 0.9)
+ rouge (>= 3.0, < 5.0)
+ safe_yaml (~> 1.0)
+ terminal-table (>= 1.8, < 4.0)
+ webrick (~> 1.7)
+ jekyll-feed (0.17.0)
+ jekyll (>= 3.7, < 5.0)
+ jekyll-sass-converter (3.1.0)
+ sass-embedded (~> 1.75)
+ jekyll-seo-tag (2.8.0)
+ jekyll (>= 3.8, < 5.0)
+ jekyll-watch (2.2.1)
+ listen (~> 3.0)
+ json (2.13.2)
+ kramdown (2.5.1)
+ rexml (>= 3.3.9)
+ kramdown-parser-gfm (1.1.0)
+ kramdown (~> 2.0)
+ liquid (4.0.4)
+ listen (3.9.0)
+ rb-fsevent (~> 0.10, >= 0.10.3)
+ rb-inotify (~> 0.9, >= 0.9.10)
+ mercenary (0.4.0)
+ minima (2.5.2)
+ jekyll (>= 3.5, < 5.0)
+ jekyll-feed (~> 0.9)
+ jekyll-seo-tag (~> 2.1)
+ pathutil (0.16.2)
+ forwardable-extended (~> 2.6)
+ public_suffix (6.0.2)
+ rake (13.3.0)
+ rb-fsevent (0.11.2)
+ rb-inotify (0.11.1)
+ ffi (~> 1.0)
+ rexml (3.4.1)
+ rouge (4.6.0)
+ safe_yaml (1.0.5)
+ sass-embedded (1.90.0)
+ google-protobuf (~> 4.31)
+ rake (>= 13)
+ sass-embedded (1.90.0-aarch64-linux-android)
+ google-protobuf (~> 4.31)
+ sass-embedded (1.90.0-aarch64-linux-gnu)
+ google-protobuf (~> 4.31)
+ sass-embedded (1.90.0-aarch64-linux-musl)
+ google-protobuf (~> 4.31)
+ sass-embedded (1.90.0-arm-linux-androideabi)
+ google-protobuf (~> 4.31)
+ sass-embedded (1.90.0-arm-linux-gnueabihf)
+ google-protobuf (~> 4.31)
+ sass-embedded (1.90.0-arm-linux-musleabihf)
+ google-protobuf (~> 4.31)
+ sass-embedded (1.90.0-arm64-darwin)
+ google-protobuf (~> 4.31)
+ sass-embedded (1.90.0-riscv64-linux-android)
+ google-protobuf (~> 4.31)
+ sass-embedded (1.90.0-riscv64-linux-gnu)
+ google-protobuf (~> 4.31)
+ sass-embedded (1.90.0-riscv64-linux-musl)
+ google-protobuf (~> 4.31)
+ sass-embedded (1.90.0-x86_64-darwin)
+ google-protobuf (~> 4.31)
+ sass-embedded (1.90.0-x86_64-linux-android)
+ google-protobuf (~> 4.31)
+ sass-embedded (1.90.0-x86_64-linux-gnu)
+ google-protobuf (~> 4.31)
+ sass-embedded (1.90.0-x86_64-linux-musl)
+ google-protobuf (~> 4.31)
+ terminal-table (3.0.2)
+ unicode-display_width (>= 1.1.1, < 3)
+ unicode-display_width (2.6.0)
+ webrick (1.9.1)
+
+PLATFORMS
+ aarch64-linux-android
+ aarch64-linux-gnu
+ aarch64-linux-musl
+ arm-linux-androideabi
+ arm-linux-gnu
+ arm-linux-gnueabihf
+ arm-linux-musl
+ arm-linux-musleabihf
+ arm64-darwin
+ riscv64-linux-android
+ riscv64-linux-gnu
+ riscv64-linux-musl
+ ruby
+ x86-linux-gnu
+ x86-linux-musl
+ x86_64-darwin
+ x86_64-linux-android
+ x86_64-linux-gnu
+ x86_64-linux-musl
+
+DEPENDENCIES
+ jekyll (~> 4.3)
+ jekyll-feed
+ jekyll-seo-tag
+ minima (~> 2.5)
+ webrick
+
+BUNDLED WITH
+ 2.7.1
diff --git a/docs/Schema_Registry.md b/docs/Schema_Registry.md
deleted file mode 100644
index bd6540a..0000000
--- a/docs/Schema_Registry.md
+++ /dev/null
@@ -1,56 +0,0 @@
-# verifiable LEI (vLEI) Ecosystem Governance Framework vLEI Credential Schema Registry
-This Controlled Document will cover all policies regarding the publication of the official JSON Schema for the vLEI credentials.
-
-## Related Specifications
-#### JSON Schema
-JSON Schema 2020-12
-https://json-schema.org/draft/2020-12/release-notes.html
-
-#### ACDC
-IETF ACDC (Authentic Chained Data Containers) Internet Draft
-https://github.com/trustoverip/tswg-acdc-specification
-
-#### SAID
-IETF SAID (Self-Addressing IDentifier) Internet Draft
-https://github.com/WebOfTrust/ietf-said
-
-#### CESR
-IETF CESR (Composable Event Streaming Representation) Internet Draft
-https://github.com/WebOfTrust/ietf-cesr
-
-#### Semantic Versioning
-Semantic Versioning Specification 2.0
-https://semver.org
-
-## Official vLEI Credential Schema
-
-
-### Requirements
-
-A SAID is an encoded agile cryptographic digest of the contents of the schema. Any change to the schema results in a new SAID. Therefore each and every version of any schema has a universally unique SAID across all schema and all versions of all schema. Any copy of a schema that verifies against the SAID published in the following table can be assumed to be identical to any other copy that verifies to the same SAID by virtue of the strong collision resistance of the digest employed. The digest algorithm employed for generating schema SAIDS MUST have an approximate cryptographic strength of 128 bits. The SAID MUST be generated in compliance with the IETF-SAID internet draft specification and MUST be encoded using CESR. The CESR encoding indicates the type of cryptographic digest used to generate the SAID. The schema MUST be JSON-Schema 2020-12 compliant. The table below provides the normative SAIDs (Self-Addressing-IDentifiers) for each of the official schemas.
-
-### Versioning
-
-As ACDCs, the vLEI schema uses composition operators from JSON Schema. This allows extensibility in schema such that in many cases, newer schema versions may be backward compatible with older schema versions. A new schema version is considered backward incompatible with respect to a previous version of a schema when any instance of a vLEI credential that validates against the previous version of the schema may not be guaranteed to validate against the new version. As per the semantic versioning rules, a backward incompatible schema MUST have a higher MAJOR version number than any backward incompatible version.
-
-### Schema Table
-
-The following table provides, in descending order, row-by-row, the latest version, the SAID, and the type of each official schema, along with a URL. The URL is a network location where a copy of the schema may be obtained. Updated versions will be added to the top of the table upon designation by GLEIF as official. The version number for each schema follows the Semantic Versioning 2.0.0 specification.
-
-
-| Version | SAID | Type | URL |
-|-:|:-|:-|:-|
-| `1.0.0` | `ELqriXX1-lbV9zgXP4BXxqJlpZTgFchll3cyjaCyVKiz` | QualifiedvLEIIssuervLEICredential | https://github.com/WebOfTrust/vLEI/blob/dev/schema/acdc/qualified-vLEI-issuer-vLEI-credential.json |
-| `1.0.0` | `EK0jwjJbtYLIynGtmXXLO5MGJ7BDuX2vr2_MhM9QjAxZ` | LegalEntityvLEICredential | https://github.com/WebOfTrust/vLEI/blob/dev/schema/acdc/legal-entity-vLEI-credential.json |
-| `1.0.0` | `EDqjl80uP0r_SNSp-yImpLGglTEbOwgO77wsOPjyRVKy` | OORAuthorizationvLEICredential | https://github.com/WebOfTrust/vLEI/blob/dev/schema/acdc/oor-authorization-vlei-credential.json |
-| `1.0.0` | `EIL-RWno8cEnkGTi9cr7-PFg_IXTPx9fZ0r9snFFZ0nm` | LegalEntityOfficialOrganizationalRolevLEICredential | https://github.com/WebOfTrust/vLEI/blob/dev/schema/acdc/legal-entity-official-organizational-role-vLEI-credential.json |
-| `1.0.0` | `ED_PcIn1wFDe0GB0W7Bk9I4Q_c9bQJZCM2w7Ex9Plsta` | ECRAuthorizationvLEICredential | https://github.com/WebOfTrust/vLEI/blob/dev/schema/acdc/ecr-authorization-vlei-credential.json |
-| `1.0.0` | `EOhcE9MV90LRygJuYN1N0c5XXNFkzwFxUBfQ24v7qeEY` | LegalEntityEngagementContextRolevLEICredential | https://github.com/WebOfTrust/vLEI/blob/dev/schema/acdc/legal-entity-engagement-context-role-vLEI-credential.json |
-| `1.0.0` | `EJEMDhCDi8gLqtaXrb36DRLHMfC1c08PqirQvdPPSG5u` | iXBRLDataAttestation | https://github.com/WebOfTrust/vLEI/blob/dev/schema/acdc/verifiable-ixbrl-report-attestation.json |
-
-
-
-## Informative Notes
-At some time in the future, this registry document may be augmented with a live registry that follows the future ToIP Trust Registry Protocol specification. The current incomplete draft may be found here:
-https://docs.google.com/document/d/1ZGXUB0oODHO66PQkO66-fbAu6f7sVVToOz3Q8RNG0fs/edit
-
diff --git a/docs/_config.yml b/docs/_config.yml
new file mode 100644
index 0000000..660e1f5
--- /dev/null
+++ b/docs/_config.yml
@@ -0,0 +1,31 @@
+title: vLEI Ecosystem Credential Documentation
+description: Documentation for the vLEI (verifiable Legal Entity Identifier) credential ecosystem implementation
+theme: minima
+baseurl: ""
+url: ""
+
+plugins:
+ - jekyll-feed
+ - jekyll-seo-tag
+
+markdown: kramdown
+kramdown:
+ syntax_highlighter: rouge
+ input: GFM
+
+# Suppress Sass deprecation warnings
+sass:
+ quiet_deps: true
+ verbose: false
+ style: compressed
+ sourcemap: never
+
+# Additional settings to minimize output noise
+quiet: true
+incremental: true
+
+header_pages:
+ - index.md
+ - credentials.md
+ - vlei-credential-ecosystem.md
+ - vlei-dependency-graph.md
\ No newline at end of file
diff --git a/docs/_includes/head-custom.html b/docs/_includes/head-custom.html
new file mode 100644
index 0000000..566af1d
--- /dev/null
+++ b/docs/_includes/head-custom.html
@@ -0,0 +1,52 @@
+
+
+
+
\ No newline at end of file
diff --git a/docs/_includes/header.html b/docs/_includes/header.html
new file mode 100644
index 0000000..29a54be
--- /dev/null
+++ b/docs/_includes/header.html
@@ -0,0 +1,30 @@
+
The vLEI ecosystem uses authorization credentials issued by Legal Entities to QVIs to authorize the issuance of role credentials to individuals. There are two types of authorization credentials:
+ +EKA57bKBKxr_kN7iN5i7lMUxpMG-s19dRcmov1iDxz-EEH6ekLjSr8V32WyFbGe1zXjTzFs9PkTYmupJ9H65O14g| Feature | +OOR Authorization | +ECR Authorization | +
|---|---|---|
| Schema SAID | +EKA57bKBKxr_kN7iN5i7lMUxpMG-s19dRcmov1iDxz-E |
+ EH6ekLjSr8V32WyFbGe1zXjTzFs9PkTYmupJ9H65O14g |
+
| Issuer | +Legal Entity | +Legal Entity | +
| Recipient | +QVI | +QVI | +
| Purpose | +Authorize OOR credential issuance | +Authorize ECR credential issuance | +
| Role Field | +officialRole |
+ engagementContextRole |
+
| Privacy Disclaimer | +No | +Yes | +
| Use Case | +Permanent organizational roles | +Context-specific engagements | +
sequenceDiagram
+ participant LE as Legal Entity
+ participant QVI as QVI
+ participant Person as Person
+
+ rect rgb(240, 240, 255)
+ Note over LE,QVI: OOR Authorization Flow
+ LE->>QVI: Issue OOR Authorization
+ Note over QVI: Authorizes official role issuance
+ end
+
+ rect rgb(240, 255, 240)
+ Note over LE,QVI: ECR Authorization Flow
+ LE->>QVI: Issue ECR Authorization
+ Note over QVI: Authorizes engagement context role issuance
+ Note over QVI: Includes privacy disclaimer
+ end
+
+ rect rgb(255, 240, 240)
+ Note over QVI,Person: Credential Issuance
+ QVI->>Person: Issue OOR or ECR Credential
+ Note over Person: Based on received authorization
+ end
+
+
+This document provides a comprehensive overview of the verifiable Legal Entity Identifier (vLEI) credential ecosystem implemented using KERI (Key Event Receipt Infrastructure) and ACDC (Authentic Chained Data Containers).
+ +The vLEI ecosystem consists of six primary credential types that form a hierarchical trust chain:
+ +EBfdlu8R27Fbx-ehrqwImnK-8Cm79sqbAQ4MmvEAYqaoENPXp1vQzRF6JwIuS-mp2U8Uf1MoADoP_GqQ62VsDZWYEKA57bKBKxr_kN7iN5i7lMUxpMG-s19dRcmov1iDxz-EEBNaNu-M9P5cgrnfl2Fvymy4E_jvxxyjb70PRtiANlJyEEy9PkikFcANV1l7EHukCeXqrzT1hNZjGlUk7wuMO5jwEH6ekLjSr8V32WyFbGe1zXjTzFs9PkTYmupJ9H65O14gflowchart TD
+ A[GLEIF<br/>Root Authority] -->|Issues| B[QVI vLEI<br/>Credential]
+ B -->|Authorizes| C[Legal Entity<br/>vLEI Credential]
+ C -->|Enables| D[OOR/ECR<br/>Authorization]
+ D -->|Permits| E[OOR vLEI<br/>Credential]
+ D -->|Permits| F[ECR vLEI<br/>Credential]
+
+ style A fill:#ff9999
+ style B fill:#99ccff
+ style C fill:#99ff99
+ style D fill:#ffcc99
+ style E fill:#ff99ff
+ style F fill:#ccffcc
+
+
+sequenceDiagram
+ participant GLEIF
+ participant QVI as Qualified vLEI Issuer
+ participant LE as Legal Entity
+ participant Person as Person/Role Holder
+
+ rect rgb(240, 240, 255)
+ Note over GLEIF,QVI: Foundation Layer
+ GLEIF->>QVI: Issue QVI vLEI Credential
+ Note right of QVI: Schema: EBfdlu8R27Fbx...
+ Note right of QVI: Contains LEI, grace period
+ end
+
+ rect rgb(240, 255, 240)
+ Note over QVI,LE: Legal Entity Layer
+ QVI->>LE: Issue LE vLEI Credential
+ Note right of LE: Schema: ENPXp1vQzRF6...
+ Note right of LE: Chains to QVI credential
+ Note right of LE: Contains entity LEI
+ end
+
+ rect rgb(255, 240, 240)
+ Note over LE,QVI: Authorization Layer
+ LE->>QVI: Issue OOR Authorization
+ Note left of QVI: Schema: EKA57bKBKxr...
+ Note left of QVI: Authorizes role issuance
+
+ LE->>QVI: Issue ECR Authorization
+ Note left of QVI: Schema: EH6ekLjSr8V3...
+ Note left of QVI: For engagement contexts
+ end
+
+ rect rgb(255, 255, 240)
+ Note over QVI,Person: Role Credential Layer
+ QVI->>Person: Issue OOR vLEI Credential
+ Note right of Person: Schema: EBNaNu-M9P5c...
+ Note right of Person: Official organizational role
+ Note right of Person: Chains to OOR Auth
+
+ QVI->>Person: Issue ECR vLEI Credential
+ Note right of Person: Schema: EEy9PkikFcANV1l7...
+ Note right of Person: Engagement context role
+ Note right of Person: Chains to ECR Auth
+ end
+
+
+All vLEI credentials share a common ACDC structure:
+ +To verify any credential in the ecosystem:
+ +---
+config:
+ layout: elk
+---
+classDiagram
+ class ECRAuthvLEICredential {
+ +string v : Version
+ +string d : Credential SAID
+ +string u : One time use nonce
+ +string i : LE Issuer AID
+ +string ri : Credential status registry
+ +string s : Schema SAID
+ +a : Attributes
+ +e : Edges
+ +r : Rules
+ }
+
+ class ECRAuthAttributes {
+ +string d : Attributes block SAID
+ +string i : QVI Issuee AID
+ +string dt : Issuance date time
+ +string AID : Recipient AID
+ +string LEI : Legal Entity Identifier
+ +string personLegalName : Recipient name
+ +string engagementContextRole : Role description
+ }
+
+ class ECRAuthEdges {
+ +string d : Edges block SAID
+ +LENode le : Legal Entity reference
+ }
+
+ class LENode {
+ +string n : LE credential SAID
+ +string s : Required schema SAID
+ +string o : Operator (I2I)
+ }
+
+ class ECRAuthRules {
+ +string d : Rules block SAID
+ +UsageDisclaimer usageDisclaimer
+ +IssuanceDisclaimer issuanceDisclaimer
+ +PrivacyDisclaimer privacyDisclaimer
+ }
+
+ class UsageDisclaimer {
+ +string l : Legal language
+ }
+
+ class IssuanceDisclaimer {
+ +string l : Legal language
+ }
+
+ class PrivacyDisclaimer {
+ +string l : Privacy considerations text
+ }
+
+ ECRAuthvLEICredential --> "1" ECRAuthAttributes : contains
+ ECRAuthvLEICredential --> "1" ECRAuthEdges : contains
+ ECRAuthvLEICredential --> "1" ECRAuthRules : contains
+ ECRAuthEdges --> "1" LENode : references
+ ECRAuthRules --> "1" UsageDisclaimer : has
+ ECRAuthRules --> "1" IssuanceDisclaimer : has
+ ECRAuthRules --> "1" PrivacyDisclaimer : has
+
+ note for ECRAuthvLEICredential "Schema ID: EH6ekLjSr8V32WyFbGe1zXjTzFs9PkTYmupJ9H65O14g\nVersion: 1.0.0\nIssued by LE to QVI\nAuthorizes ECR credential issuance"
+
+ note for ECRAuthAttributes "Required fields:\ni (QVI AID), dt, AID (Person),\nLEI, personLegalName, engagementContextRole"
+
+ note for LENode "Links to LE credential\nSchema: ENPXp1vQzRF6JwIuS-mp2U8Uf1MoADoP_GqQ62VsDZWY\nOperator: I2I (issuer to issuer)"
+
+ note for PrivacyDisclaimer "ECR Auth includes privacy\nconsiderations for IPEX/ACDC usage"
+
+
+EH6ekLjSr8V32WyFbGe1zXjTzFs9PkTYmupJ9H65O14gi: QVI Issuee AIDdt: Issuance date timeAID: Recipient Person AIDLEI: Legal Entity IdentifierpersonLegalName: Recipient nameengagementContextRole: Engagement context role descriptionENPXp1vQzRF6JwIuS-mp2U8Uf1MoADoP_GqQ62VsDZWYsequenceDiagram
+ participant LE as Legal Entity
+ participant QVI as QVI
+ participant Person as Person
+
+ rect rgb(240, 255, 240)
+ Note over LE,QVI: ECR Authorization Flow
+ LE->>QVI: Issue ECR Authorization
+ Note over QVI: Schema: EH6ekLjSr8V32WyFbGe1zXjTzFs9PkTYmupJ9H65O14g
+ Note over QVI: Authorizes engagement context role issuance
+ Note over QVI: Includes privacy disclaimer
+ end
+
+ rect rgb(255, 240, 240)
+ Note over QVI,Person: Credential Issuance
+ QVI->>Person: Issue ECR Credential
+ Note over Person: Based on received authorization
+ end
+
+
+The ECR Authorization credential includes:
+The privacy disclaimer is unique to ECR Authorization, recognizing that engagement context roles may require additional privacy considerations for context-specific interactions.
+ +| Feature | +ECR Authorization | +OOR Authorization | +
|---|---|---|
| Schema SAID | +EH6ekLjSr8V32WyFbGe1zXjTzFs9PkTYmupJ9H65O14g |
+ EKA57bKBKxr_kN7iN5i7lMUxpMG-s19dRcmov1iDxz-E |
+
| Role Field | +engagementContextRole |
+ officialRole |
+
| Privacy Disclaimer | +Yes | +No | +
| Use Case | +Context-specific engagements | +Permanent organizational roles | +
---
+config:
+ layout: elk
+---
+classDiagram
+ class ECRvLEICredential {
+ +string v : Version
+ +string d : Credential SAID
+ +string u : One time use nonce
+ +string i : QVI Issuer AID
+ +string ri : Credential status registry
+ +string s : Schema SAID
+ +a : Attributes
+ +e : Edges
+ +r : Rules
+ }
+
+ class Attributes {
+ +string d : Attributes block SAID
+ +string i : Person Issuee AID
+ +string dt : Issuance date time
+ +string LEI : Legal Entity Identifier
+ +string personLegalName : Recipient name
+ +string engagementContextRole : Engagement role title
+ }
+
+ class Edges {
+ +string d : Edges block SAID
+ +AuthNode auth : Authorization chain
+ }
+
+ class AuthNode {
+ +string n : ACDC SAID reference
+ +string s : Required schema SAID
+ +string o : Operator (I2I)
+ }
+
+ class Rules {
+ +string d : Rules block SAID
+ +UsageDisclaimer usageDisclaimer
+ +IssuanceDisclaimer issuanceDisclaimer
+ }
+
+ class UsageDisclaimer {
+ +string l : Legal language about usage
+ }
+
+ class IssuanceDisclaimer {
+ +string l : Legal language about issuance
+ }
+
+ ECRvLEICredential --> "1" Attributes : contains
+ ECRvLEICredential --> "1" Edges : contains
+ ECRvLEICredential --> "1" Rules : contains
+ Edges --> "1" AuthNode : references
+ Rules --> "1" UsageDisclaimer : has
+ Rules --> "1" IssuanceDisclaimer : has
+
+ note for ECRvLEICredential "Schema ID: EEy9PkikFcANV1l7EHukCeXqrzT1hNZjGlUk7wuMO5jw\nVersion: 1.0.0\nIssued by QVI to Engagement Context Representatives"
+
+ note for Attributes "Required fields:\ni, dt, LEI, personLegalName, engagementContextRole"
+
+ note for AuthNode "Links to ECR Auth credential\nSchema: EH6ekLjSr8V32WyFbGe1zXjTzFs9PkTYmupJ9H65O14g\nOperator: I2I (issuer to issuer)"
+
+ note for Rules "Standard vLEI disclaimers\nSame as other vLEI credentials"
+
+
+The ECR vLEI Credential requires an ECR Authorization credential from the Legal Entity. For details on the ECR Authorization structure, see ECR Auth Credential Schema.
+ +engagementContextRole for the role descriptionEEy9PkikFcANV1l7EHukCeXqrzT1hNZjGlUk7wuMO5jwEH6ekLjSr8V32WyFbGe1zXjTzFs9PkTYmupJ9H65O14gsequenceDiagram
+ participant LE as Legal Entity
+ participant QVI as QVI
+ participant Person as Person
+
+ LE->>QVI: Issue ECR Authorization
+ Note over QVI: See ECR Auth Schema documentation
+
+ QVI->>Person: Issue ECR vLEI Credential
+ Note over Person: Schema: EEy9PkikFcANV1l7EHukCeXqrzT1hNZjGlUk7wuMO5jw
+ Note over Person: Chains to ECR Auth via edges.auth
+
+
+ This documentation covers the implementation of the GLEIF vLEI ecosystem using KERI (Key Event Receipt Infrastructure) and ACDC (Authentic Chained Data Containers).
+ +The vLEI ecosystem implements a hierarchical trust model for organizational identity verification:
+ +Some class diagrams render better using ELK but the config doesn’t seem to be picked up by Jekyll.
+ +---
+config:
+ layout: elk
+---
+classDiagram
+ class LegalEntityvLEICredential {
+ +string v : Version
+ +string d : Credential SAID
+ +string u : One time use nonce
+ +string i : QVI Issuer AID
+ +string ri : Credential status registry
+ +string s : Schema SAID
+ +a : Attributes
+ +e : Edges
+ +r : Rules
+ }
+
+ class Attributes {
+ +string d : Attributes block SAID
+ +string i : LE Issuer AID
+ +string dt : Issuance date time
+ +string LEI : Legal Entity Identifier
+ }
+
+ class Edges {
+ +string d : Edges block SAID
+ +QVINode qvi : QVI reference
+ }
+
+ class QVINode {
+ +string n : Issuer credential SAID
+ +string s : Required schema SAID
+ }
+
+ class Rules {
+ +string d : Rules block SAID
+ +UsageDisclaimer usageDisclaimer
+ +IssuanceDisclaimer issuanceDisclaimer
+ }
+
+ class UsageDisclaimer {
+ +string l : Legal language about usage
+ }
+
+ class IssuanceDisclaimer {
+ +string l : Legal language about issuance
+ }
+
+ LegalEntityvLEICredential --> "1" Attributes : contains
+ LegalEntityvLEICredential --> "1" Edges : contains
+ LegalEntityvLEICredential --> "1" Rules : contains
+ Edges --> "1" QVINode : references
+ Rules --> "1" UsageDisclaimer : has
+ Rules --> "1" IssuanceDisclaimer : has
+
+ note for LegalEntityvLEICredential "Schema ID: ENPXp1vQzRF6JwIuS-mp2U8Uf1MoADoP_GqQ62VsDZWY\nVersion: 1.0.0\nIssued by QVI to Legal Entity"
+
+ note for Attributes "Can be either:\n- SAID string reference\n- Full object with properties\nRequired: i, dt, LEI"
+
+ note for Edges "Links to QVI credential\nSchema: EBfdlu8R27Fbx-ehrqwImnK-8Cm79sqbAQ4MmvEAYqao"
+
+ note for Rules "Can be either:\n- SAID string reference\n- Full object with disclaimers"
+
+
+ ---
+config:
+ layout: elk
+---
+classDiagram
+ class OORAuthvLEICredential {
+ +string v : Version
+ +string d : Credential SAID
+ +string u : One time use nonce
+ +string i : LE Issuer AID
+ +string ri : Credential status registry
+ +string s : Schema SAID
+ +a : Attributes
+ +e : Edges
+ +r : Rules
+ }
+
+ class OORAuthAttributes {
+ +string d : Attributes block SAID
+ +string i : QVI Issuee AID
+ +string dt : Issuance date time
+ +string AID : Recipient AID
+ +string LEI : Legal Entity Identifier
+ +string personLegalName : Recipient name
+ +string officialRole : Role description
+ }
+
+ class OORAuthEdges {
+ +string d : Edges block SAID
+ +LENode le : Legal Entity reference
+ }
+
+ class LENode {
+ +string n : LE credential SAID
+ +string s : Required schema SAID
+ +string o : Operator (I2I)
+ }
+
+ class OORAuthRules {
+ +string d : Rules block SAID
+ +UsageDisclaimer usageDisclaimer
+ +IssuanceDisclaimer issuanceDisclaimer
+ }
+
+ class UsageDisclaimer {
+ +string l : Legal language
+ }
+
+ class IssuanceDisclaimer {
+ +string l : Legal language
+ }
+
+ OORAuthvLEICredential --> "1" OORAuthAttributes : contains
+ OORAuthvLEICredential --> "1" OORAuthEdges : contains
+ OORAuthvLEICredential --> "1" OORAuthRules : contains
+ OORAuthEdges --> "1" LENode : references
+ OORAuthRules --> "1" UsageDisclaimer : has
+ OORAuthRules --> "1" IssuanceDisclaimer : has
+
+ note for OORAuthvLEICredential "Schema ID: EKA57bKBKxr_kN7iN5i7lMUxpMG-s19dRcmov1iDxz-E\nVersion: 1.0.0\nIssued by LE to QVI\nAuthorizes OOR credential issuance"
+
+ note for OORAuthAttributes "Required fields:\ni (QVI AID), dt, AID (Person),\nLEI, personLegalName, officialRole"
+
+ note for LENode "Links to LE credential\nSchema: ENPXp1vQzRF6JwIuS-mp2U8Uf1MoADoP_GqQ62VsDZWY\nOperator: I2I (issuer to issuer)"
+
+
+EKA57bKBKxr_kN7iN5i7lMUxpMG-s19dRcmov1iDxz-Ei: QVI Issuee AIDdt: Issuance date timeAID: Recipient Person AIDLEI: Legal Entity IdentifierpersonLegalName: Recipient nameofficialRole: Official role descriptionENPXp1vQzRF6JwIuS-mp2U8Uf1MoADoP_GqQ62VsDZWYsequenceDiagram
+ participant LE as Legal Entity
+ participant QVI as QVI
+ participant Person as Person
+
+ rect rgb(240, 240, 255)
+ Note over LE,QVI: OOR Authorization Flow
+ LE->>QVI: Issue OOR Authorization
+ Note over QVI: Schema: EKA57bKBKxr_kN7iN5i7lMUxpMG-s19dRcmov1iDxz-E
+ Note over QVI: Authorizes official role issuance
+ end
+
+ rect rgb(255, 240, 240)
+ Note over QVI,Person: Credential Issuance
+ QVI->>Person: Issue OOR Credential
+ Note over Person: Based on received authorization
+ end
+
+
+The OOR Authorization credential includes:
+Note: Unlike ECR Authorization, OOR Authorization does not include a privacy disclaimer as it is intended for official organizational roles that are typically public.
+ +---
+config:
+ layout: elk
+---
+classDiagram
+ class OORvLEICredential {
+ +string v : Version
+ +string d : Credential SAID
+ +string u : One time use nonce
+ +string i : QVI Issuer AID
+ +string ri : Credential status registry
+ +string s : Schema SAID
+ +a : Attributes
+ +e : Edges
+ +r : Rules
+ }
+
+ class Attributes {
+ +string d : Attributes block SAID
+ +string i : Person Issuee AID
+ +string dt : Issuance date time
+ +string LEI : Legal Entity Identifier
+ +string personLegalName : Recipient name
+ +string officialRole : Official role title
+ }
+
+ class Edges {
+ +string d : Edges block SAID
+ +AuthNode auth : Authorization chain
+ }
+
+ class AuthNode {
+ +string n : ACDC SAID reference
+ +string s : Required schema SAID
+ +string o : Operator (I2I)
+ }
+
+ class Rules {
+ +string d : Rules block SAID
+ +UsageDisclaimer usageDisclaimer
+ +IssuanceDisclaimer issuanceDisclaimer
+ }
+
+ class UsageDisclaimer {
+ +string l : Legal language about usage
+ }
+
+ class IssuanceDisclaimer {
+ +string l : Legal language about issuance
+ }
+
+ OORvLEICredential --> "1" Attributes : contains
+ OORvLEICredential --> "1" Edges : contains
+ OORvLEICredential --> "1" Rules : contains
+ Edges --> "1" AuthNode : references
+ Rules --> "1" UsageDisclaimer : has
+ Rules --> "1" IssuanceDisclaimer : has
+
+ note for OORvLEICredential "Schema ID: EBNaNu-M9P5cgrnfl2Fvymy4E_jvxxyjb70PRtiANlJy\nVersion: 1.0.0\nIssued by QVI to Official Representatives"
+
+ note for Attributes "Required fields:\ni, dt, LEI, personLegalName, officialRole"
+
+ note for AuthNode "Links to Auth credential\nSchema: EKA57bKBKxr_kN7iN5i7lMUxpMG-s19dRcmov1iDxz-E\nOperator: I2I (issuer to issuer)"
+
+ note for Rules "Standard vLEI disclaimers\nSame as other vLEI credentials"
+
+
+ ---
+config:
+ layout: elk
+---
+classDiagram
+ class QualifiedvLEIIssuerCredential {
+ +string v : Version
+ +string d : Credential SAID
+ +string u : One time use nonce
+ +string i : GLEIF Issuee AID
+ +string ri : Credential status registry
+ +string s : Schema SAID
+ +a : Attributes
+ +r : Rules
+ }
+
+ class Attributes {
+ +string d : Attributes block SAID
+ +string i : QVI Issuee AID
+ +string dt : Issuance date time
+ +string LEI : LEI of Legal Entity
+ +int gracePeriod : Allocated grace period (default: 90)
+ }
+
+ class Rules {
+ +string d : Rules block SAID
+ +UsageDisclaimer usageDisclaimer
+ +IssuanceDisclaimer issuanceDisclaimer
+ }
+
+ class UsageDisclaimer {
+ +string l : Legal language about usage
+ }
+
+ class IssuanceDisclaimer {
+ +string l : Legal language about issuance
+ }
+
+ QualifiedvLEIIssuerCredential --> "1" Attributes : contains
+ QualifiedvLEIIssuerCredential --> "1" Rules : contains
+ Rules --> "1" UsageDisclaimer : has
+ Rules --> "1" IssuanceDisclaimer : has
+
+ note for QualifiedvLEIIssuerCredential "Schema ID: EBfdlu8R27Fbx-ehrqwImnK-8Cm79sqbAQ4MmvEAYqao\nVersion: 1.0.0\nIssued by GLEIF to QVIs"
+
+ note for Attributes "Can be either:\n- SAID string reference\n- Full object with properties\nRequired: i, dt, LEI"
+
+ note for Rules "Can be either:\n- SAID string reference\n- Full object with disclaimers"
+
+
+ ---
+config:
+ layout: elk
+---
+classDiagram
+ class QVICredential {
+ +string v : Version
+ +string d : Credential SAID
+ +string u : One time use nonce
+ +string i : GLEIF Issuee AID
+ +string ri : Credential status registry
+ +string s : Schema SAID
+ +Attributes a : Attributes block
+ +Rules r : Rules block
+ }
+ class LECredential {
+ +string v : Version
+ +string d : Credential SAID
+ +string u : One time use nonce
+ +string i : QVI Issuer AID
+ +string ri : Credential status registry
+ +string s : Schema SAID
+ +Attributes a : Attributes block
+ +Edges e : Edges block
+ +Rules r : Rules block
+ }
+ class OORCredential {
+ +string v : Version
+ +string d : Credential SAID
+ +string u : One time use nonce
+ +string i : QVI Issuer AID
+ +string ri : Credential status registry
+ +string s : Schema SAID
+ +Attributes a : Attributes block
+ +Edges e : Edges block
+ +Rules r : Rules block
+ }
+ class OORAuthCredential {
+ +string v : Version
+ +string d : Credential SAID
+ +string u : One time use nonce
+ +string i : LE Issuer AID
+ +string ri : Credential status registry
+ +string s : Schema SAID
+ +Attributes a : Attributes block
+ +Edges e : Edges block
+ +Rules r : Rules block
+ }
+ class ECRAuthCredential {
+ +string v : Version
+ +string d : Credential SAID
+ +string u : One time use nonce
+ +string i : LE Issuer AID
+ +string ri : Credential status registry
+ +string s : Schema SAID
+ +Attributes a : Attributes block
+ +Edges e : Edges block
+ +Rules r : Rules block
+ }
+ class QVIAttributes {
+ +string i : QVI Issuee AID
+ +string dt : Issuance date time
+ +string LEI : LEI of the requesting Legal Entity
+ +int gracePeriod : Allocated grace period
+ }
+ class LEAttributes {
+ +string i : LE Issuer AID
+ +string dt : issuance date time
+ +string LEI : LE Issuer AID
+ }
+ class OORAttributes {
+ +string i : Person Issuee AID
+ +string dt : Issuance date time
+ +string LEI : LEI of the Legal Entity
+ +string personLegalName : Recipient name as provided during identity assurance
+ +string officialRole : Official role title
+ }
+ class AuthAttributes {
+ +string i : QVI Issuee AID
+ +string dt : Issuance date time
+ +string AID : AID of the intended recipient of the ECR credential
+ +string LEI : LEI of the requesting Legal Entity
+ +string personLegalName : Requested recipient name as provided during identity assurance
+ +string role : Requested role description
+ }
+ class QVIEdge {
+ +string n : Issuer credential SAID
+ +string s : SAID of required schema of the credential pointed to by this node
+ }
+ class LEEdge {
+ +string n : Issuer credential SAID
+ +string s : SAID of required schema of the credential pointed to by this node
+ }
+ class AuthEdge {
+ +string n : Issuer credential SAID
+ +string s : SAID of required schema of the credential pointed to by this node
+ +string o : Operator for this edge
+ }
+ class Rules {
+ +UsageDisclaimer usageDisclaimer : Usage Disclaimer
+ +IssuanceDisclaimer issuanceDisclaimer : Issuance Disclaimer
+ +PrivacyDisclaimer privacyDisclaimer : Privacy Disclaimer
+ }
+ QVICredential --> QVIAttributes : contains
+ QVICredential --> Rules : has
+ LECredential --> LEAttributes : contains
+ LECredential --> QVIEdge : chains to
+ LECredential --> Rules : has
+ OORCredential --> OORAttributes : contains
+ OORCredential --> AuthEdge : authorized by
+ OORCredential --> Rules : has
+ OORAuthCredential --> AuthAttributes : contains
+ OORAuthCredential --> LEEdge : chains to
+ OORAuthCredential --> Rules : has
+ ECRAuthCredential --> AuthAttributes : contains
+ ECRAuthCredential --> LEEdge : chains to
+ ECRAuthCredential --> Rules : has
+ LECredential ..> QVICredential : requires - QVI must exist
+ OORCredential ..> OORAuthCredential : requires - needs authorization
+ OORAuthCredential ..> LECredential : requires - LE must exist
+ ECRAuthCredential ..> LECredential : requires - LE must exist
+ note for QVICredential "QVI vLEI Credential<br/>Schema: EBfdlu8R27Fbx-ehrqwImnK-8Cm79sqbAQ4MmvEAYqao<br/>Issued by: GLEIF → QVI"
+ note for LECredential "Legal Entity vLEI Credential<br/>Schema: ENPXp1vQzRF6JwIuS-mp2U8Uf1MoADoP_GqQ62VsDZWY<br/>Issued by: QVI → LE"
+ note for OORCredential "Official Organizational Role<br/>Schema: EBNaNu-M9P5cgrnfl2Fvymy4E_jvxxyjb70PRtiANlJy<br/>Issued by: QVI → Person"
+ note for OORAuthCredential "OOR Authorization<br/>Schema: EKA57bKBKxr_kN7iN5i7lMUxpMG-s19dRcmov1iDxz-E<br/>Issued by: LE → QVI"
+ note for ECRAuthCredential "ECR Authorization<br/>Schema: EH6ekLjSr8V32WyFbGe1zXjTzFs9PkTYmupJ9H65O14g<br/>Issued by: LE → QVI"
+
+
+
+sequenceDiagram
+ participant GLEIF
+ participant QVI as Qualified vLEI Issuer
+ participant LE as Legal Entity
+ participant Person as Person/Role Holder
+
+ rect rgb(240, 240, 255)
+ Note over GLEIF,QVI: Foundation Layer
+ GLEIF->>QVI: Issue QVI vLEI Credential
+ Note right of QVI: Schema: EBfdlu8R27Fbx-ehrqwImnK-8Cm79sqbAQ4MmvEAYqao
+ end
+
+ rect rgb(240, 255, 240)
+ Note over QVI,LE: Legal Entity Layer
+ QVI->>LE: Issue LE vLEI Credential
+ Note right of LE: Schema: ENPXp1vQzRF6JwIuS-mp2U8Uf1MoADoP_GqQ62VsDZWY
+ Note right of LE: Chains to QVI credential
+ end
+
+ rect rgb(255, 240, 240)
+ Note over LE,Person: Authorization Layer
+ LE->>QVI: Issue OOR Authorization
+ Note left of QVI: Schema: EKA57bKBKxr_kN7iN5i7lMUxpMG-s19dRcmov1iDxz-E
+ Note left of QVI: Authorizes role issuance
+
+ LE->>QVI: Issue ECR Authorization
+ Note left of QVI: Schema: EH6ekLjSr8V32WyFbGe1zXjTzFs9PkTYmupJ9H65O14g
+ Note left of QVI: Authorizes context role
+ end
+
+ rect rgb(255, 255, 240)
+ Note over QVI,Person: Role Credential Layer
+ QVI->>Person: Issue OOR vLEI Credential
+ Note right of Person: Schema: EBNaNu-M9P5cgrnfl2Fvymy4E_jvxxyjb70PRtiANlJy
+ Note right of Person: Chains to OOR Auth
+ QVI->>Person: Issue ECR vLEI Credential
+ Note right of Person: Schema: EEEy9PkikFcANV1l7EHukCeXqrzT1hNZjGlUk7wuMO5jw
+ Note right of Person: Chains to ECR Auth
+ LE->>Person: Issue ECR vLEI Credential
+ Note right of Person: Schema: EEEy9PkikFcANV1l7EHukCeXqrzT1hNZjGlUk7wuMO5jw
+ end
+
+
+---
+config:
+ layout: elk
+---
+graph TD
+ %% Define nodes with schema IDs
+ GLEIF["GLEIF<br/>Root Authority"]
+ QVI["QVI vLEI Credential<br/>Schema: EBfdlu8R27Fbx-ehrqwImnK-8Cm79sqbAQ4MmvEAYqao<br/>Issued by: GLEIF"]
+ LE["Legal Entity vLEI Credential<br/>Schema: ENPXp1vQzRF6JwIuS-mp2U8Uf1MoADoP_GqQ62VsDZWY<br/>Issued by: QVI"]
+ OORAuth["OOR Authorization Credential<br/>Schema: EKA57bKBKxr_kN7iN5i7lMUxpMG-s19dRcmov1iDxz-E<br/>Issued by: Legal Entity"]
+ ECRAuth["ECR Authorization Credential<br/>Schema: EH6ekLjSr8V32WyFbGe1zXjTzFs9PkTYmupJ9H65O14g<br/>Issued by: Legal Entity"]
+ OOR["OOR vLEI Credential<br/>Schema: EBNaNu-M9P5cgrnfl2Fvymy4E_jvxxyjb70PRtiANlJy<br/>Issued by: QVI"]
+ ECR["ECR vLEI Credential<br/>Schema: [ECR Schema]<br/>Issued by: QVI"]
+ Person["Person/Role Holder"]
+
+ %% Define dependencies
+ GLEIF -->|issues| QVI
+ QVI -->|issues| LE
+ LE -->|authorizes via| OORAuth
+ LE -->|authorizes via| ECRAuth
+ OORAuth -->|enables issuance of| OOR
+ ECRAuth -->|enables issuance of| ECR
+ QVI -->|issues with auth| OOR
+ QVI -->|issues with auth| ECR
+ OOR -->|held by| Person
+ ECR -->|held by| Person
+
+ %% Edge dependencies (credential chaining)
+ LE -.->|edges.qvi references| QVI
+ OORAuth -.->|edges.le references| LE
+ ECRAuth -.->|edges.le references| LE
+ OOR -.->|edges.auth references| OORAuth
+
+ %% Styling
+ style GLEIF fill:#e1f5fe
+ style QVI fill:#fff3e0
+ style LE fill:#e8f5e9
+ style OORAuth fill:#fce4ec
+ style ECRAuth fill:#fce4ec
+ style OOR fill:#f3e5f5
+ style ECR fill:#f3e5f5
+ style Person fill:#e0e0e0
+
+
+| Credential Type | +Schema SAID | +Issuer | +Required Dependencies | +Edge References | +
|---|---|---|---|---|
| QVI vLEI | +EBfdlu8R27Fbx-ehrqwImnK-8Cm79sqbAQ4MmvEAYqao |
+ GLEIF | +None (Root) | +None | +
| Legal Entity vLEI | +ENPXp1vQzRF6JwIuS-mp2U8Uf1MoADoP_GqQ62VsDZWY |
+ QVI | +QVI Credential | +edges.qvi → QVI Schema | +
| OOR Authorization | +EKA57bKBKxr_kN7iN5i7lMUxpMG-s19dRcmov1iDxz-E |
+ Legal Entity | +LE Credential | +edges.le → LE Schema | +
| ECR Authorization | +EH6ekLjSr8V32WyFbGe1zXjTzFs9PkTYmupJ9H65O14g |
+ Legal Entity | +LE Credential | +edges.le → LE Schema | +
| OOR vLEI | +EBNaNu-M9P5cgrnfl2Fvymy4E_jvxxyjb70PRtiANlJy |
+ QVI | +OOR Authorization | +edges.auth → OOR Auth Schema | +
| ECR vLEI | +EEy9PkikFcANV1l7EHukCeXqrzT1hNZjGlUk7wuMO5jw |
+ QVI | +ECR Authorization | +edges.auth → ECR Auth Schema | +
Each credential (except QVI) contains an edges block that references “chained” (directed edge) credentials:
"edges": {
+ "chainedCredentialType": {
+ "n": "chained credential SAID",
+ "s": "chained schema SAID (constant)"
+ }
+}
+sequenceDiagram
+ participant LE as Legal Entity
+ participant QVI as QVI
+ participant P as Person
+
+ Note over LE,QVI: Authorization Phase
+ LE->>QVI: Issue OOR/ECR Authorization
+ Note right of QVI: Contains: AID, LEI, personLegalName, role
+
+ Note over QVI,P: Issuance Phase
+ QVI->>P: Issue OOR/ECR Credential
+ Note right of P: Must reference authorization in edges
+
+
+To validate any credential, verifiers must:
+