Skip to content

Clarification on Multiple ldp_vp Verifiable Presentations #709

@KiruthikaJeyashankar

Description

@KiruthikaJeyashankar

Hello,

Subject: Request for Guidance on Using Multiple ldp_vp Presentations in a Single VP Response

Problem Statement

We have a use case where a wallet needs to present two JSON-LD Verifiable Credentials (VCs), each with a different holder binding key:

  1. Government Identity – holder key of type EC key.
  2. University Certificate – holder key of type Ed key.

The requirement is to share both credentials in response to a single presentation request, while ensuring cryptographic proof that each credential is presented by its rightful holder.

Reason

  • Verifier wants to ensure that each Verifiable Presentation is cryptographically bound to its respective holder for a ldp_vp Verifiable Presentation.
  • A wallet may need to present two VCs (ldp_vc), each with a different holder key, and cryptographically assert the holder’s identity for each corresponding VP.

Scenario

A digital wallet is submitting these credentials (Government Identity & University Certificate) for a job application as response to a single presentation request. The Verifier (Company) requires that the Credentials are presented only by the person to whom it was issued, mandating strong cryptographic holder binding for each credential.

Requirements

  • Separate cryptographic proofs per credential – a single signature over both VCs is not possible due to different holder keys.
  • Clear binding between each credential and its holder key – the verifier must be able to trust that each credential is controlled by the correct holder.
  • Flexible VP structure – supports multiple VCs with different holder keys without compromising security or authenticity.

As an approach to satisfy these requirements, one option could be to construct a separate VP per holder key, grouping credentials accordingly:

Proposed VP response

As per the scenario, since both credentials have different holder keys, Separate VPs constructed for Government Identity & University Certificate
Example using vp_token response type:

{
  vp_token: [
    /** VP - Government Identity**/
    {
      // other VP properties
      "holder": "<ecKeyHolderReference>",
      "verifiableCredential": ["<Government Identity -> Holder key is of type EC key>"],
      "proof": {
        // Proof value generated by the holder using the EC key for signing purposes
      }
    },
    /** VP - University Certificate**/
    {
      // other VP properties
      "holder": "<edKeyHolderReference>",
      "verifiableCredential": ["University Certificate -> Holder key is of type Ed key"],
      "proof": {
        // Proof value generated by the holder using the ED key for signing purposes
      }
    }
  ]
}

Benefits of the proposed response

  1. Cryptographic Holder Binding
    - Each VP contains a proof created with the holder’s specific key, ensuring that only the rightful holder can generate it.
    - The Company (Verifier) can verify the signature against the holder’s public key, satisfying the requirement for holder binding.
  2. Each VP is independently verifiable.

Request

  1. Could you please confirm whether the proposed VP response including multiple ldp_vp presentations within a single VP response is compliant with the specification?
  2. Is there a better or recommended approach for handling cryptographic holder binding when sharing multiple ldp_vc credentials with different holder keys in response to a single presentation request?

TIA

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions