/ssi-sdk

self sovereign identity sdk

Primary LanguageGoApache License 2.0Apache-2.0

⚠️ 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 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.

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

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