Skip to content
Open
23 changes: 23 additions & 0 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -786,6 +786,21 @@ <h3>
Details of how to actually get the [=digital credential=] are
forthcoming.
</aside>
<ol class="algorithm" >
<li>
<aside class="issue">
The following guidance on handling multiple requests will need to be relocated once
this entire section of the algorithm is defined.
</aside>
When multiple [=digital credential/presentation request | presentation requests=]
are present in |requests|,
a [=user agent=] MUST NOT return more than one
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A user agent can't do this regardless, because the WebIDL for a digital credential requires an object (i.e., it can't be a sequence).

Copy link
Contributor

@TallTed TallTed Sep 15, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Excellent! That should let us simplify the phrasing here substantially. I'll do so lower, as a revision of a previous suggestion for this block.

[=digital credential/presentation response=].
However, multiple credentials MAY be included in this single response
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doesn't make sense as a normative requirement, as we can't put normative requirements on formats (only on user agents). This might be useful as a non-normative note though.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't read this as putting requirements on any format (which aren't mentioned here anyway) nor protocol (which are), but rather putting requirements on user agents subject to the limitations of the format protocol in use, i.e., the user agent MAY include multiple credentials in a single response if the format protocol in use supports doing so.

depending on the capabilities
of the corresponding [=digital credential/exchange protocol=].
Comment on lines +795 to +801
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
When multiple [=digital credential/presentation request | presentation requests=]
are present in |requests|,
a [=user agent=] MUST NOT return more than one
[=digital credential/presentation response=].
However, multiple credentials MAY be included in this single response
depending on the capabilities
of the corresponding [=digital credential/exchange protocol=].
A [=user agent=] MUST NOT return more than one
[=digital credential/presentation response=] to |requests|,
even when |requests| contains multiple
[=digital credential/presentation request | presentation requests=].
However, multiple credentials MAY be included in this single response
depending on the capabilities
of the corresponding [=digital credential/exchange protocol=].

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Incorporating all the comments by @marcoscaceres. Too many lines changed in too many ways, so GitHub can't properly highlight the changes. I hope you have a better diff tool at hand.

Suggested change
When multiple [=digital credential/presentation request | presentation requests=]
are present in |requests|,
a [=user agent=] MUST NOT return more than one
[=digital credential/presentation response=].
However, multiple credentials MAY be included in this single response
depending on the capabilities
of the corresponding [=digital credential/exchange protocol=].
A [=user agent=] cannot return more than one
[=digital credential/presentation response=] to |requests|,
even when |requests| contains multiple
[=digital credential/presentation request | presentation requests=],
because the WebIDL for a digital credential requires an object
(i.e., it can't be a sequence).
However, a [=user agent=] MAY include multiple credentials in this
single response if the [=digital credential/exchange protocol=]
in use supports doing so.

</li>
</ol>
</li>
<li>Return a {{DigitalCredential}}.
</li>
Expand Down Expand Up @@ -1983,6 +1998,14 @@ <h4>
We need to describe concerns, tradeoffs and possible mitigations of
handling multiple requests and responses for credential presentation.
</p>
<p>
Verifiers may wish to define a single credential request
using multiple [=digital credential/exchange protocols=],
for example to achieve maximum compatibility across [=user agent | user agents=]
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
for example to achieve maximum compatibility across [=user agent | user agents=]
for example to achieve maximum compatibility across [=user agents=]

or when migrating to a newer version of a protocol. When doing so,
verifiers SHOULD ensure that all requests are semantically equivalent to avoid confusing
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As above... we can't put conformance requirements on verifiers, but we can suggest best practices in non-normative ways.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about —

Suggested change
verifiers SHOULD ensure that all requests are semantically equivalent to avoid confusing
verifiers are expected to ensure that all requests are semantically equivalent to avoid confusing

the user, the user agent, and the wallet during processing of the request.
</p>
Comment on lines +2001 to +2008
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@npdoty I added this text under a different section to try and cover your suggestion that multiple requests should be semantically similar. What do you think?

<h4 id="multiple-user-agents">
Integrating Multiple User Agents
</h4>
Expand Down