Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 8 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,26 @@
# DEMIM Credentials

## Content

A public repository containing examples for (verifiable) credentials, associated json-ld context definitions and json manifests. The crendetials are used in the [Decentralized Digital Membership Management](https://identity.ascs.digital).
The DID of issuers and subjects and the UUIDs of the credentials have been aligned with the content of the following example [revocation registry](https://better-call.dev/ghostnet/KT1PZFXebyGvRFG8enbuVL9nrvTi4krYqeKt/storage.)

## Examples

There are two types of json-ld examples for the credentials. The member credentials and the user credential. The member credential is used to e.g. register a company with an application like e.g. [Simpulse](https://simpulse.de) for creating the company profile with minimal validated information. The user credential is used in asc(s ecosystem applications to set initial rights and roles.
The examples are once given with an external context definition and also with the attributes defined inline in the credential context itself. This is necessary as third-party libraries like [didkit](https://github.com/spruceid/didkit) do not allow external context loading due to security implications.

## Manifests

The manifest files are provided to render an identity card in a SSI wallet like e.g. [altme](https://altme.io) according to the identity foundation [wallet rendering specification](https://identity.foundation/wallet-rendering/).

## Todos
The context json files need to be hosted at https://schema.ascs.digital/AscsUserCredential/v1.
All terms need to be hosted as .pdf files at https://media.ascs.digital/terms/.

The context json files need to be hosted at <https://schema.ascs.digital/SimpulseId/v1>.
All terms need to be hosted as .pdf files at <https://media.ascs.digital/terms/>.

## Resources

* [Implementation Guide](https://www.w3.org/TR/vc-imp-guide/#creating-new-credential-types)
* [w3c credentials v1](https://www.w3.org/2018/credentials/v1)
* [w3c vc-json-schema](https://w3c.github.io/vc-json-schema/)
Expand All @@ -29,3 +34,4 @@ All terms need to be hosted as .pdf files at https://media.ascs.digital/terms/.
* [Multiassets](https://multiformats.io/)
* [Content Identifier (CID)](https://docs.ipfs.tech/concepts/content-addressing/#what-is-a-cid)
* [POC Content Identifier](https://github.com/GAIA-X4PLC-AAD/poc-ipfs-content-identifier)
* [GaiaX Credential Format](https://docs.gaia-x.eu/technical-committee/identity-credential-access-management/24.07/credential_format/#verifiable-credential)
41 changes: 0 additions & 41 deletions contexts/AscsMemberCredential.json

This file was deleted.

38 changes: 0 additions & 38 deletions contexts/AscsUserCredential.json

This file was deleted.

29 changes: 29 additions & 0 deletions contexts/HarbourCredentials.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"@context": {
"@version": 1.1,
"@protected": true,
"harbour": "https://schema.reachhaven.com/HarbourCredentials/v1#",
"rdfs": "http://www.w3.org/2000/01/rdf-schema#",

"harbour:VerifiableCredential": {
"@id": "harbour:VerifiableCredential",
"@context": {
"@protected": true,
"credentialStatus": {
"@id": "harbour:CRSetEntry",
"@container": "@set"
}
}
},

"harbour:CRSetEntry": {
"@id": "harbour:CRSetEntry",
"@context": {
"@protected": true,
"id": "@id",
"type": "@type",
"statusPurpose": "https://www.w3.org/ns/credentials/status#statusPurpose"
}
}
}
}
107 changes: 107 additions & 0 deletions contexts/SimpulseIdCredentials.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
{
"@context": {
"@version": 1.1,
"@protected": true,

"simpulseid": "https://schema.ascs.digital/SimpulseIdCredentials/v1#",
"gx": "https://w3id.org/gaia-x/2411#",
"schema": "https://schema.org/",
"xsd": "http://www.w3.org/2001/XMLSchema#",
"rdfs": "http://www.w3.org/2000/01/rdf-schema#",
"skos": "http://www.w3.org/2004/02/skos/core#",

"simpulseid:LegalForm": "simpulseid:LegalForm",

"LLC": "simpulseid:LLC",
"Corporation": "simpulseid:Corporation",
"LimitedPartnership": "simpulseid:LimitedPartnership",
"NonprofitCorporation": "simpulseid:NonprofitCorporation",
"GmbH": "simpulseid:GmbH",
"AG": "simpulseid:AG",
"Einzelunternehmen": "simpulseid:Einzelunternehmen",
"GbR": "simpulseid:GbR",
"OHG": "simpulseid:OHG",
"KG": "simpulseid:KG",
"UG": "simpulseid:UG",
"SoleTrader": "simpulseid:SoleTrader",
"UnincorporatedAssociation": "simpulseid:UnincorporatedAssociation",
"Partnership": "simpulseid:Partnership",
"Trust": "simpulseid:Trust",
"LimitedCompany": "simpulseid:LimitedCompany",
"LLP": "simpulseid:LLP",
"CIC": "simpulseid:CIC",
"CIO": "simpulseid:CIO",
"CooperativeSociety": "simpulseid:CooperativeSociety",
"BenCom": "simpulseid:BenCom",
"other": "simpulseid:other",

"simpulseid:Issuer": "simpulseid:Issuer",
"simpulseid:Participant": "simpulseid:Participant",
"simpulseid:AscsBaseMembership": "simpulseid:AscsBaseMembership",
"simpulseid:AscsEnvitedMembership": "simpulseid:AscsEnvitedMembership",
"simpulseid:Administrator": "simpulseid:Administrator",
"simpulseid:User": "simpulseid:User",

"id": "@id",
"legalName": "gx:legalName",
"legalForm": "simpulseid:LegalForm",

"headquartersAddress": {
"@id": "gx:headquartersAddress",
"@type": "gx:Address"
},
"legalAddress": {
"@id": "gx:legalAddress",
"@type": "gx:Address"
},

"registrationNumber": {
"@id": "gx:registrationNumber",
"@type": "gx:VatID"
},

"duns": "schema:duns",
"email": "schema:email",
"website": "schema:url",

"termsOfSimpulseId": {
"@id": "gx:TermsAndConditions",
"@container": "@set"
},

"member": {
"@id": "schema:member",
"@type": "@id"
},

"memberOf": {
"@id": "schema:memberOf",
"@type": "@id"
},

"memberSince": {
"@id": "schema:memberSince",
"@type": "xsd:date"
},

"givenName": "schema:givenName",
"familyName": "schema:familyName",

"address": "gx:Address",

"streetAddress": "schema:streetAddress",
"postalCode": "schema:postalCode",
"addressLocality": "schema:addressLocality",
"countrySubdivisionCode": "gx:countrySubdivisionCode",
"country": "schema:addressCountry",

"countryCode": {
"@id": "gx:countryCode",
"@type": "xsd:string"
},
"vatID": {
"@id": "gx:vatID",
"@type": "xsd:string"
}
}
}
Loading