@@ -9,27 +9,27 @@ Witnesses advertise their onboarding invitations through the server's DID docume
99### Protocol Flow
1010
11111 . ** Collect Inputs**
12- - WebVH server base URL (e.g., ` https://did.example.org ` )
13- - Witness DID (` did:key:z6Mk... ` )
12+ - WebVH server base URL (e.g., ` https://did.example.org ` )
13+ - Witness DID (` did:key:z6Mk... ` )
1414
15152 . ** Resolve the Server DID**
16- - ** GET** ` https://did.example.org/.well-known/did.json `
17- - The document contains a ` service ` array generated from the known witness registry
18- - Each service entry represents an available witness
16+ - ** GET** ` https://did.example.org/.well-known/did.json `
17+ - The document contains a ` service ` array generated from the known witness registry
18+ - Each service entry represents an available witness
1919
20203 . ** Locate the Witness Entry**
21- - Find the service object whose ` id ` matches the witness DID
22- - Verify the service ` type ` is ` WitnessInvitation `
23- - Extract the ` serviceEndpoint ` URL
21+ - Find the service object whose ` id ` matches the witness DID
22+ - Verify the service ` type ` is ` WitnessInvitation `
23+ - Extract the ` serviceEndpoint ` URL
2424
25254 . ** Retrieve the Invitation**
26- - The ` serviceEndpoint ` is a short URL: ` https://{domain}/api/invitations?_oobid={witness_key} `
27- - ** GET** the short URL to retrieve the full invitation as JSON
28- - The invitation contains a DIDComm Out-of-Band invitation payload
26+ - The ` serviceEndpoint ` is a short URL: ` https://{domain}/api/invitations?_oobid={witness_key} `
27+ - ** GET** the short URL to retrieve the full invitation as JSON
28+ - The invitation contains a DIDComm Out-of-Band invitation payload
2929
30305 . ** Establish Connection**
31- - Use the invitation URL with your agent/connector to initiate the DIDComm relationship
32- - The witness service will handle the connection protocol
31+ - Use the invitation URL with your agent/connector to initiate the DIDComm relationship
32+ - The witness service will handle the connection protocol
3333
3434### Example
3535
@@ -69,29 +69,29 @@ This protocol enables clients to request DID creation parameters from the server
6969### Protocol Flow
7070
71711 . ** Request Parameters**
72- - ** GET** ` /?namespace={namespace}&alias={alias} `
73- - Both ` namespace ` and ` alias ` are required query parameters
74- - The server validates that the namespace is not reserved
75- - The server checks if the alias is already in use
72+ - ** GET** ` /?namespace={namespace}&alias={alias} `
73+ - Both ` namespace ` and ` alias ` are required query parameters
74+ - The server validates that the namespace is not reserved
75+ - The server checks if the alias is already in use
7676
77772 . ** Server Response**
78- - Returns policy-driven parameters including:
79- - ` versionId ` : SCID placeholder for the DID
80- - ` versionTime ` : Current timestamp
81- - ` parameters ` : Policy-driven configuration
82- - ` method ` : WebVH method version
83- - ` witness ` : Witness requirements (threshold and witness list)
84- - ` portable ` : Portability setting
85- - ` updateKeys ` : Required update keys
86- - ` nextKeyHashes ` : Prerotation requirements
87- - ` watchers ` : Optional watcher URLs
88- - ` state ` : Initial DID document state
89- - ` proof ` : Proof options for signing
78+ - Returns policy-driven parameters including:
79+ - ` versionId ` : SCID placeholder for the DID
80+ - ` versionTime ` : Current timestamp
81+ - ` parameters ` : Policy-driven configuration
82+ - ` method ` : WebVH method version
83+ - ` witness ` : Witness requirements (threshold and witness list)
84+ - ` portable ` : Portability setting
85+ - ` updateKeys ` : Required update keys
86+ - ` nextKeyHashes ` : Prerotation requirements
87+ - ` watchers ` : Optional watcher URLs
88+ - ` state ` : Initial DID document state
89+ - ` proof ` : Proof options for signing
9090
91913 . ** Use Parameters**
92- - Client uses these parameters to construct the initial log entry
93- - Client must sign the log entry according to the proof options
94- - Client must obtain witness signatures if required by policy
92+ - Client uses these parameters to construct the initial log entry
93+ - Client must sign the log entry according to the proof options
94+ - Client must obtain witness signatures if required by policy
9595
9696### Example
9797
@@ -140,49 +140,49 @@ This protocol enables clients to create or update DIDs by submitting log entries
140140### Protocol Flow
141141
1421421 . ** Prepare Log Entry**
143- - Construct a log entry using parameters from "Requesting a DID Path"
144- - Include:
145- - ` versionId ` : Unique identifier for this log entry
146- - ` versionTime ` : Timestamp for this entry
147- - ` parameters ` : Policy parameters (may differ from initial request for updates)
148- - ` state ` : DID document state at this point
149- - ` proof ` : Data Integrity Proof signed by the DID controller
143+ - Construct a log entry using parameters from "Requesting a DID Path"
144+ - Include:
145+ - ` versionId ` : Unique identifier for this log entry
146+ - ` versionTime ` : Timestamp for this entry
147+ - ` parameters ` : Policy parameters (may differ from initial request for updates)
148+ - ` state ` : DID document state at this point
149+ - ` proof ` : Data Integrity Proof signed by the DID controller
150150
1511512 . ** Obtain Witness Signature** (if required)
152- - If server policy requires witnesses, request signatures from witness services
153- - Witness signs the log entry using their witness key
154- - Include witness signature in the request
152+ - If server policy requires witnesses, request signatures from witness services
153+ - Witness signs the log entry using their witness key
154+ - Include witness signature in the request
155155
1561563 . ** Submit Log Entry**
157- - ** POST** ` /{namespace}/{alias} `
158- - ** Body** :
159- ``` json
160- {
161- "logEntry" : {
162- "versionId" : " ..." ,
163- "versionTime" : " ..." ,
164- "parameters" : {... },
165- "state" : {... },
166- "proof" : {... }
167- },
168- "witnessSignature" : {
169- "versionId" : " ..." ,
170- "proof" : [... ]
171- }
172- }
173- ```
157+ - ** POST** ` /{namespace}/{alias} `
158+ - ** Body** :
159+ ``` json
160+ {
161+ "logEntry" : {
162+ "versionId" : " ..." ,
163+ "versionTime" : " ..." ,
164+ "parameters" : {... },
165+ "state" : {... },
166+ "proof" : {... }
167+ },
168+ "witnessSignature" : {
169+ "versionId" : " ..." ,
170+ "proof" : [... ]
171+ }
172+ }
173+ ```
174174
1751754 . **Server Processing**
176- - Server validates the log entry structure
177- - Server verifies the controller's proof
178- - Server verifies witness signatures (if required)
179- - Server enforces policy compliance
180- - Server updates or creates the DID record
176+ - Server validates the log entry structure
177+ - Server verifies the controller's proof
178+ - Server verifies witness signatures (if required)
179+ - Server enforces policy compliance
180+ - Server updates or creates the DID record
181181
1821825 . **Response**
183- - **201 Created**: New DID created successfully
184- - **200 OK**: DID updated successfully
185- - **400 Bad Request**: Validation error or policy violation
183+ - **201 Created**: New DID created successfully
184+ - **200 OK**: DID updated successfully
185+ - **400 Bad Request**: Validation error or policy violation
186186
187187### Example
188188
0 commit comments