For engineers and auditors

Verify a receipt

Every claim on this site is meant to be checkable without trusting us. The open verifier grades any Epheia Privacy Receipt against all 27 steps of the EPR-1.4 protocol, free, with no account, and it will load a real receipt from a live session in one click.

Under the hood

  • The format. The Epheia Privacy Receipt is open and vendor-neutral. The published specification covers EPR-1.1 and its 16-step verification protocol. Receipts issued today are EPR-1.4 and the protocol has grown to 27 steps, adding measured-boot workload identity, proof of erasure, transparency-log closure, differential-privacy budget accounting, and per-component attestation for the vision enclave. Those steps postdate the paper, so the open verifier is the reference for them.
  • Check one yourself. The widget below runs the core cryptographic checks in your browser. verifier.epheia.ai grades any receipt against all 27 steps. Every receipt is anchored in a public, append-only transparency log .
  • The running system. Text, images and PDFs across two measured-boot confidential H100 enclaves, in private beta at free.epheia.ai. Sessions run by appointment, since the GPUs are brought up per session rather than left running.
  • Fail-closed by default. The egress gate blocks model output until verification passes. If any check fails, nothing leaves the trust boundary. Policy you can prove, not policy you assert.
  • Receipts only, never transcripts. The receipt proves what happened without storing the data it protected. No transcripts, no raw prompts, no identifiers retained.

What the 27 steps cover

  • Receipt digest recomputation and ECDSA P-384 signature over RFC 8785 canonical JSON
  • Attestation chain to a pinned root: vTPM quote, attestation key, AMD SEV-SNP report, AMD root
  • Measured-boot workload identity via guest PCR 4, independent of the cloud provider's attestation service
  • GPU attestation: a genuine NVIDIA H100 running in confidential-compute mode
  • Proof of erasure: zero-state commitment, wipe algorithm, and a post-wipe canary decryption that must fail
  • Public transparency-log inclusion and loop closure
  • Differential-privacy budget accounting, when a session opted into learning

Receipts-only verification; no transcripts or identifiers are retained. The grading logic is the same protocol the open epheia-verify CLI runs, so any result can be re-checked without trusting this service.

Reference receipt and Quick Verify

The EPR-1.4 field reference, plus a client-side verifier you can paste your own compact JWS receipt into.

EPR-1.4 Receipt | Public Reference

The JSON below is the EPR-1.4 field reference. Quick Verify is separate: it runs core cryptographic checks in your browser against a legacy demonstration payload, not against this EPR-1.4 schema. Real EPR-1.4 receipts are graded against all 27 steps by the open verifier. The white paper specifies the earlier 16-step EPR-1.1.

Download
  {
  "version": "EPR-1.4",
  "receipt_profile": "EPR-1.4-full",
  "receipt_id": "rec_XXXXXXXX",
  "issued_at": "2026-01-01T00:00:00.000Z",
  "session_id": "sess_XXXXXXXX",
  "action": "chat",
  "freshness": {
    "nonce": "<base64url-≥16-bytes>"
  },
  "receipt_digest": "sha256:<64-hex>",
  "receipt_signature": "ecdsa-p384-sha384:<base64url-der-sig>",
  "decision": "RELEASE",
  "response_ciphertext_digest": "sha256:<64-hex>",
  "signature_policy": "dual",
  "attestation_mode": "periodic",
  "attestation_policy": {
    "tau_ms": 500
  },
  "attestation_chain_root": "sha256:<64-hex>",
  "attestations": [
    {
      "kind": "start",
      "ts": "2026-01-01T00:00:00.000Z",
      "freshness_counter": 0,
      "component": "leaf",
      "platform": "AMD-SEV-SNP",
      "state_digest": "sha256:<64-hex>",
      "evidence_format": "amd-sev-snp-report",
      "evidence_digest": "sha256:<64-hex>",
      "signatures": [
        {
          "role": "enclave",
          "sig": "ecdsa-p384-sha384:<base64url-der-sig>"
        },
        {
          "role": "hypervisor",
          "sig": "ecdsa-p384-sha384:<base64url-der-sig>"
        }
      ]
    },
    {
      "kind": "heartbeat",
      "ts": "2026-01-01T00:00:00.500Z",
      "freshness_counter": 1,
      "component": "leaf",
      "platform": "AMD-SEV-SNP",
      "state_digest": "sha256:<64-hex>",
      "evidence_format": "amd-sev-snp-report",
      "evidence_digest": "sha256:<64-hex>",
      "signatures": [
        {
          "role": "enclave",
          "sig": "ecdsa-p384-sha384:<base64url-der-sig>"
        },
        {
          "role": "hypervisor",
          "sig": "ecdsa-p384-sha384:<base64url-der-sig>"
        }
      ]
    },
    {
      "kind": "stop",
      "ts": "2026-01-01T00:00:01.000Z",
      "freshness_counter": 2,
      "component": "leaf",
      "platform": "AMD-SEV-SNP",
      "state_digest": "sha256:<64-hex>",
      "evidence_format": "amd-sev-snp-report",
      "evidence_digest": "sha256:<64-hex>",
      "signatures": [
        {
          "role": "enclave",
          "sig": "ecdsa-p384-sha384:<base64url-der-sig>"
        },
        {
          "role": "hypervisor",
          "sig": "ecdsa-p384-sha384:<base64url-der-sig>"
        }
      ]
    }
  ],
  "certs": [
    "<leaf-cert-pem>",
    "<root-cert-pem>"
  ],
  "key_material_by_kid": {
    "<kid>": "sha256:<cert-fingerprint>"
  },
  "platform_report": {
    "platform": "AMD-SEV-SNP",
    "image_digest": "sha256:<64-hex>",
    "cadence_ms": 500
  },
  "network_policy": [
    "self-origin"
  ],
  "policy_state_digest": "sha256:<64-hex>",
  "dp_tuple": {
    "enabled": true,
    "mech": "gaussian",
    "adjacency": "add_remove",
    "clip": {
      "norm": "l2",
      "bound": "1"
    },
    "sensitivity": {
      "norm": "l2",
      "bound": "1",
      "source": "derived_from_clip"
    },
    "guarantee": {
      "type": "approx_dp",
      "epsilon": "0.3",
      "delta": "0.00001"
    },
    "calibration": {
      "rule": "dwork_roth_1p25"
    },
    "params": {
      "sigma": "4"
    },
    "tuple_digest": "sha256:<64-hex>"
  },
  "update_digest": "sha256:<64-hex>",
  "zeroization_report_digest": "sha256:<64-hex>",
  "teardown_digest": "sha256:<64-hex>",
  "transcript_commitment": {
    "scheme": "hmac-sha256",
    "value": "<64-hex>",
    "key_id": "tls-exporter:<b64url>"
  },
  "connector_selection": [
    {
      "name": "file.pdf",
      "sha256": "<64-hex>"
    }
  ],
  "transparency_merkle_root": null,
  "verifier_url": "https://epheia.ai/api/receipt/sess_XXXXXXXX"
}
            
Quick verification is client-side only; no backend calls.

Run the full 27-step verification on a real receipt →

From the command line

Submit any receipt directly. The verifier runs on separate infrastructure from the enclaves, so a passing result is not the enclave grading itself.

curl -sS -X POST https://verifier.epheia.ai/v1/verify \
  -H 'content-type: application/json' \
  --data-binary @- <<< "$(jq '{receipt: .}' rcpt_*.json)"

What we publish about the limits

A brand built on verifiable claims has to volunteer the caveats. These are current as of August 2026.

Live and graded today

  • Trust boundary is a hardware TEE: an AMD SEV-SNP confidential VM with the NVIDIA H100 in Confidential Computing mode.
  • The workload is hardware-measured into the boot, at guest PCR 4, not self-asserted.
  • Session data is encrypted per-session in memory, crypto-erased at session end, and that erasure is graded in the receipt.
  • The transparency log is active and publicly auditable on this beta.
  • DP-bounded learning is live, strictly opt-in and off by default, with the epsilon and delta guarantee committed in every receipt.

Known gaps, stated plainly

  • Hardware attestation is live and graded, and it carries one honest firmware warning rather than a clean pass.
  • Transparency-log witness cosigning is built and wired, but the step still skips until enough independent witnesses are recruited and the policy is pinned.
  • The white paper specifies EPR-1.1 and 16 steps. Receipts issued today are EPR-1.4 with 27 steps, so for the newer steps the open verifier is the reference, not the paper.
  • Sessions run by appointment. The GPUs are brought up per session, so the chat is not continuously available even though the verifier always is.
  • Healthcare deployment is a direction we are pursuing. The production posture supports HIPAA-compliant deployment; it is not a product you can buy today.

Found something we got wrong? That is the most useful thing you can send us. Tell us and we will correct it →