Abstract
The SimpulseID Credential and Identity Framework defines the identity, membership, and credential architecture used within the ENVITED Ecosystem.
It specifies how organizations and natural persons are represented using W3C Verifiable Credentials v2, did:ethr identifiers anchored on Base (ERC-1056), and Gaia-X aligned semantics.
The framework follows a schema-first approach using LinkML to derive JSON-LD contexts, OWL ontologies, and SHACL shapes from a single source schema.
This EVES outlines the conceptual model, credential types, lifecycle, semantic artifacts, and governance required for interoperable identity management in ENVITED.
Motivation
The ENVITED Ecosystem requires a unified, privacy-preserving identity model that supports trustable onboarding of organizations and users, program membership verification, and secure authentication across ENVITED services. Existing identity systems are typically built around centralized identity federators such as Google or Microsoft, which introduce platform lock-in, limited user sovereignty, and dependencies on non-European infrastructure. These systems lack standardized semantic foundations, interoperability across ecosystems, and cryptographically verifiable trust guarantees. A European data-space environment like ENVITED requires an identity model that ensures sovereignty, avoids reliance on foreign identity providers, and supports open, verifiable, and interoperable credentials. SimpulseID addresses these issues by providing:
- A Gaia-X aligned identity vocabulary
- Machine-verifiable membership credentials
did:ethrbased decentralised identifiers anchored on Base (ERC-1056) with P-256 key management- OIDC4VP authentication integration
- Clear governance roles for ASCS and participants
This specification is necessary to maintain consistency across ENVITED applications, ensure long-term interoperability, and comply with European data space standards.
Specification
1. Overview
SimpulseID defines five credential types and supporting semantic resources enabling verifiable identity and membership management:
- Participant Credential (
simpulseid:ParticipantCredential) --- Represents an organization as a verified legal person. - ASCS Base Membership Credential (
simpulseid:AscsBaseMembershipCredential) --- Establishes fundamental ASCS e.V. membership. - ASCS ENVITED Membership Credential (
simpulseid:AscsEnvitedMembershipCredential) --- Extends membership for ENVITED research cluster services. - Administrator Credential (
simpulseid:AdministratorCredential) --- Granted by ASCS to privileged natural persons. - User Credential (
simpulseid:UserCredential) --- Issued by ASCS to natural persons acting under a participant.
All credential types extend HarbourCredential from the Harbour credentials base schema. Each SimpulseID credential subject carries a mandatory harbourCredential IRI linking to a Harbour Gaia-X compliance credential, which serves as the baseline of trust.
All credentials MUST use:
- W3C VC Data Model v2
- JSON-LD contexts resolved via
w3id.orgpersistent identifiers (see Section 3.2) did:ethridentifiers on Base (see Section 3.1)- Gaia-X Trust Framework semantics (
gx:*) - Harbour Credential Revocation Set (
harbour:CRSetEntry) for revocation (see Section 3.5) - SHACL shapes for conformance validation
Credentials MAY carry evidence of prior issuance steps. The evidence protocol and verification are specified in EVES-009.
2. Lifecycle
Credentials MUST be issued in the order specified below. Certain credentials have prerequisites that MUST be satisfied before issuance.
2.1 Organization Onboarding
- An organization applies for ENVITED participation.
- ASCS verifies the organization's legal identity (registration number, address, Gaia-X compliance).
- ASCS issues a Participant Credential attesting the organization as a
gx:LegalPerson. - ASCS issues an ASCS Base Membership Credential. The Participant Credential MUST exist as a prerequisite and is referenced as evidence.
- ASCS optionally issues an ASCS ENVITED Membership Credential. The Base Membership Credential MUST exist as a prerequisite, referenced via
baseMembershipCredential.
2.2 Administrator Onboarding
ASCS issues Administrator Credentials to natural persons acting on behalf of ASCS or a participant. The credential subject is typed gx:NaturalPerson and carries a memberOf reference to the participant organization DID.
2.3 User Onboarding
ASCS issues User Credentials to natural persons. The credential subject is typed gx:NaturalPerson and carries a memberOf reference to the participant organization DID. User DIDs are created by participant administrators.
2.4 Authentication and Verification
- Users authenticate via the SSI-to-OIDC Bridge (OIDC4VP).
- Services MUST verify credential signatures, JSON-LD context integrity, and revocation status.
- DID resolution provides public keys and service metadata.
- Evidence verification, when applicable, MUST follow EVES-009.
3. Key Definitions and Components
3.1 Decentralized Identifiers (did:ethr)
All ENVITED entities MUST use did:ethr identifiers anchored on Base via an ERC-1056 deployment and project-specific resolver.
| Network | Chain ID | Hex |
|---|---|---|
| Base Sepolia | 84532 | 0x14a34 |
| Base Mainnet | 8453 | 0x2105 |
DID format:
did:ethr:<chainIdHex>:<ethereum-address>
Entity types and their DID patterns:
| Entity | Example DID |
|---|---|
| Participant (ASCS) | did:ethr:0x14a34:0x5091...bb03 |
| Participant (for example, BMW) | did:ethr:0x14a34:0x9d27...1048 |
| Natural person | did:ethr:0x14a34:0xb2F7...b39a |
| Infrastructure service | did:ethr:0x14a34:0x4612...46d1 |
| Program definition | did:ethr:0x14a34:0x28b9...422D |
Key management: Signing DID documents MUST expose P-256 keys as JsonWebKey verification methods.
The primary signing key is published as #controller; optional secondary keys appear as #delegate-N.
Non-signing DIDs (services, programs) MUST use the DID Core controller property to reference the governing participant DID rather than synthesising local signing keys.
DID document structure:
- Signing DIDs (participants, natural persons) MUST include
verificationMethodwith at least one P-256JsonWebKey. The key MUST be referenced from bothauthenticationandassertionMethodarrays. - Signing DIDs MUST NOT have a document-level
controllerproperty (they are self-sovereign). - Non-signing DIDs (programs, services) MUST have a document-level
controllerreferencing the governing participant DID. They MUST NOT includeverificationMethod(authority is delegated via the controller).
Signature algorithm: All credential signatures MUST use ES256 (ECDSA over P-256).
Evidence holders: Ephemeral evidence VP holders MAY use did:key for self-certifying identity. See EVES-009 for the evidence protocol.
Resolution: DID documents are reconstructed from Base contract state and registered attributes by a project-specific resolver. The resolved documents are not assumed to match the default ethr-did-resolver secp256k1 recovery-key shape.
DID documents MUST NOT contain personal data. Personal attributes (name, email, address) are carried exclusively in credential subjects.
3.2 JSON-LD Contexts
Every SimpulseID credential MUST include the following @context entries in order:
| Context | URL |
|---|---|
| W3C VC Data Model v2 | https://www.w3.org/ns/credentials/v2 |
| Harbour core context | https://w3id.org/reachhaven/harbour/core/v1/ |
| SimpulseID context | https://w3id.org/ascs-ev/simpulse-id/v1/ |
Context URLs are w3id.org persistent identifiers that redirect to the generated JSON-LD context files. Implementers MUST NOT hard-code alternative URLs.
Note that the context path (/simpulse-id/v1/) differs from the LinkML schema identifier (/simpulse-id/core/v1) because the context is a generated artifact published at a separate redirect.
Example credential @context:
{
"@context": ["https://www.w3.org/ns/credentials/v2", "https://w3id.org/reachhaven/harbour/core/v1/", "https://w3id.org/ascs-ev/simpulse-id/v1/"]
}
The SimpulseID context uses @vocab: simpulseid: which resolves bare @id values to the simpulseid: namespace. W3C terms (for example, VerifiableCredential, issuer, validFrom) remain bare; all domain types MUST use prefixed CURIEs (for example, simpulseid:ParticipantCredential, harbour:CRSetEntry).
3.3 Schema and Ontology
The SimpulseID schema is defined in LinkML as the single source of truth:
| Artifact | Source / ID |
|---|---|
| LinkML schema | https://w3id.org/ascs-ev/simpulse-id/core/v1 |
| Generated JSON-LD context | Derived via LinkML ContextGenerator |
| Generated OWL ontology | Derived via LinkML OwlSchemaGenerator |
| Generated SHACL shapes | Derived via LinkML ShaclGenerator |
The schema defines:
- Subject classes:
simpulseid:OrganizationParticipant,simpulseid:Administrator,simpulseid:User,simpulseid:AscsBaseMembership,simpulseid:AscsEnvitedMembership - Credential classes:
simpulseid:ParticipantCredential,simpulseid:AdministratorCredential,simpulseid:UserCredential,simpulseid:AscsBaseMembershipCredential,simpulseid:AscsEnvitedMembershipCredential - Key properties:
simpulseid:harbourCredential(mandatory IRI),simpulseid:legalForm(enum — see below),simpulseid:baseMembershipCredential(prerequisite IRI),simpulseid:articlesOfAssociation,simpulseid:contributionRules - Schema.org mappings:
sdo:member,sdo:memberOf,sdo:programName,sdo:hostingOrganization,sdo:memberSince,sdo:publisher - Gaia-X alignment:
gx:LegalPerson,gx:NaturalPerson,gx:Address,gx:RegistrationNumber,gx:TermsAndConditions
The simpulseid:legalForm enum constrains the legal form of participant organizations. Permissible values are enforced via sh:in in the generated SHACL shapes:
| Value | Jurisdiction | Description |
|---|---|---|
GmbH, AG, UG, KG, OHG, GbR, Einzelunternehmen |
DE | German legal forms |
LLC, Corporation, LimitedPartnership, NonprofitCorporation |
US | United States legal forms |
LimitedCompany, LLP, CIC, CIO, SoleTrader, Partnership, Trust, UnincorporatedAssociation, CooperativeSociety, BenCom |
UK | United Kingdom legal forms |
other |
— | Fallback for jurisdictions not listed above |
Note: The
OrganizationParticipantsubject class was renamed fromParticipantto avoid a JSON-LD context collision withgx:Participantfrom the Gaia-X imports. The bare term "Participant" is claimed by Gaia-X, so the prefixed class URIsimpulseid:OrganizationParticipantensures correct RDF type resolution.
Implementers SHOULD use the generated SHACL shapes to validate credential payloads before issuance.
3.4 Credential Subject Semantics
Credential subjects use two distinct identity patterns:
| Credential | credentialSubject.id |
Rationale |
|---|---|---|
| ParticipantCredential | Organization did:ethr |
The subject IS the organization |
| AdministratorCredential | Person did:ethr |
The subject IS the natural person |
| UserCredential | Person did:ethr |
The subject IS the natural person |
| AscsBaseMembershipCredential | urn:uuid:<unique-id> |
The subject is a membership relationship, not an entity |
| AscsEnvitedMembershipCredential | urn:uuid:<unique-id> |
The subject is a membership relationship, not an entity |
Membership credentials MUST use urn:uuid: identifiers to avoid RDF graph merge conflicts. If two membership credentials shared a participant DID as credentialSubject.id, loading both into one graph would merge all properties onto a single node.
member vs memberOf convention:
schema:memberis used on the membership object, pointing to the member (for example,AscsBaseMembership.member = <BMW DID>).schema:memberOfis used on the person, pointing to the organization they belong to (for example,Administrator.memberOf = [<BMW DID>]).
Implementers MUST NOT interchange these properties.
3.5 Revocation
All SimpulseID credentials MUST include a credentialStatus array with at least one harbour:CRSetEntry entry:
{
"credentialStatus": [
{
"id": "<revocation-registry-did>/<status-hash>",
"type": "harbour:CRSetEntry",
"statusPurpose": "revocation"
}
]
}
The id field is composed of the revocation registry service DID and a credential-specific hash. The registry service DID resolves to infrastructure managed by ASCS.
Verifiers MUST check revocation status before accepting any credential. The revocation registry is queryable via the DID service endpoint of the infrastructure service DID.
4. Reference Implementation
A full reference implementation exists in the public repository:
https://github.com/ASCS-eV/simpulse-id-credentials
The repository follows a schema-first generation pipeline: the LinkML schema under linkml/ is the single source from which JSON-LD contexts, OWL ontologies, and SHACL shapes are generated.
Repository structure:
/linkml # LinkML source schemas and import map
/examples # Unsigned credential examples (JSON-LD)
/examples/did-ethr # Example did:ethr DID documents
/manifests # Wallet rendering manifests (Altme / DIF compatible)
/artifacts # Generated semantic artifacts (context, OWL, SHACL)
/docs # Project documentation
/tests # SHACL validation, integrity, and evidence-proof tests
/src # Generation, signing, and verification scripts
The SSI-to-OIDC bridge integration is provided via: https://github.com/GAIA-X4PLC-AAD/ssi-to-oidc-bridge
Backwards Compatibility
This EVES introduces a new identity model and does not replace earlier ENVITED identity systems; however, it is fully interoperable with prior membership databases through mapping tables. No breaking changes are introduced to existing EVES documents.
References
- W3C Verifiable Credentials Data Model v2
- W3C Decentralized Identifiers (DIDs) v1.1
- ERC-1056: Ethereum Lightweight Identity
- did:ethr Method Specification
- Gaia-X Trust Framework
- Gaia-X ICAM 25.11
- LinkML --- Linked Data Modeling Language
- DIF Wallet Rendering Specification
- JSON-LD 1.1
- schema.org
- RFC 2119: Key Words for Use in RFCs to Indicate Requirement Levels
- EVES-001: ENVITED-X Ecosystem Specification Process
- EVES-002: ENVITED-X Data Space Architecture Overview
- EVES-007: ENVITED-X Blockchain Identifier URN Schema
- EVES-009: ENVITED-X Evidence-Based Consent Using Verifiable Presentations
Implementation
To deploy SimpulseID:
- Configure
w3id.orgredirects to serve generated JSON-LD contexts, OWL ontologies, and SHACL shapes from the reference repository. - Deploy a
did:ethrresolver profile for Base (Sepolia for testing, Mainnet for production) with the project-specificIdentityControllercontract. - Use Altme wallets or any W3C VC v2 wallet supporting OIDC4VP for credential storage and presentation.
- Integrate credential verification in ENVITED services via the SSI-to-OIDC Bridge.
- Maintain revocation registries via
did:ethrservice endpoints managed by ASCS infrastructure.
Repository structure required for implementation:
/linkml # Source schemas
/examples # Credential and DID examples
/examples/did-ethr # did:ethr DID document examples
/manifests # Wallet rendering manifests
/artifacts # Generated artifacts (context, OWL, SHACL)
This specification MUST be implemented by all ENVITED services handling identity, membership, or access control.