Sample evidence package · v1.0.0 · May 2026

Run the verifier on your laptop. Verify the receipt yourself, without trusting us.

A buyer-runnable sample of an Evidence Fabric package. Synthetic healthcare scenario. Real Ed25519 cryptography. Offline verifier with no vendor dependency. Download, install one Python package, run the verifier. PASS means the signatures and hashes verify against the published public key.

Individual files are browsable at verticaledgeai.ai/sample-package/. The methodology behind the package is published here.

What is in the package

Eleven files, all readable in any text editor. The package uses real Ed25519 cryptography against synthetic data. The eight files below ship with three more — public_key.json (required by the verify command), verifier_transcript.txt (the recorded verifier run, every mode), and the MIT LICENSE.

FilePurposeApprox size
receipt.json One fully-signed receipt for a synthetic healthcare workflow (chart summarization for referral letter). Records inputs, classification, policy decision, provider routing, response, signature. 2.2 KB
manifest.json Lists ten signed-package artifacts with SHA-256 hashes and an audit period — every file in the package except the manifest itself, which cannot carry its own hash. The recorded transcript is deterministic and is hashed here like the rest. 3.3 KB
framework_mapping.md Illustrative topic crosswalk for NIST AI RMF and EU AI Act topics. HIPAA and Reg S-P control mappings are excluded; the table makes no control-satisfaction claim. Two rows carry footnotes marking what the sample does not stand behind. 4.2 KB
README.md Package overview, verification instructions, sanitization notes, intended use. 19.4 KB
verifier_cli.py Standalone Python 3 verifier. Single file, five modes: single receipt, manifest, chain walk, whole session export, and an offline self-test. Depends on two packages, cryptography and rfc8785. No vendor SDK, no phone-home, no version pinning beyond Python 3.9+. 138 KB
sign_and_verify.py One-shot build script: derives the synthetic keypairs, signs the receipt, the session export and the manifest, runs the verifier in every mode, captures the transcript. Reproducible from scratch by anyone with Python 3. 22 KB
session_export.json A synthetic session export: a three-event hash-linked chain signed under RFC 8785 JCS, the legacy-canonicalized receipt, and a chain-tip anchor, all inside one signed envelope. This is what --chain and --session-export run against. 6.3 KB
public_keyring.json Public-only keyring: one active key and one retired key, so verification across a signing-key rotation can be run against the sample rather than described. 0.6 KB

The topic crosswalk and methodology are published as markdown; HIPAA and Reg S-P control mappings are excluded and no control-satisfaction claim is made.

How to verify (3 steps)

Run time depends on the local Python environment; no completion-time benchmark is claimed.

  1. Download the package. Download the ZIP (225 KB; SHA-256 35ab06cf906b05965ad8962e5e80fb98a744d4990ba3ee41b314e210c259e868), or pull the individual files from sample-package/.
  2. Install the dependencies.
    pip install cryptography rfc8785
    Those are the only Python packages the verifier requires. cryptography does Ed25519; rfc8785 does the JSON canonicalization used by artifacts stamped rfc8785-jcs-v1. Requires Python 3.9+; developed and verified on Python 3.12 with cryptography 46.x and rfc8785 0.1.x.
  3. Run the verifier.
    python verifier_cli.py --receipt receipt.json --public-key-file public_key.json
    Expected output:
    == VeilEngine Receipt Verifier ==
    Loading receipt: receipt.json
    Receipt: VERIFIED
      receipt rcpt_2026-05-18T14:32:11Z_a1b2c3d4: signature verified [ve-canonical-json-v1]; declares key id vke_synthetic_2026-05
    
    Overall: PASS
    The verifier exits with code 0 on PASS, 1 on FAIL, 2 on an argument or environment error.
  4. Walk the chain. The session export carries three hash-linked events. This replays the links and each event’s signature, stopping at the first break:
    python verifier_cli.py --chain session_export.json --public-key-file public_key.json
    Recorded output:
    == VeilEngine Receipt Verifier ==
    Loading chain: session_export.json
      event[0] sequence=0: PASS (metadata hash + chain link + signature)
      event[1] sequence=1: PASS (metadata hash + chain link + signature)
      event[2] sequence=2: PASS (metadata hash + chain link + signature)
    Chain: VERIFIED (3 events); declares key id vke_synthetic_2026-05
    
    Overall: PASS
  5. Verify the export whole. One command checks the envelope signature, the chain, every receipt under its own canonicalization, the manifest hashes, the binding that holds the bundle, the chain wrapper, every event and every receipt to one session and one tenant — each of those layers has to declare both, and a receipt that declares its identity at two paths has to declare it the same way at both — and the recomputed chain-tip anchor:
    python verifier_cli.py --session-export session_export.json --public-key-file public_key.json
    Recorded output:
    == VeilEngine Receipt Verifier ==
    Loading session export: session_export.json
      [PASS] envelope  signature verified [rfc8785-jcs-v1]; declares key id vke_synthetic_2026-05
      [PASS] chain     3 events; prev_event_hash links + per-event signatures; declares key id vke_synthetic_2026-05
      [PASS] receipts  1 receipt(s) verified under their own canonicalization; declares key id vke_synthetic_2026-05
      [PASS] manifest  signature verified [ve-canonical-json-v1]; 10 artifact hashes match; declares key id vke_synthetic_2026-05
      [PASS] binding   bundle, chain wrapper, 3 event(s) and 1 receipt(s) all declare session sess_synthetic_clinic_001 and tenant tenant_synthetic_demo
      [PASS] anchor    chain tip recomputed: 3 events, sha256-rfc8785-jcs-v1
    Session export: VERIFIED
    
    Overall: PASS

To verify the manifest and its artifact hashes on their own, point the verifier at the manifest: python verifier_cli.py --manifest manifest.json --public-key-file public_key.json. To verify against the pinned keyring instead of a single key — the path that survives a signing-key rotation — swap the key flag: python verifier_cli.py --session-export session_export.json --public-keyring-file public_keyring.json. Keyring verification also requires the chain-tip anchor, so a truncated export cannot pass it. To check the verifier before trusting its verdict, run python verifier_cli.py --self-test: it signs a payload that canonicalizes differently under each supported scheme and confirms the tool rejects a modified payload, a wrong key, a signature made under the wrong canonicalization, an unrecognized canonicalization identifier, a receipt spliced in from another session, a receipt carrying a different tenant, a bundle or chain wrapper that declares no tenant, a receipt that declares conflicting identities at its nested and top-level paths, an identity declared at a present path as anything but a non-empty string, conflicting key ids at an object’s two key-id paths, a wrong root shape for any mode, a manifest descriptor that is empty, untyped or escaping the package directory, a JSON object that names one key twice, an event declaring a false hash of itself, unsigned fields beside the signed export in its wrapper, an artifact dated outside its key’s validity window, a missing or stale chain anchor, and a keyring whose key descriptors are malformed, duplicated, aliased or carrying private-key material.

What the package demonstrates (and what it does not)

The package demonstrates

  • The Evidence Fabric methodology produces real, structured, cryptographically-signed artifacts
  • The verifier runs without vendor dependencies (only cryptography and rfc8785 + Python 3)
  • An auditor with the public key can verify a receipt’s signature, the hash-linked event chain, and the manifest’s artifact hashes, without trusting Vertical Edge AI
  • The hash-linked chain-of-receipts pattern ships in the verifier, not only in the schema: --chain replays the links, --session-export checks the whole export. The cross-session transparency log and its inclusion evidence stay on the roadmap, and the receipt says so in its own transparency_log_inclusion_proof_status field
  • The signing path is documented and byte-for-byte reproducible (see sign_and_verify.py)

The package does not demonstrate

  • That Vertical Edge AI has deployed VeilEngine in production with customers. The separate production field note does not establish VeilEngine use.
  • That the methodology is correct for your specific regulatory framework (your auditor and counsel interpret)
  • That the AI providers in the routing example (Claude, GPT, Gemini) retained or did not retain the data (vendor-side claim; this package records what the operator did, not what the provider then did)
  • That the policy versioning in your environment is equivalent to the sample (your operator configures policy; the Evidence Fabric records what was in force)

Synthetic-data notice

The receipt records a hypothetical workflow at a fictional mid-market healthcare clinic. The patient name, MRN, DOB, diagnosis codes, and clinician identity are entirely synthetic and are labeled "synthetic": true in the receipt metadata. No real clinical data appears in any artifact.

The signer key (vke_synthetic_2026-05) is a synthetic Ed25519 keypair generated solely for the sample. The private key is intentionally exposed in sign_and_verify.py so anyone can regenerate the signatures and confirm the verification path. The sample does not establish any production signing arrangement.

The package uses Ed25519 signatures, SHA-256 hashes, and JSON canonicalization against synthetic artifacts. It establishes only the behavior a buyer can reproduce with this sample and verifier.

Next steps

If the package verifies cleanly on your laptop and the methodology aligns with how your auditors think about evidence, the next step is a scoped conversation on your specific regulatory perimeter.

Vertical Edge AI is not an audit firm. The package is published to demonstrate the Evidence Fabric methodology, not to substitute for an audit opinion.