-
Notifications
You must be signed in to change notification settings - Fork 7
❓ Clarification: Handling multiple renderMethod entries from multiple issuers #43
Description
❓ Clarification: Handling multiple renderMethod entries from multiple issuers
I'm reviewing the current draft and trying to understand how to implement renderMethod for credentials with multiple issuers. The specification seems to have a gap when issuers provide conflicting render instructions.
Section 2.1
The spec says in Section 2.1:
"The value of the
renderMethodproperty MUST specify one or more rendering methods..."
If I have a credential with multiple issuers, like this:
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://w3id.org/vc/render-method/v1"
],
"id": "http://example.com/credentials/123",
"type": ["VerifiableCredential", "CrossBorderTravelPass"],
"issuer": [
"did:gov:usa",
"did:gov:canada",
"did:gov:mexico"
],
"renderMethod": [
{
"type": "TemplateRenderMethod",
"renderSuite": "svg-mustache",
"template": {
"id": "https://usa.gov/templates/travel-pass.svg"
},
"renderProperty": [
"/credentialSubject/name",
"/credentialSubject/passportNumber",
"/credentialSubject/nationality"
]
},
{
"type": "TemplateRenderMethod",
"renderSuite": "svg-mustache",
"template": {
"id": "https://canada.ca/templates/travel-doc.svg"
},
"renderProperty": [
"/credentialSubject/name",
"/credentialSubject/nationality"
]
}
],
"credentialSubject": {
"id": "did:example:traveler123",
"name": "Jane Doe",
"passportNumber": "P12345678",
"nationality": "Dual Citizen"
}
}The Implementation Dilemma
- USA's template shows
passportNumber(for verification) - Canada's template hides
passportNumber(for privacy) - Mexico has no
renderMethod - All three are equal co-issuers
Questions Needing Clarification
-
Priority
Should a wallet use the firstrenderMethodin the array? Last? All of them? -
Consensus
Do all issuers need to agree on presentation? If Mexico adds a third conflicting template later, what happens? -
Completeness
If issuers disagree on what fields to show (renderProperty), whose preference wins? -
Liability
If a wallet chooses USA's template (showing passport number) in Canada, who is responsible for the privacy violation?
What I Can't Find in the Spec
I've reviewed Sections 2.1 and 2.2, but can't find guidance on:
- How to handle multiple
renderMethodentries (priority, conflict resolution) - Whether
renderMethodshould be considered per issuer or per credential - What happens when
renderPropertyarrays conflict between issuers - Whether all issuers must sign or approve the render method
Minimal Request
Could the editors please clarify:
- Is handling multiple issuers with potentially conflicting
renderMethodentries in scope for v1.0? - If yes, what normative text should implementers follow?
- If no, should we add a note about this limitation in Security Considerations or elsewhere?
This clarification would help avoid inconsistent implementations and potential privacy/security issues.
Thank you for your guidance!