Skip to main content

Independent verification and audit layer for AI agent decisions

Project description

DarkMatter Python SDK

Install: pip install darkmatter-sdk
PyPI: https://pypi.org/project/darkmatter-sdk/
Docs: https://darkmatterhub.ai/docs


Quickstart (L1/L2)

import darkmatter as dm

dm.configure(api_key="dm_sk_...")

ctx = dm.commit(
    to_agent_id="dm_your_agent_id",
    payload={"input": "approve refund?", "output": "approved"},
)
print(ctx["verify_url"])

L3 Non-repudiation (customer-signed)

L3 means DarkMatter cannot forge your records — every commit is signed with a key only you hold, before it reaches DarkMatter's servers.

One-time setup

# Generate Ed25519 keypair
openssl genpkey -algorithm ed25519 -out my-signing-key.pem
openssl pkey -in my-signing-key.pem -pubout -out my-signing-key.pub
import darkmatter as dm

dm.configure(api_key="dm_sk_...")

# Register your public key once
dm.register_signing_key(
    key_id="my-signing-key",
    public_key_path="my-signing-key.pub",
)
# Add to .env — then dm.commit() is identical, every commit is L3
DARKMATTER_SIGNING_MODE=customer
DARKMATTER_SIGNING_KEY_ID=my-signing-key
DARKMATTER_SIGNING_KEY_PATH=./my-signing-key.pem

Usage (unchanged after setup)

import darkmatter as dm

# SigningConfig loaded automatically from env
dm.configure(
    api_key="dm_sk_...",
    signing=dm.SigningConfig.from_env(),   # reads DARKMATTER_SIGNING_* vars
)

# commit() is identical — L3 attestation added transparently
ctx = dm.commit(
    to_agent_id="dm_your_agent_id",
    payload={"input": "approve refund?", "output": "approved"},
    metadata={"model": "claude-sonnet-4-6"},
)
print(ctx["assurance_level"])   # "L3"
print(ctx["verify_url"])        # shows L3 badge — signed by your key

Per-call override

cfg = dm.SigningConfig(
    key_id="my-signing-key",
    private_key_path="my-signing-key.pem",
)

ctx = dm.commit(
    to_agent_id="dm_agent_id",
    payload={...},
    signing=cfg,   # override for this call only
)

Key management

import darkmatter as dm

dm.configure(api_key="dm_sk_...")

# List registered keys
keys = dm.list_signing_keys()

# Revoke a key (existing records unaffected)
dm.revoke_signing_key("my-signing-key")

Verify test vectors (SDK release gate)

Before any SDK release, all 3 envelope test vectors must pass:

import darkmatter as dm

result = dm.run_envelope_test_vectors("../../test-vectors-envelope-v1.json")
assert result["passed"], result["results"]
print("All vectors passed")

Envelope spec

L3 signing implements ENVELOPE_SPEC_V1.md at the repo root. Canonical serialization: keys sorted recursively, no whitespace, UTF-8, no escaped Unicode.

sha256(canonical_json(envelope))  →  signed with Ed25519 private key

Environment variables

Variable Description
DARKMATTER_API_KEY Your DarkMatter API key (dm_sk_...)
DARKMATTER_AGENT_ID Your agent ID (dm_...)
DARKMATTER_SIGNING_MODE customer to enable L3
DARKMATTER_SIGNING_KEY_ID Key identifier (must match registered key)
DARKMATTER_SIGNING_KEY_PATH Path to Ed25519 private key PEM
DARKMATTER_SIGNING_KEY_PEM Inline PEM string (alternative to path)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

darkmatter_sdk-1.4.0.tar.gz (36.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

darkmatter_sdk-1.4.0-py3-none-any.whl (38.3 kB view details)

Uploaded Python 3

File details

Details for the file darkmatter_sdk-1.4.0.tar.gz.

File metadata

  • Download URL: darkmatter_sdk-1.4.0.tar.gz
  • Upload date:
  • Size: 36.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for darkmatter_sdk-1.4.0.tar.gz
Algorithm Hash digest
SHA256 7fc5dfaa8fb8fc94573f05ff507d7a04e0cb03c9394a923a3f832596b95c39eb
MD5 6564a3a348a8b5a8e50eae599ffb0de9
BLAKE2b-256 7479846c5db0fe79c3929898eb274a510e76abc4f069b66594c590f04a6fc31f

See more details on using hashes here.

File details

Details for the file darkmatter_sdk-1.4.0-py3-none-any.whl.

File metadata

  • Download URL: darkmatter_sdk-1.4.0-py3-none-any.whl
  • Upload date:
  • Size: 38.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for darkmatter_sdk-1.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3f99f48cc216dff12c162f98ca66d01f172c4536bb5fddff4e583d5cc81a4b78
MD5 0eab5fc2fa0bcef504d9690c5c096f26
BLAKE2b-256 88ade00d9741a833cb05eb399f92f8236d1000a94a8dcef6e149a279c30a4397

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page