Python SDK for the Shadownet protocol.
Project description
shadownet-py
Python SDK for the Shadownet protocol.
Status
Early. No code yet. Implements the v0.1 RFCs at shadownet-specs/rfcs.
What this repo is
A reusable Python library — not a server, not a canonical core. The primitives (DID resolution, VC issuance/verification, VP minting, A2A client + server helpers, MCP tool definitions) used by:
hermes-social— the Sidecar reference implementation.shadownet-cloud— the cloud signup + multi-tenant Sidecar host (forthcoming).- Anything else that wants to speak Shadownet from Python.
Interop with other SDKs (shadownet-go, shadownet-ts) is verified at the wire level by shadownet-conformance.
Tooling
- Package manager:
uv - Python: 3.12+
- Style/lint:
ruff - Tests:
pytest(+pytest-asyncio) - License: MIT
Install / Develop
uv sync --all-extras # install runtime + dev + extras
uv run pytest # run the test suite
uv run pytest -m network # opt-in: tests that hit the network
uv run ruff check . # lint
uv run ruff format . # format
Engineering conventions and contribution rules live in CLAUDE.md.
Planned layout
src/shadownet/
crypto.py Ed25519, JWT/JWS
did.py did:key, did:web
vc.py VC-JWT issuance + verification + freshness + BitstringStatusList
a2a/
client.py outbound A2A (handshake, message:send, message:stream)
server.py inbound A2A helpers (FastAPI-friendly)
sca.py SCA helpers (CSR building, predicate evaluation)
sns.py SNS helpers (record signing, resolution, caching)
mcp.py MCP tool definitions matching RFC-0007
tests/
pyproject.toml
uv.lock
The directory tree is not committed yet — added incrementally as work lands.
Specifications
- Protocol:
shadownet-specs/rfcs - Wire-level walkthrough:
shadownet-specs/examples/birthday-flow.md - Development plan:
shadownet-specs/DEVELOPMENT.md
License
TBD.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file shadownet-0.1.0rc1.tar.gz.
File metadata
- Download URL: shadownet-0.1.0rc1.tar.gz
- Upload date:
- Size: 38.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8e361f25b5e6343be969b5d97e37e06d4db71e843cc6beb320654f3e2623dcd8
|
|
| MD5 |
41668df1eab8c065df2e4bc6ce79f800
|
|
| BLAKE2b-256 |
edc4838f902ca5ed80ecaefa34b9df081fa94abe93323d3fafedcf319d7d9da1
|
Provenance
The following attestation bundles were made for shadownet-0.1.0rc1.tar.gz:
Publisher:
release.yml on shadownet-protocol/shadownet-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
shadownet-0.1.0rc1.tar.gz -
Subject digest:
8e361f25b5e6343be969b5d97e37e06d4db71e843cc6beb320654f3e2623dcd8 - Sigstore transparency entry: 1436008303
- Sigstore integration time:
-
Permalink:
shadownet-protocol/shadownet-py@bd838c070cd8080aa7727e4c1fba64181101a1a3 -
Branch / Tag:
refs/tags/v0.1.0-rc.1 - Owner: https://github.com/shadownet-protocol
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@bd838c070cd8080aa7727e4c1fba64181101a1a3 -
Trigger Event:
push
-
Statement type:
File details
Details for the file shadownet-0.1.0rc1-py3-none-any.whl.
File metadata
- Download URL: shadownet-0.1.0rc1-py3-none-any.whl
- Upload date:
- Size: 57.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f34e5f0a375e745a40446ead2bdd5fa1be6b812f9c46ebe43f11c1507ef9bf9d
|
|
| MD5 |
ab811340b781dbb0a2f77c7fe912841b
|
|
| BLAKE2b-256 |
8868bbd0c9aad18f3d99d9005702c3d207dd57f7d356c2e9a22d607a935357dd
|
Provenance
The following attestation bundles were made for shadownet-0.1.0rc1-py3-none-any.whl:
Publisher:
release.yml on shadownet-protocol/shadownet-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
shadownet-0.1.0rc1-py3-none-any.whl -
Subject digest:
f34e5f0a375e745a40446ead2bdd5fa1be6b812f9c46ebe43f11c1507ef9bf9d - Sigstore transparency entry: 1436008306
- Sigstore integration time:
-
Permalink:
shadownet-protocol/shadownet-py@bd838c070cd8080aa7727e4c1fba64181101a1a3 -
Branch / Tag:
refs/tags/v0.1.0-rc.1 - Owner: https://github.com/shadownet-protocol
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@bd838c070cd8080aa7727e4c1fba64181101a1a3 -
Trigger Event:
push
-
Statement type: