Clarify VCDM Version Requirements: Resolve Inconsistency Between v1.1 and v2
Created by: ashleythedeveloper
Impacted sections
Issue Description
The current UNTP specification shows inconsistent requirements regarding which VCDM (Verifiable Credentials Data Model) version implementers must support:
- v1.1 is marked as MUST
 - v2 is marked as SHOULD
 
MUST implement the W3C VC Data Model v1.1 using the JSON-LD Compacted Document Form SHOULD implement the W3C VC Data Model v2.0 using the JSON-LD Compacted Document Form
Current Challenges
- 
Bitstring Status List Compatibility
- UNTP requires bitstring status lists
 - Bitstring status list specification requires VCDM v2
 - This creates an implicit requirement for v2 support
 
 
MUST implement W3C VC Bitstring Status List for credential status checks including revocation checks
- 
Schema Validation Conflicts
- 
UNTP schemas enforce v2 VCDM context in the context array using 
const - Credentials conforming only to v1.1 would fail schema validation
 - This effectively makes v2 mandatory despite being marked as SHOULD
 
 - 
UNTP schemas enforce v2 VCDM context in the context array using 
 
Digital Product Passport (DPP) Example:
"@context": {
      "example": "https://test.uncefact.org/vocabulary/untp/dpp/dpp-context.jsonld",
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "https://www.w3.org/ns/credentials/v2",
          "https://test.uncefact.org/vocabulary/untp/dpp/0.5.0/"
        ]
      },
      "description": "A list of JSON-LD context URIs that define the semantic meaning of properties within the credential. ",
      "readOnly": true,
      "const": [
        "https://www.w3.org/ns/credentials/v2",
        "https://test.uncefact.org/vocabulary/untp/dpp/0.5.0/"
      ],
      "default": [
        "https://www.w3.org/ns/credentials/v2",
        "https://test.uncefact.org/vocabulary/untp/dpp/0.5.0/"
      ]
    }
- 
Schema Property Name Alignment with VCDM v2
- The UNTP schemas enforces v2 VCDM temporal property names (validFrom/validUntil) in the data models
 - This creates a property name mismatch when using v1.1 VCDM since the v1.1 VCDM spec references property names (expirationDate/issuanceDate)
 - There are plans to deprecate expirationDate/issuanceDate in favour of 
(validFrom/issued)/validUntilas observed in the respective footnote, but there is no indication that this has taken place or when it will take place - For UNTP implementers, this means:
- Must use v2 property names in the credential payload to conform with UNTP schemas otherwise they have extended the data model
 - Must understand both v1.1 and v2 property names
 - Need to maintain duplicate temporal property mappings when handling different VCDM versions
 
 - This adds unnecessary complexity and potential for errors in implementations
 
 
Note that validFrom, issued and validUntil have been included within the v1 VCDM context. The v1.1 VCDM spec eludes to deprecating issuanceDate in favour of the issued property, but I can not find any reference to the definition of the issued property in either the v1.1 or v2 VCDM spec.
It is expected that the next version of this specification will add the validFrom property and will deprecate the issuanceDate property in favor of a new issued property.
DPP Schema Example:
"validFrom": {
      "example": "2024-03-15T12:00:00",
      "type": "string",
      "format": "date-time",
      "description": "The date and time from which the credential is valid."
    },
    "validUntil": {
      "example": "2034-03-15T12:00:00",
      "type": "string",
      "format": "date-time",
      "description": "The expiry date (if applicable) of this verifiable credential."
    }
- 
Render Method Context Dependencies
- UNTP specification states implementations "SHOULD use the 
renderMethodproperty as defined in the VC data model (v2)" - However, 
renderMethodis a term defined in the VCDM v2 base context - When using VCDM v1.1:
- Additional context IRI would be required to define the 
renderMethodterm - Options include:
- Adding v2 base context (creating implicit v2 dependency)
 - Creating custom context defining 
renderMethod 
 
 - Additional context IRI would be required to define the 
 - Implementation challenges:
- Complexity increases for v1.1-only implementations
 - Risk of context conflicts or overriding terms
 - Creates indirect dependency on v2 despite v1.1 being MUST support
 
 
 - UNTP specification states implementations "SHOULD use the 
 
Context Example:
“renderMethod": {
  "@id": "https://www.w3.org/2018/credentials#renderMethod",
  "@type": "@id"
}
This demonstrates how even SHOULD requirements for v2 VCDM features create practical implementation burdens when maintaining v1.1 compatibility.
- 
Payload Format Variations
- VCDM v1.1 and v2 have different payload structures when using enveloping proof/external proof secured using JOSE
 - V1.1 uses a nested format with the verifiable credential inside a 
vckey:{"vc": {...}}as observed in the v1.1 spec (see note below) - V2 uses a flattened format where the credential is directly at the top level: 
{...}as observed in v2 VCDM and JOSE spec - This difference introduces additional complexity for implementers who must:
- Develop parsing logic to handle both payload structures
 - Ensure proper extraction and validation of credentials across different representations
 
 - The payload format divergence further compounds the versioning challenges, adding another layer of complexity to maintaining cross-version compatibility
 
 
Note that the v1.1 VCDM spec states:
This specification introduces two new registered claim names, which contain those parts of the standard verifiable credentials and verifiable presentations where no explicit encoding rules for JWT exist.
But the JOSE spec only speaks of securing v2 VCDM credentials, creating uncertainty about what the payload of the JWT should be (nested or flattened).
Impact
- Implementers following the current specification will produce non-compliant credentials
 - Mixed version support creates unnecessary complexity
 - Schema validation will reject v1.1-only credentials
 
Questions to Address
- Should we update the specification to require v2 VCDM exclusively?
 
Proposal
Consider updating the specification to:
- Mark VCDM v2 as MUST
 - Either deprecate or remove v1.1 support
 
Additional Context
This issue affects ongoing schema development work to support extensions and test harness development used to ensure conformance with the UNTP specification and needs resolution as soon as possible.