Skip to content
This repository was archived by the owner on Jul 10, 2025. It is now read-only.

spruceid/didkit-python

Repository files navigation

Important

As we do not use the DIDKit bindings internally anymore, we have decided to archive their respective repositories. If you are looking for alternatives, our Rust library ssi (on which DIDKit was built) is still in active deployment, and we have new mobile-focused libraries with sprucekit-mobile. And as always, you are welcome to fork our repositories.

PyPI version

Check out the DIDKit documentation here.

DIDKit Python

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.

Installation and Usage

DIDKit is available on PyPI.

You can install it globally with:

$ pip install -U didkit

asyncio is required, meaning you will need Python 3.7 or above.

Build from Source

$ maturin build

You can install maturin with pip install maturin.

Now the wheel should be in the target directory.

Custom Builds

To enable or disable certain features of DIDKit, or use different cryptography backends, you will need edit the Cargo.toml.

Development

When adding a function or changing the signature of an existing one, make sure to reflect the changes in the stub file. This is important for static analysis and IDE support. (This will be automated in the future.)

Test

poetry install
poetry run maturin develop
poetry run pytest

Migration

0.2 to 0.3

Functions have kept the same signatures, but some have become asynchronous. You will need to start using asyncio if it is not already the case.

Maturity Disclaimer

Please note: this readme documents an early-stage open-source product ported manually to python, and we are still incorporating feedback from our first comprehensive third-party code audit. These artefacts are presented as functional "betas" for experimentation and to show the direction of the project (inviting proposals for changes of direction, even!). They are not, however, intended for transacting real-world business yet.

About

Python bindings for DIDKit.

Resources

Stars

Watchers

Forks

Packages