DotDecentralized library

This is a work in progress implementation of W3C decentralized identifier specification (DID). It is a .NET Standard 2.1 library based on System.Text.Json and will be moved to .NET 5. The class hierarchy should useable in other serialization formats also.

Guiding ideas

  • A typed system that can operate on any decentralized identifier and verifiable credentials.

  • Allow mixing and matching cryptograhic libraries in verification methods and relationships without recompiling the library and allowing choosing library preferably dynamically.

  • Allow composing and inheriting specialized implementations using core classes while maintaining security, performance, develope experience etc. The main is to build a bare core and layer these on top of the core (e.g. extension methods).

  • Do not throw exception and stop processing if a strongly typed class isn not available but collect extra parameters to JsonExtensionData

  • Implement specification specific rule checking as methods that operate on the typed system.

  • Does not aim to implement JSON-LD processing rules (Expanded, N-Quads, Framed etc.).

  • Implement the official test suite and a large number of tests using real data from other implementations.

  • Add project files for VS Code.

References

The following specifications and guidelines are referenced:

The aim is also to make possible or implement some other works listed in Decentralized Identity Foundation (DIF).