Sign In

Evidence Bundles SDK

Access, download, and verify the sealed 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

List 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 artifacts
# Download a single artifact by ID
client.artifacts.download(
    artifact_id="<artifact-uuid>",
    path="contract_k.bin"
)

# Download the full sealed 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.

Verify evidence chain
# 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

MethodPathDescription
GET/v1/client/artifactsList artifacts (filter by job_id)
GET/v1/client/artifacts/{id}Get artifact metadata
GET/v1/client/artifacts/{id}/downloadDownload 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:

Verify determinism
# 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 identical

Compliance Use

✦Regulatory Frameworks

Evidence bundles serve as compliance deliverables for regulated environments. The sealed 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.