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.3.0.tar.gz (34.8 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.3.0-py3-none-any.whl (36.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: darkmatter_sdk-1.3.0.tar.gz
  • Upload date:
  • Size: 34.8 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.3.0.tar.gz
Algorithm Hash digest
SHA256 0b565a1049f6a57c766971961de00146863bd7d05c6032b206993fb95b20457f
MD5 575288ed1f3a36aa63d129baa70dc2fa
BLAKE2b-256 b667ea6262740a4fc02b6d796164f86733b285c870603886ca7261b6b158a593

See more details on using hashes here.

File details

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

File metadata

  • Download URL: darkmatter_sdk-1.3.0-py3-none-any.whl
  • Upload date:
  • Size: 36.9 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.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 806d52dfa2890f68cc9f7fa75d0b8b9588055b4dd72622fd598ea31a5a1f2299
MD5 a956dd7f170c8df63e2104ce713c6259
BLAKE2b-256 14b700eb67e2a4d4290937663181ba5256f16bc4b3dc60d20f2880d36f09520f

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