Skip to main content

archon sdk — Python

One layer above the identity floor: proof of possession and the signed envelope.

pip install bitspark-archon-sdk

The distribution is bitspark-archon-sdk; the import is archon_sdk. It depends on bitspark-archon-core and nothing else, and pip installs the floor with it.

from archon_core import public_key_from_seed
from archon_sdk import envelope, possession

seed = bytes(range(32))
pub  = public_key_from_seed(seed)

# Proof of possession: the challenger picks the nonce and the channel binding.
nonce, binding = bytes(range(16)), b"tls-exporter-bytes"
proof = possession.prove(seed, "example/pop/v1", nonce, binding)
possession.verify(pub, "example/pop/v1", nonce, binding, proof)        # True
possession.verify(pub, "example/pop/v1", nonce, b"another channel", proof)  # False

# The signed envelope: the verifier chooses the domain, never the envelope.
sealed = envelope.seal(seed, "example/env/v1", b"payload")
opened = envelope.open(sealed, "example/env/v1")   # Opened(pubkey=…, payload=b'payload')
envelope.open(sealed, "example/env/other")         # ValueError: claims a different domain

What it is

possession prove, verify, message_bytes — can they sign, right now, for this channel? — and prepare, complete, prove_with
envelope seal, open, message_bytes, Opened — these bytes, signed by this key, in this domain — and prepare_seal, complete_seal, seal_with
signer Signer, SigningRequest, Raw, PhContext, Capabilities, SeedSigner, sign_with, check_signature — sign through a signer instead of a seed (ADR 0009 §4): the request is validated and the signer's capabilities checked before it is called, and every signature it returns is verified against what was asked for

Both sign in the caller's domain through archon_core.sign_in_domain, and each prefixes its layout with a one-byte scheme tag so a possession proof and an envelope payload in the same domain can never be the same bytes.

Entropy, time and channel binding are arguments. This package never sources them, which is what makes every byte it emits a deterministic function of its inputs. Verification is total: possession.verify returns False on any shape failure and never raises; envelope.open raises ValueError and never returns an unverified payload.

Not here yet: the login scheme. The Go, Rust and TypeScript sdks also carry archon-login/1 (docs/login.md); this one does not.

Agreement is the claim

This sdk is held to the same hand-authored oracle as the Go, Rust and TypeScript sdks — 38 cases in vectors/sdk.json, recomputed rather than echoed. If it disagrees with them about a proof or an envelope, that disagreement is the defect.

Verification

node conformance/check-py-sdk.mjs          # the oracle, against this tree
node conformance/check-py-sdk-package.mjs  # the built wheel, installed from nothing

License

Apache-2.0.

Metadata

Release files for bitspark-archon-sdk 0.10.0

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

Source distribution (sdist)

Source distribution for bitspark-archon-sdk 0.10.0
File Size Uploaded Provenance Actions
bitspark_archon_sdk-0.10.0.tar.gz 19.0 kB With provenance Details for bitspark_archon_sdk-0.10.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for bitspark-archon-sdk 0.10.0
File Interpreter ABI Platform Actions
bitspark_archon_sdk-0.10.0-py3-none-any.whl Python 3 none any Details for bitspark_archon_sdk-0.10.0-py3-none-any.whl

Total release size: 36.1 kB

Release files / bitspark_archon_sdk-0.10.0.tar.gz

Download URL bitspark_archon_sdk-0.10.0.tar.gz
Size 19.0 kB
Tags Source
SHA-256 checksum
How to use checksums
dff7f493d36cd7af250928e38a273ec3d3bda19771f7885c5b008c7e2688a263
BLAKE2b-256 checksum
How to use checksums
374b8c252100bb5ca8d30c4c56be8bd7de68f93a188edc52b3830e2a2db33a03
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Oct 5, 2026.

Transparency log

Release files / bitspark_archon_sdk-0.10.0-py3-none-any.whl

Download URL bitspark_archon_sdk-0.10.0-py3-none-any.whl
Size 17.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5b59d2d9215eaed5eec7cf5722c061abb4f7499ab86905f841d2fe421b303ebb
BLAKE2b-256 checksum
How to use checksums
c10716293230921ac2446a293e3ed7da6ee9433c97072fccdc7a434487aebc3e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Oct 5, 2026.

Transparency log

Security for bitspark-archon-sdk 0.10.0

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

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for bitspark_archon_sdk-0.10.0.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 Oct 5, 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.

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