• Stars
    star
    228
  • Rank 175,267 (Top 4 %)
  • Language
    Rust
  • License
    Apache License 2.0
  • Created about 4 years ago
  • Updated 11 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A cross-platform toolkit for decentralized identity.

Check out the DIDKit documentation here.

DIDKit

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. DIDKit embeds the ssi library, which contains the core functionality.

Security Audits

DIDKit has undergone the following security reviews:

We are setting up a process to accept contributions. Please feel free to open issues or PRs in the interim, but we cannot merge external changes until this process is in place.

Install

Manual

DIDKit is written in Rust. To get Rust, you can use Rustup.

Spruce's ssi library must be cloned alongside the didkit repository:

$ git clone https://github.com/spruceid/ssi ../ssi --recurse-submodules

Build DIDKit using Cargo:

$ cargo build

That will give you the DIDKit CLI and HTTP server executables located at target/debug/didkit and target/debug/didkit-http, respectively. You can also build and install DIDKit's components separately. Building the FFI libraries will require additional dependencies. See the corresponding readmes linked below for more info.

Container

Both the CLI and HTTP server are containerised and available under ghcr.io/spruceid/didkit-(cli|http).

You can use the images like CLIs:

$ docker run ghcr.io/spruceid/didkit-cli:latest --help
$ docker run --init -p 8080 ghcr.io/spruceid/didkit-http:latest --port 8080

You can pass JWKs either by sharing a volume with docker run --volume, or by passing the JWK directly with docker run -e JWK=$MY_JWK or docker run didkit-http --jwk $MY_JWK.

Build Images

The Dockerfiles rely on having ssi in the root of didkit (a symbolic link will not work unfortunately).

Then the images can be built with:

$ docker build -f Dockerfile-cli . -t didkit-cli
$ docker build -f Dockerfile-http . -t didkit-http

And to use them, replace ghcr.io/spruceid/didkit-(cli|http):latest with didkit-(cli|http).

Usage

DIDKit can be used in any of the following ways:

  • CLI - didkit command-line program
  • HTTP - HTTP server (Rust library and CLI program)
  • FFI - libraries for C, Java, Android, and Dart/Flutter

More Repositories

1

siwe

Sign-In with Ethereum library
TypeScript
974
star
2

ssi

Core library for decentralized identity.
Rust
176
star
3

siwe-next-auth-example

An example of Sign-In with Ethereum and NextAuth.js
TypeScript
136
star
4

siwe-quickstart

JavaScript
114
star
5

ssx

Self-Sovereign Anything
TypeScript
75
star
6

siwe-rs

A Rust implementation of EIP-4361 Sign In With Ethereum verification
Rust
75
star
7

kepler

Decentralized storage based on permissioned data overlays called orbits.
Rust
68
star
8

siwe-oidc

OpenID Connect Identity Provider for Sign-In with Ethereum.
Rust
66
star
9

siwe-py

A Python implementation of Sign-In with Ethereum
Python
52
star
10

siwe-go

A Go implementation of EIP-4361 Sign In With Ethereum verification
Go
48
star
11

wallet

A reference credential wallet built on Flutter and DIDKit.
Dart
43
star
12

tzprofiles

Create portable verified profiles on Tezos with public accounts.
Svelte
39
star
13

discourse-siwe-auth

Discourse plugin for SIWE authentication
C
33
star
14

siwe-ruby

A ruby implementation of Sign-In with Ethereum
Ruby
33
star
15

treeldr

Rust
26
star
16

siwe-notepad

Notepad example usage app of SIWE
TypeScript
23
star
17

rebase

Rust
17
star
18

keylink

Link system accounts to keys.
Rust
12
star
19

siwe-rails-examples

SIWE example using Ruby on Rails with custom controller.
Ruby
12
star
20

siwe-ex

Sign-In with Ethereum Implementation for Elixir
Elixir
12
star
21

did-tezos

The Decentralized Identifier method for the Tezos blockchain.
HTML
10
star
22

degen-passport

JavaScript
8
star
23

linked-data-rs

Linked-Data serialization/deserialization primitives and derive macros for Rust
Rust
6
star
24

oidc4vci-issuer

Rust
6
star
25

teal

bluesky client built with ssx
TypeScript
5
star
26

omniauth-siwe

OmniAuth implementation of Sign-In with Ethereum
Ruby
5
star
27

siwe_rails

CSS
5
star
28

kepler-sdk

Kepler SDK allows applications to easily integrate Kepler for decentralized storage.
JavaScript
5
star
29

cacao-rs

Rust
5
star
30

joyce

A decentralized book-review platform example built with SpruceKit
Svelte
3
star
31

siwe-web3modal

SIWE Web3Modal implementation
TypeScript
3
star
32

recap-ts

A typescript implementation of ERC-5573 ReCaps
TypeScript
3
star
33

oid4vci-rs

Rust
3
star
34

spruceid.dev

HTML
2
star
35

degen-issuer

Svelte
2
star
36

isomdl

Rust
2
star
37

didkit-go

Go
1
star
38

mi-cho-coq

Coq
1
star
39

json-ld-framing

JSON-LD Framing in Rust
Rust
1
star
40

chatbot

A chatbot interface that uses SpruceKit
TypeScript
1
star
41

verifiable-job-application

TypeScript
1
star
42

ssx-quickstart

A Quickstart for SSX
TypeScript
1
star
43

cryptoscript

Rust
1
star
44

oidc4ci-dart

Rust
1
star