Evidence Verification Guide
How to verify quantum-signed evidence bundles in SoftQCOS Evidence.
Overview
SoftQCOS Evidence bundles combine:
- Raw data (documents, logs, screenshots)
- Quantum entropy hash (real hardware entropy)
- ML-DSA-65 signature (post-quantum cryptographic proof)
- Merkle tree root (tamper detection across bundle items)
Verification proves the bundle has not been altered since creation.
Verify a Bundle
SDK
from softqcos.evidence import EvidenceClient
client = EvidenceClient(api_key="your-api-key")
result = client.verify_bundle(bundle_id="evb_abc123")
print(result.is_valid) # True
print(result.quantum_fidelity) # 0.96
print(result.item_count) # 12
print(result.all_items_valid) # True
CLI
softqcos evidence verify --bundle-id evb_abc123
Output:
✅ Evidence bundle verified
Bundle ID: evb_abc123
Items: 12/12 valid
Quantum Fidelity: 0.96
Signed at: 2026-03-23T14:22:11Z
Algorithm: ML-DSA-65 (FIPS 204)
REST API
curl https://api.softquantus.com/v1/evidence/bundles/evb_abc123/verify \
-H "Authorization: Bearer $API_KEY"
Verify Individual Items
Check specific files within a bundle:
items = client.list_bundle_items(bundle_id="evb_abc123")
for item in items:
result = client.verify_item(bundle_id="evb_abc123", item_id=item.id)
status = "✅" if result.is_valid else "❌"
print(f"{status} {item.filename}")
Offline Verification
Evidence bundles are self-contained and can be verified without network access:
from softqcos.evidence import verify_offline
with open("evidence_bundle_export.zip", "rb") as f:
bundle_data = f.read()
result = verify_offline(bundle_data)
print(result.is_valid)
print(result.verified_items)
Share Verification with Third Parties
Generate a public verification URL for sharing with courts, auditors, or regulators:
link = client.create_verification_link(
bundle_id="evb_abc123",
expires_in_days=30,
require_viewer_identity=False
)
print(link.url)
# https://verify.softquantus.com/evb_abc123?token=...