Skip to main content

Trust DID Web - Python

This repository includes Python libraries for working with did:tdw (Trust DID Web) DID documents and the underlying log format. Methods are provided for provisioning and updating DID documents as well as a resolving existing did:tdw DIDs. Currently, version 0.4 of the specification is implemented.

Prerequisites

This library requires Python 3.10 or later. Dependencies are listed in pyproject.toml and can be installed via:

poetry install

Usage

A new did:tdw DID can be minted using the provision command. This will create a new Askar keystore for handling the signing key.

python3 -m did_tdw.provision --auto "domain.example"

This will output a new directory named after the new DID, containing did.jsonl (the DID log) and did.json (the current state of the document).

To automatically update the DID, edit did.json and execute the update command (use the identifier output from the provision command):

python3 -m did_tdw.update --auto "did:tdw:QmRwq46VkGuCEx4dyYxxexmig7Fwbqbm9AB73iKUAHjMZH:domain.example"

DID Resolution

The resolver script may be invoked via the command line, and supports dereferencing of fragments and paths:

python3 -m did_tdw.resolver "did:tdw:QmRwq46VkGuCEx4dyYxxexmig7Fwbqbm9AB73iKUAHjMZH:domain.example"
python3 -m did_tdw.resolver "did:tdw:QmRwq46VkGuCEx4dyYxxexmig7Fwbqbm9AB73iKUAHjMZH:domain.example#key-1"
python3 -m did_tdw.resolver "did:tdw:QmRwq46VkGuCEx4dyYxxexmig7Fwbqbm9AB73iKUAHjMZH:domain.example/whois.vc"

For testing, this script also accepts the path to the local DID history file:

python3 -m did_tdw.resolver -f did.jsonl "did:tdw:QmRwq46VkGuCEx4dyYxxexmig7Fwbqbm9AB73iKUAHjMZH:domain.example"

Demo

For demo purposes, a new DID can be minted along with a series of test updates applied using the included demo script:

python3 demo.py domain.example

Contributing

Pull requests are welcome! Please read our contributions guide and submit your PRs. We enforce developer certificate of origin (DCO) commit signing — guidance on this is available. We also welcome issues submitted about problems you encounter in using Trust DID Web - Python.

License

Apache License Version 2.0

Metadata

Release files for did-tdw 0.2.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for did-tdw 0.2.2
File Size Uploaded Provenance Actions
did_tdw-0.2.2.tar.gz 27.9 kB Without provenance Details for did_tdw-0.2.2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for did-tdw 0.2.2
File Interpreter ABI Platform Actions
did_tdw-0.2.2-py3-none-any.whl Python 3 none any Details for did_tdw-0.2.2-py3-none-any.whl

Total release size: 63.6 kB

Release files / did_tdw-0.2.2.tar.gz

Download URL did_tdw-0.2.2.tar.gz
Size 27.9 kB
Tags Source
SHA-256 checksum
How to use checksums
c96f8de599217ad6e89ffcf7128c4432f62d5465b787c49521912a0a7d60fee0
BLAKE2b-256 checksum
How to use checksums
03876e4bb0f67960a4d40634b7e41e96ca4b59c5da83cfa877c9b3479bd01001
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.10.11

Release files / did_tdw-0.2.2-py3-none-any.whl

Download URL did_tdw-0.2.2-py3-none-any.whl
Size 35.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3cccb6ddc53a51e21bb78422fa4964180c9a5a22647647d22a0b49d5b945bd78
BLAKE2b-256 checksum
How to use checksums
8ce0173ea4e472d3ecda3562ce28e6191041c000b1aebad4c9fc74cfdffcc8a8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.10.11

Security for did-tdw 0.2.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page