From 943f6f9ca866172220edf061f36f7309d729be9b Mon Sep 17 00:00:00 2001
From: Manu Sporny
Date: Sat, 21 Jun 2025 17:15:47 -0400
Subject: [PATCH] Add /protocols endpoint to specific exchanges.
---
exchanges.yml | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
index.html | 10 ++++++++++
2 files changed, 61 insertions(+)
diff --git a/exchanges.yml b/exchanges.yml
index 27bb277..7bad586 100644
--- a/exchanges.yml
+++ b/exchanges.yml
@@ -180,6 +180,36 @@ paths:
description: Not Authorized
"500":
description: Internal Error
+ /workflows/{localWorkflowId}/exchanges/{localExchangeId}/protocols:
+ get:
+ summary: Gets the supported protocols for interacting with a specific exchange.
+ tags:
+ - Exchanges
+ security:
+ - networkAuth: []
+ - oAuth2: []
+ - zCap: []
+ operationId: getSupportedProtocolsConfiguration
+ description: Gets the supported protocols for interacting with a specific exchange.
+ x-expectedCaller:
+ - Verification Coordinator
+ - Holder Coordinator
+ parameters:
+ - $ref: "./components/parameters/path/LocalWorkflowId.yml"
+ - $ref: "./components/parameters/path/LocalExchangeId.yml"
+ responses:
+ "200":
+ description: Protocols understood by the exchange.
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/GetExchangeProtocolsResponse"
+ "400":
+ description: Invalid input
+ "401":
+ description: Not Authorized
+ "500":
+ description: Internal Error
components:
securitySchemes:
$ref: "./components/SecuritySchemes.yml#/components/securitySchemes"
@@ -305,6 +335,27 @@ components:
redirectUrl:
type: string
description: The URL the exchange wishes to redirect the client to.
+ GetExchangeProtocolsResponse:
+ type: object
+ additionalProperties: false
+ description: Object containing information about the protocols that can be used to perform a specific exchange.
+ properties:
+ protocols:
+ type: object
+ description: An object containing one or more protocols that can be used to perform the specific exchange.
+ properties:
+ interact:
+ type: string
+ description: A URL that can be used during human-in-the-loop exchange flows.
+ vcapi:
+ type: string
+ description: The URL to use when initiating a VC API exchange.
+ OID4VP:
+ type: string
+ description: The URL to use when initiating an OID4VP presentation.
+ OID4VCI:
+ type: string
+ description: The URL to use when initiating an OID4VCI issuance.
GetExchangeResponse:
type: object
additionalProperties: false
diff --git a/index.html b/index.html
index f1f6887..975f007 100644
--- a/index.html
+++ b/index.html
@@ -1289,6 +1289,7 @@ Get Workflow Configuration
endpoint. This impacts the lifetime of challenges associated with such an exchange: if a
challenge is bound to an exchange, that challenge ceases to be valid at the date referenced by the `expires` property of the exchange.
+
Create Exchange
@@ -1298,6 +1299,15 @@
Create Exchange
data-api-endpoint="post /workflows/{localWorkflowId}/exchanges">
+
+ Get Exchange Protocols
+
+
+
+
+
+
Participate in an Exchange