Home

Awesome

⚠️ This repository is not actively being maintained. For a go SDK please look at web5-go. ⚠️

godoc ssi-sdk go version 1.23.2 Go Report Card A+ license Apache 2 issues ssi-sdk-ci status codecov

ssi-sdk

Introduction

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.

ssi-sdk

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.

Contributing

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.

Specifications

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.

Signing Methods

Key Types & Signature Algorithms

Key TypeSignature AlgorithmSupported
Ed25519EdDSAYes
secp256k1ES256KYes
P-256ES256Yes
P-384ES384Yes
P-521ES512Yes
RSAPS256Yes
BLSBBS+Experimental
Dilithium Mode 2CRYDI2Experimental
Dilithium Mode 3CRYDI3Experimental
Dilithium Mode 5CRYDI5Experimental

Experimental methods must be explicitly enabled. For an example, see this test.

DID Methods

Building

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

WASM

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

Versioning

For information on versioning refer to our versioning guide.

The latest version is...nothing! No releases have been made.

Mobile

Using the gomobile tool, we can generate a library that can be used in mobile applications. For more information view the mobile README.

Examples

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

Project Resources

ResourceDescription
VISIONOutlines the project vision
VERSIONINGProject versioning strategy
CODE_OF_CONDUCTExpected behavior for project contributors, promoting a welcoming environment
CONTRIBUTINGDeveloper guide to build, test, run, access CI, chat, discuss, file issues
GOVERNANCEProject governance
LICENSEApache License, Version 2.0