You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
issuance protocol is identified by a [=digital credential/protocol
540
547
identifier=]. See also section [[[#protocol-registry]]].
541
548
</dd>
549
+
<dt>
550
+
Request coordinator
551
+
</dt>
552
+
<dd>
553
+
See [=credential request coordinator=].
554
+
</dd>
542
555
</dl><!--
556
+
// MARK: Credential Request Coordinator
557
+
-->
558
+
<h2>
559
+
Credential Request Coordinator
560
+
</h2>
561
+
<p>
562
+
The <dfndata-local-lt="coordinator">credential request coordinator</dfn>
563
+
is a user-agent-defined component that mediates [=digital credential=]
564
+
interactions through the [=top-level traversable=]. Each [=top-level
565
+
traversable=] has exactly one associated coordinator. The coordinator
566
+
ensures that at most one interaction is active across all [=child
567
+
navigables=], orchestrates the end-to-end flow of presentation or
568
+
issuance, and manages transitions between [=credential request
569
+
coordinator/interaction states=].
570
+
</p>
571
+
<p>
572
+
A user agent MAY delegate some or all coordinator responsibilities to
573
+
external wallet applications, platform components, or other trusted
574
+
entities according to user or platform policy.
575
+
</p>
576
+
<p>
577
+
The coordinator manages the lifecycle of the interaction's {{Promise}}
578
+
and its associated {{AbortSignal}} (if any), including resolution with
579
+
the user's selected [=digital credential=], the [=holder=]'s response, or rejection due to errors or
580
+
the user or program aborting the [=credential request=].
581
+
</p>
582
+
<p>
583
+
The [=credential request coordinator=]:
584
+
</p>
585
+
<ul>
586
+
<li>Validates and transforms presentation or issuance inputs and outputs.
587
+
</li>
588
+
<li>Requests the platform to display, for user selection, the credentials
589
+
that are available for the current request and/or the holders that can
590
+
handle the current request. The availability of credentials and holders
591
+
is determined by matching the request parameters, user consent, and
592
+
platform policy.
593
+
</li>
594
+
<li>[=Resolves=] the interaction's {{Promise}} with the selected [=digital credential=] or [=holder=]'s response, or [=rejects=] it to indicate that the [=credential request=] was aborted.
595
+
</li>
596
+
</ul>
597
+
<asideclass="note">
598
+
<p>
599
+
Although the coordinator handles input/output coordination, it is the
600
+
responsibility of the platform together with available [=holders=], to
601
+
present the UI that allows the user to choose a [=digital credential=] and/or a [=holder].
602
+
</p>
603
+
</aside>
604
+
<h3>
605
+
Interaction states
606
+
</h3>
607
+
<p>
608
+
The [=credential request coordinator=] has a finite set of
0 commit comments