❓ 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 renderMethod property 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 first renderMethod in 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
renderMethod entries (priority, conflict resolution)
- Whether
renderMethod should be considered per issuer or per credential
- What happens when
renderProperty arrays 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
renderMethod entries 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!
❓ Clarification: Handling multiple
renderMethodentries from multiple issuersI'm reviewing the current draft and trying to understand how to implement
renderMethodfor 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:
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
passportNumber(for verification)passportNumber(for privacy)renderMethodQuestions Needing Clarification
Priority
Should a wallet use the first
renderMethodin 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:
renderMethodentries (priority, conflict resolution)renderMethodshould be considered per issuer or per credentialrenderPropertyarrays conflict between issuersMinimal Request
Could the editors please clarify:
renderMethodentries in scope for v1.0?This clarification would help avoid inconsistent implementations and potential privacy/security issues.
Thank you for your guidance!