A toolkit for Verifiable Credential and Decentralized Identifier functionality

What is DIDKit?

DIDKit provides Verifiable Credential and Decentralized Identifier functionality across different platforms. DIDKit's core libraries are written in Rust due to Rust's expressive type system, memory safety, simple dependency web, and suitability across different platforms including embedded systems, but the comprehensive DIDKit SDK includes many libraries and interfaces for using it almost everywhere.
To hop right in, check out our quickstart guide:

Key Features

DIDKit supports the following key capabilities:
  • It can sign and verify W3C Verifiable Credentials almost anywhere you can install it.
    • See the DIDKit Packages section to the left for a growing list of language-specific libraries, many available via package manager, and foreign function interfaces.
    • If you need a server, not a library, DIDKit also powers a dockerized, ready-to-go HTTP/HTTPS server that can be called using the VC-HTTP-API standard or customized to use any other API interface.
  • It can juggle and translate between the two major signing systems and proof formats used in Verifiable Credentials today: Linked Data Proofs and the JOSE family of tokens and envelopes, abstracting out all the complexity of both.
  • It can handle, authenticate, validate, register, and even determininstically generate many kinds of W3C Decentralized Identifiers including full-featured "on-chain" DIDs, implicit or "off-chain" DIDs, disposable, short-lived DIDs, pseudo-DIDs generated by key material borrowed from other systems and more.
    • This includes "GitHub keys", HSM keys, and any blockchain addresses representable as CAIP-10 account identifiers.
  • It can also issue and consume authorization tokens based on the Object Capabilities model, also known as "ZCaps".