Skip to main content

constellation-digital-evidence-sdk

License

Python SDK for the Digital Evidence Depository on Constellation Network. Create, sign, and submit cryptographic fingerprints for document notarization.

Install

pip install constellation-digital-evidence-sdk

# With network module:
pip install constellation-digital-evidence-sdk[network]

Modules

Core (default import) — pure cryptographic operations with no network dependencies.

Network (optional extra) — async HTTP client for the Digital Evidence Ingestion API. Requires httpx.

# Core — always available
from constellation_digital_evidence_sdk import generate_fingerprint, GenerateOptions

# Network — requires [network] extra
from constellation_digital_evidence_sdk.network import DedClient, DedClientConfig

Usage

Generate a signed fingerprint

from constellation_digital_evidence_sdk import (
    generate_fingerprint,
    GenerateOptions,
    validate_submission,
)
from constellation_sdk import generate_key_pair

key_pair = generate_key_pair()

submission = generate_fingerprint(
    GenerateOptions(
        org_id="550e8400-e29b-41d4-a716-446655440000",
        tenant_id="123e4567-e89b-12d3-a456-426614174000",
        event_id="7ca8c920-0ead-22e2-91c5-11d05fe540d9",
        document_id="contract-2024-001",
        document_content="This is my document content",
        include_metadata=True,
        tags={"department": "legal"},
    ),
    key_pair.private_key,
)

validate_submission(submission)

Submit to the API

from constellation_digital_evidence_sdk.network import DedClient, DedClientConfig

async with DedClient(DedClientConfig(
    base_url="http://localhost:8081",
    api_key="your-api-key",
)) as client:
    results = await client.fingerprints.submit([submission])
    detail = await client.fingerprints.get_by_hash(hash_value)
    stats = await client.fingerprints.get_stats()

Core API

Export Description
generate_fingerprint Create, sign, and package a fingerprint in one call
create_fingerprint_value Build the fingerprint value object
sign_fingerprint Sign a fingerprint value with a private key
hash_document SHA-256 hash a document (string or bytes)
validate_submission Validate a submission
FingerprintGenerator Reusable generator with stored config
compute_metadata_hash Compute deterministic metadata hash
create_metadata Create metadata with optional tags

Signature Protocol

The SDK implements SECP256K1_RFC8785_V1:

  1. Canonicalize JSON per RFC 8785
  2. SHA-256 hash the canonical bytes
  3. Convert hash to hex string, treat as UTF-8 bytes
  4. SHA-512 hash, truncate to 32 bytes
  5. Sign with SECP256K1 ECDSA

Development

python3 -m venv .venv
.venv/bin/pip install -e ".[dev]"
.venv/bin/pytest tests/ -v

License

Apache-2.0

Metadata

Release files for constellation-digital-evidence-sdk 0.3.1

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

Source distribution (sdist)

Source distribution for constellation-digital-evidence-sdk 0.3.1
File Size Uploaded Provenance Actions
constellation_digital_evidence_sdk-0.3.1.tar.gz 13.4 kB With provenance Details for constellation_digital_evidence_sdk-0.3.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for constellation-digital-evidence-sdk 0.3.1
File Interpreter ABI Platform Actions
constellation_digital_evidence_sdk-0.3.1-py3-none-any.whl Python 3 none any Details for constellation_digital_evidence_sdk-0.3.1-py3-none-any.whl

Total release size: 30.6 kB

Release files / constellation_digital_evidence_sdk-0.3.1.tar.gz

Download URL constellation_digital_evidence_sdk-0.3.1.tar.gz
Size 13.4 kB
Tags Source
SHA-256 checksum
How to use checksums
670a08ad5806087cb798f3c82261555a8961c5b5ab4913458386d3ceb5d3225d
BLAKE2b-256 checksum
How to use checksums
190f9b0f2c082f17b047e4dfa263b38a88a75116d32e8d76fa9f0fee40598977
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 1, 2026.

Transparency log

Release files / constellation_digital_evidence_sdk-0.3.1-py3-none-any.whl

Download URL constellation_digital_evidence_sdk-0.3.1-py3-none-any.whl
Size 17.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c5e0008129106d8074cd5142aa5d86bf084cab665c44c94d7060329bb0bfb0c5
BLAKE2b-256 checksum
How to use checksums
393c65cc9cb9a2695c85ee222ad80371348946c6f130d81289b10d324a79ff1d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 1, 2026.

Transparency log

Security for constellation-digital-evidence-sdk 0.3.1

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for constellation_digital_evidence_sdk-0.3.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 1, 2026.

Transparency log

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.

Release history Release notifications | RSS feed

This release

0.3.1 This release

2 release files Full provenance

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