DIDKit provides Verifiable Credential and Decentralized Identifier functionality across different platforms. It was written primarily in Rust due to Rust's expressive type system, memory safety, simple dependency web, and suitability across different platforms including embedded systems.
It supports the following high level use cases, with more to be added shortly:
- W3C Verifiable Credentials with JSON-LD Proofs: issuance, presentation, and verification.
- W3C Decentralized Identifiers: resolution for did-key, did-web, and one layer of did-tezos.
DIDKit ships with a command line tool and HTTP service. The HTTP service aims to comply with HTTP-VC-API.
Through cross-compilation and linking through C ABIs, DIDKit also supports other platforms through SDKs for:
- C/Objective-C (C ABI)
- Java (via JNI, see an example project using Spring Boot)
- Android (via Java)
- Flutter (via Android and iOS)
- (WIP) WASM (cross-compiled using wasm-pack)
- (Future) PHP, Python, Ruby/Rails, Go, C#, C++
Although support across different platforms is in its early stages, we will continue to add new platforms and improve interface ergonomics over time. For platforms that do not currently have SDK support, the HTTP API and command line tools are readily integrated.
In this quickstart, we will build and run the command line tool along with the HTTP server.
- GNU/Linux or MacOS, not yet tested on Windows.
- Rust nightly (
rustup default nightly)
didkit (we are working on crate packaging):
didkit HTTP server
Please see the installation instructions for more detailed steps or how to use containerized builds. The CLI and HTTP related pages in the examples section will demonstrate how to issue and verify Verifiable Credentials and Verifiable Presentations.
The core featureset of DIDKit is expanding steadily over time and in the open, so feel free to engage with the repository directly on github. Currently, DIDKit currently supports the following features:
- Key generation and handling.
- Issuance and presentation of W3C Verifiable Credentials in JSON-LD, signed by a local and/or passed key.
- Verification of W3C Verifiable Credentials in JSON-LD.
DID Methods supported so far:
- did-tezos (tz1 and resolution layer 1)
Proof types verifiable so far:
The following tools and features are high priority for subsequent releases:
- Exposing interfaces for JWT-based Verifiable Credential workflows
- JSON-LD context editor
- Registration of several new LD signature suites and support for new cryptography
- Further DID method support: did-tezos (tz2/tz3 and resolution layers 2 and 3), did-btcr, did-onion
- BBS+ signatures
- DIDComm support
- Aries interoperability profile support