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.
{
"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"
}
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 →