Create sequence diagrams with simple online tool is a free webapp for making sequence diagrams. You simply edit the text on the left and the diagram is updated in real time. You can download your sequence diagrams as images or distribute with a link.

title: "Full" DID Resolver for did:cheqd autonumber group: Client Request Client App -> Universal Resolver driver for cheqd: REST API **GET** request `/1.0/identifiers/{did}` note: **Common REST API for all DID method drivers in Universal Resolver** In addition to just the `{did}`, DID URL queries (`?`), fragments (`#`), and paths (`/`) can also be provided Universal Resolver driver for cheqd -> cheqd "Full" DID Resolver: Pass request to cheqd "Full" DID Resolver Docker container cheqd "Full" DID Resolver -> cheqd "Full" DID Resolver: Sanity check request note: **Pre-process request before attempting resolution from ledger** 1. Check if DID URL passed is valid (`isDidUrl`) 2. Check if any DID dereferencing needs to be done 3. Handle any errors / exceptions for malformed requests end group: Resolve DIDDocs and Resources from ledger cheqd "Full" DID Resolver -> cheqd Ledger: Query `resolve` DIDDoc / Resource via Cosmos SDK gRPC API note: **DID Resolution `resolve` from cheqd Ledger** This abstract `resolve` definition incorporates multiple types of Resolver-level and ledger-level requests: 1. Open a secure / insecure gRPC connection to a ledger instance 2. If request relates to a DIDDoc, fetch it (`QueryDidDoc`) 2. If request relates to a Resource, fetch it and/or Resource metadata (`QueryResource`) cheqd Ledger -> cheqd "Full" DID Resolver: Protobuf response to `resolve` request via gRPC note: Return raw Protobuf for requested DIDDoc / Resource cheqd "Full" DID Resolver -> cheqd "Full" DID Resolver: Convert Protobuf response to valid JSON note: Apply DID Resolution and DID Core specification algorithms for producing a valid JSON response end group: DID Resolver response to Client App cheqd "Full" DID Resolver -> Universal Resolver driver for cheqd: Return valid `resolveRepresentation` response note: **Respond to Client App with valid JSON/JSON-LD representations and/or Resources** *For DIDDocs*: 1. Return `didResolutionMetadata`, `didDocument`, and `didDocumentMetadata` 2. If no `Content-Type` is set, use `application/did+ld+json` *For Resources:* 1. If the request is for a fully-qualified Resource, return Resource `data` with correct `Content-Type` headers 2. If request is for Resource metadata, return `linkedResourceMetadata` for resource *without* the actual Resource content Universal Resolver driver for cheqd -> Client App: Return **GET** request response end