⚠️ This repository is not actively being maintained. For a go SDK please look at web5-go. ⚠️
Named ssi-sdk
, this SDK encapsulates a set of standards related
to Self Sovereign Identity.
The ssi-sdk
intends to provide flexible functionality based on a set of standards-based primitives for building
decentralized identity applications in a modular manner: with limited dependencies between components.
The image above outlines the SDK's vision. Standards may be added and/or removed. The standards themselves are under active development, and as such, are subject to change. When possible we aim to call out which versions or revisions of standards we are building implementations against.
The SDK has not undergone any formal security review or audit, so please use with caution.
For more information, see the vision document.
This project is fully open source, and we welcome contributions! For more information please see CONTRIBUTING. Our current thinking about the development of the library is captured in GitHub Issues.
Here are a set of references to specifications that this library currently supports. It is a dynamic set that will change as the library evolves.
Key Type | Signature Algorithm | Supported |
---|---|---|
Ed25519 | EdDSA | Yes |
secp256k1 | ES256K | Yes |
P-256 | ES256 | Yes |
P-384 | ES384 | Yes |
P-521 | ES512 | Yes |
RSA | PS256 | Yes |
BLS | BBS+ | Experimental |
Dilithium Mode 2 | CRYDI2 | Experimental |
Dilithium Mode 3 | CRYDI3 | Experimental |
Dilithium Mode 5 | CRYDI5 | Experimental |
Experimental methods must be explicitly enabled. For an example, see this test.
This project uses mage, please view CONTRIBUTING for more information.
After installing mage, you can build and test the SDK with the following commands:
mage build
mage test
A utility is provided to run clean, build, and test in sequence with:
mage cbt
The ssi-sdk-wasm is a library that provides a WebAssembly (WASM) implementation for Self-Sovereign Identity (SSI) SDK. It enables SSI functionality in the browser and other JavaScript environments by compiling the SDK to a WASM file. This repository is responsible for building the main.wasm file and making it available as an npm package.
The wasm implemetation for this repo lives here - https://github.com/TBD54566975/ssi-sdk-wasm
For information on versioning refer to our versioning guide.
The latest version is...nothing! No releases have been made.
Using the gomobile tool, we can generate a library that can be used in mobile applications. For more information view the mobile README.
A set of code examples can be found in the examples directory. We welcome contributions for additional examples.
To run the examples use the following command
go run example/did/did.go
go run example/usecase/apartment_application/apartment_application.go
Resource | Description |
---|---|
VISION | Outlines the project vision |
VERSIONING | Project versioning strategy |
CODE_OF_CONDUCT | Expected behavior for project contributors, promoting a welcoming environment |
CONTRIBUTING | Developer guide to build, test, run, access CI, chat, discuss, file issues |
GOVERNANCE | Project governance |
LICENSE | Apache License, Version 2.0 |