Evidence Bundles SDK
Access, download, and verify the signed evidence bundle programmatically.
Overview
Every generation job produces a signed, cryptographically-chained evidence bundle. This is unconditional -- the same on every plan tier and every dataset size. Evidence bundles cannot be disabled.
For a detailed explanation of each artifact, see Evidence Bundles.
Listing Artifacts
from radmah_sdk import RadMahClient
client = RadMahClient(api_key="sl_live_...")
# List all artifacts for a completed job
artifacts = client.artifacts.list(job_id="<job-uuid>")
for a in artifacts:
print(f"#{a.index} {a.artifact_type}")
print(f" Hash: {a.content_hash}")
print(f" Size: {a.size_bytes} bytes")Downloading Artifacts
# Download a single artifact by ID
client.artifacts.download(
artifact_id="<artifact-uuid>",
path="contract_k.bin"
)
# Download the full signed evidence bundle
client.artifacts.download_bundle(
job_id="<job-uuid>",
path="evidence/" # creates evidence/ directory with every artefact
)Verifying Artifacts
The cryptographic hashes in the evidence bundle form a tamper-evident chain. The final Evidence Seal artefact is a cryptographic seal binding every artefact. You can verify this chain independently.
# Trigger server-side verification
verify_job = client.jobs.create(
kind="verify",
job_id="<original-job-uuid>"
)
verify_job.wait()
# Result includes per-artifact verification status
print(verify_job.result)
# {
# "verified": true,
# "artifacts_checked": <count>,
# "seal_valid": true,
# "determinism_proof_valid": true
# }REST API
| Method | Path | Description |
|---|---|---|
| GET | /v1/client/artifacts | List artifacts (filter by job_id) |
| GET | /v1/client/artifacts/{id} | Get artifact metadata |
| GET | /v1/client/artifacts/{id}/download | Download artifact content |
Determinism Verification
The Determinism Proof artefact contains the cryptographic hash of the generated output. To verify determinism, rerun the job with the same seal and compare hashes:
# Original job
original = client.artifacts.list(job_id="<original-job>")
original_hash = next(
a.content_hash for a in original
if a.artifact_type == "determinism_proof"
)
# Rerun with same seed
rerun = client.jobs.rerun(job_id="<original-job>")
rerun.wait()
rerun_artifacts = client.artifacts.list(job_id=rerun.id)
rerun_hash = next(
a.content_hash for a in rerun_artifacts
if a.artifact_type == "determinism_proof"
)
assert original_hash == rerun_hash # Bit-for-bit identicalCompliance Use
✦Regulatory Frameworks
Evidence bundles serve as compliance deliverables for regulated environments. The signed evidence bundle provides documented provenance suitable for NERC CIP, IEC 62443, NIST SP 800-82, and similar regulatory frameworks. Each artefact is independently verifiable without access to RadMah AI infrastructure.