Portal Community

IDidResolver

public interface IDidResolver
{
    Task<DidDocument?> ResolveAsync(string did, CancellationToken ct = default);
}

public record DidDocument
{
    public string Id { get; init; } = default!;   // the DID
    public VerificationMethod[] VerificationMethods { get; init; } = [];
    public ServiceEndpoint[] Services { get; init; } = [];
    public string[] Authentication { get; init; } = [];
    public string[] KeyAgreement { get; init; } = [];
}

Supported DID Methods

DID MethodExampleResolution Mechanism
did:webdid:web:partner.example.comFetches https://partner.example.com/.well-known/did.json
did:keydid:key:z6Mk...Derives DID document from the public key encoded in the DID itself
did:iondid:ion:EiA...Queries the ION network (Microsoft/Bitcoin anchored)
did:peerdid:peer:2...Resolved from local peer DID storage for pairwise DIDs

DID Resolution Node

{
  "nodeType": "DIDResolve",
  "name": "resolvePartner",
  "config": {
    "did": "$json.partnerDid",
    "failOnNotFound": true
  }
}
// Output:
{
  "did": "did:web:partner.example.com",
  "document": { "id": "...", "verificationMethods": [...], "services": [...] },
  "resolvedAt": "2026-05-25T10:00:00Z"
}
Caching: The IDidResolver implementation caches resolved DID documents for 5 minutes. Frequently-used partner DIDs are resolved from cache, not the network. Cache is invalidated on cache expiry or explicit invalidation via the admin API.