w3c-vcdm-presentations

star 0

Use when implementing verifiable presentations in W3C VCDM. Covers: presentation structure, semantics, and processing considerations.

sourcelabbg By sourcelabbg schedule Updated 3/7/2026

name: "w3c-vcdm-presentations" description: "Use when implementing verifiable presentations in W3C VCDM. Covers: presentation structure, semantics, and processing considerations." sections: - "4.13 Verifiable Presentations" - "Enveloped Verifiable Credentials" - "Enveloped Verifiable Presentations" - "Presentations Using Derived Credentials" - "Presentations Including Holder Claims"

4.13 Verifiable Presentations

Verifiable presentations MAY be used to aggregate information from multiple verifiable credentials.

Verifiable presentations SHOULD be extremely short-lived and bound to a challenge provided by a verifier. Details for accomplishing this depend on the securing mechanism, the transport protocol, and verifier policies. Unless additional requirements are defined by the particular securing mechanism or embedding protocol, a verifier cannot generally assume that the verifiable presentation correlates with the presented verifiable credentials.

The default graph of a verifiable presentation is also referred to as the verifiable presentation graph.

The following properties are defined for a verifiable presentation:

      id
      

The id property is optional. It MAY be used to provide a unique identifier for the verifiable presentation. If present, the normative guidance in Section 4.4 Identifiers MUST be followed.

      type
      

The type property MUST be present. It is used to express the type of verifiable presentation. One value of this property MUST be VerifiablePresentation, but additional types MAY be included. The related normative guidance in Section 4.5 Types MUST be followed.

      verifiableCredential
      

The verifiableCredential property MAY be present. The value MUST be one or more verifiable credential and/or enveloped verifiable credential objects (the values MUST NOT be non-object values such as numbers, strings, or URLs). These objects are called verifiable credential graphs and MUST express information that is secured using a securing mechanism. See Section 5.12 Verifiable Credential Graphs for further details.

      holder
      

The verifiable presentation MAY include a holder property. If present, the value MUST be either a URL or an object containing an id property. It is RECOMMENDED that the URL in the holder or its id be one which, if dereferenced, results in a document containing machine-readable information about the holder that can be used to verify the information expressed in the verifiable presentation. If the holder property is absent, information about the holder is obtained either via the securing mechanism or does not pertain to the validation of the verifiable presentation.

The example below shows a verifiable presentation:

[Example 17](https://www.w3.org/TR/vc-data-model-2.0/#example-basic-structure-of-a-presentation): Basic structure of a presentation
{
  "@context": [
 "https://www.w3.org/ns/credentials/v2",
 "https://www.w3.org/ns/credentials/examples/v2"
  ],
  "id": "urn:uuid:3978344f-8596-4c3a-a978-8fcaba3903c5",
  "type": ["VerifiablePresentation", "ExamplePresentation"],
  "verifiableCredential": [{ ... }]
}

The contents of the verifiableCredential property shown above are verifiable credential graphs, as described by this specification.

Enveloped Verifiable Credentials

It is possible for a verifiable presentation to include one or more verifiable credentials that have been secured using a securing mechanism that "envelopes" the payload, such as Securing Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE]. This can be accomplished by associating the verifiableCredential property with an object that has a type of EnvelopedVerifiableCredential.

        EnvelopedVerifiableCredential
        

They are used to associate an object containing an enveloped verifiable credential with the verifiableCredential property in a verifiable presentation. The @context property of the object MUST be present and include a context, such as the base context for this specification, that defines at least the id, type, and EnvelopedVerifiableCredential terms as defined by the base context provided by this specification. The id value of the object MUST be a data: URL [RFC2397] that expresses a secured verifiable credential using an enveloping security scheme, such as Securing Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE]. The type value of the object MUST be EnvelopedVerifiableCredential.

The example below shows a verifiable presentation that contains an enveloped verifiable credential:

[Example 18](https://www.w3.org/TR/vc-data-model-2.0/#example-basic-structure-of-a-presentation-0): Basic structure of a presentation
{
  "@context": [
 "https://www.w3.org/ns/credentials/v2",
 "https://www.w3.org/ns/credentials/examples/v2"
  ],
  "type": ["VerifiablePresentation", "ExamplePresentation"],
  "verifiableCredential": [{
 "@context": "https://www.w3.org/ns/credentials/v2",
 "id": "data:application/vc+sd-jwt,QzVjV...RMjU",
 "type": "EnvelopedVerifiableCredential"
  }]
}
      Note: Processing enveloped content as RDF

It is possible that an implementer might want to process the object described in this section and the enveloped presentation expressed by the id value in an RDF environment and create linkages between the objects that are relevant to RDF. The desire and mechanisms for doing so are use case dependent and will, thus, be implementation dependent.

Enveloped Verifiable Presentations

It is possible to express a verifiable presentation that has been secured using a mechanism that "envelops" the payload, such as Securing Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE]. This can be accomplished by using an object that has a type of EnvelopedVerifiablePresentation.

        EnvelopedVerifiablePresentation
        

Used to express an enveloped verifiable presentation. The @context property of the object MUST be present and include a context, such as the base context for this specification, that defines at least the id, type, and EnvelopedVerifiablePresentation terms as defined by the base context provided by this specification. The id value of the object MUST be a data: URL [RFC2397] that expresses a secured verifiable presentation using an enveloping securing mechanism, such as Securing Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE]. The type value of the object MUST be EnvelopedVerifiablePresentation.

The example below shows an enveloped verifiable presentation:

[Example 19](https://www.w3.org/TR/vc-data-model-2.0/#example-basic-structure-of-an-enveloped-verifiable-presentation): Basic structure of an enveloped verifiable presentation
{
  "@context": "https://www.w3.org/ns/credentials/v2",
  "id": "data:application/vp+jwt,eyJraWQiO...zhwGfQ",
  "type": "EnvelopedVerifiablePresentation"
}

Presentations Using Derived Credentials

Some zero-knowledge cryptography schemes might enable holders to indirectly prove they hold claims from a verifiable credential without revealing all claims in that verifiable credential. In these schemes, a verifiable credential might be used to derive presentable data, which is cryptographically asserted such that a verifier can trust the value if they trust the issuer.

Some selective disclosure schemes can share a subset of claims derived from a verifiable credential.

      Note: Presentations using Zero-Knowledge Proofs are possible

For an example of a ZKP-style verifiable presentation containing derived data instead of directly embedded verifiable credentials, see Section 5.7 Zero-Knowledge Proofs.

        [Figure 11](https://www.w3.org/TR/vc-data-model-2.0/#fig-a-basic-claim-expressing-that-pat-is-over-the-age-of-21) 

A basic claim expressing that Pat is over the age of 21.

Presentations Including Holder Claims

A holder MAY use the verifiableCredential property in a verifiable presentation to include verifiable credentials from any issuer, including themselves. When the issuer of a verifiable credential is the holder, the claims in that verifiable credential are considered self-asserted. Such self-asserted claims can be secured by the same mechanism that secures the verifiable presentation in which they are included or by any mechanism usable for other verifiable credentials.

The subject(s) of these self-asserted claims are not limited, so these claims can include statements about the holder, one of the other included verifiable credentials or even the verifiable presentation in which the self-asserted verifiable credential is included. In each case, the id property is used to identify the specific subject, in the object where the claims about it are made, just as it is done in verifiable credentials that are not self-asserted.

A verifiable presentation that includes a self-asserted verifiable credential, which is secured only using the same mechanism as the verifiable presentation, MUST include a holder property.

All of the normative requirements defined for verifiable credentials apply to self-asserted verifiable credentials.

A verifiable credential in a verifiable presentation is considered self-asserted when the value of the issuer property of the verifiable credential is identical to the value of the holder property of the verifiable presentation.

The example below shows a verifiable presentation that embeds a self-asserted verifiable credential that is secured using the same mechanism as the verifiable presentation.

[Example 20](https://www.w3.org/TR/vc-data-model-2.0/#example-a-verifiable-presentation-secured-with-an-embedded-data-integrity-proof-with-a-self-asserted-verifiable-credential): A verifiable presentation, secured with an embedded Data Integrity proof, with a self-asserted verifiable credential
{
  "@context": [
 "https://www.w3.org/ns/credentials/v2",
 "https://www.w3.org/ns/credentials/examples/v2"
  ],
  "type": ["VerifiablePresentation", "ExamplePresentation"],
  "holder": "did:example:12345678",
  "verifiableCredential": [{
 "@context": [
   "https://www.w3.org/ns/credentials/v2",
   "https://www.w3.org/ns/credentials/examples/v2"
 ],
 "type": ["VerifiableCredential", "ExampleFoodPreferenceCredential"],
 "issuer": "did:example:12345678",
 "credentialSubject": {
   "favoriteCheese": "Gouda"
 },
 { ... }
  }],
  "proof": [{ ... }]
}

The example below shows a verifiable presentation that embeds a self-asserted verifiable credential holding claims about the verifiable presentation. It is secured using the same mechanism as the verifiable presentation.

[Example 21](https://www.w3.org/TR/vc-data-model-2.0/#example-a-verifiable-presentation-secured-with-an-embedded-data-integrity-proof-with-a-self-asserted-verifiable-credential-about-the-verifiable-presentation): A verifiable presentation, secured with an embedded Data Integrity proof, with a self-asserted verifiable credential about the verifiable presentation
{
  "@context": [
 "https://www.w3.org/ns/credentials/v2",
 "https://www.w3.org/ns/credentials/examples/v2"
  ],
  "type": ["VerifiablePresentation", "ExamplePresentation"],
  "id": "urn:uuid:313801ba-24b7-11ee-be02-ff560265cf9b",
  "holder": "did:example:12345678",
  "verifiableCredential": [{
 "@context": [
   "https://www.w3.org/ns/credentials/v2",
   "https://www.w3.org/ns/credentials/examples/v2"
 ],
 "type": ["VerifiableCredential", "ExampleAssertCredential"],
 "issuer": "did:example:12345678",
 "credentialSubject": {
   "id": "urn:uuid:313801ba-24b7-11ee-be02-ff560265cf9b",
   "assertion": "This VP is submitted by the subject as evidence of a legal right to drive"
 },
 "proof": { ... }
  }],
  "proof": { ... }
}
Install via CLI
npx skills add https://github.com/sourcelabbg/eudi-knowledge --skill w3c-vcdm-presentations
Repository Details
star Stars 0
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator