- It proves which code is running, in a real TEE, with an attestation report.
- It signs a per-response receipt that ties your exact request and response to that attested workload.
The two proof layers
Attestation report
Proves the gateway is a specific workload running in a genuine TEE, and publishes the keys it
signs with. Fetch it from
GET /v1/aci/attestation?nonce=.Signed receipt
Proves what the gateway received and returned for one request, signed by a key from the attested
report. Fetch it from
GET /v1/aci/receipts/{id}.Request flow
- You call the API over TLS, or add E2EE for field-level encryption.
- The gateway records your request and computes its hash.
- For a confidential model, the backend verifies the upstream provider and enforces a channel binding before forwarding. If it cannot, it does not send your prompt (fail-closed).
- The response returns through the gateway, which signs the receipt after it has observed the final response bytes.
Confidential vs routed models
The platform serves two kinds of models through the same TEE gateway. The difference is whether the upstream that runs the model is itself attested.| Confidential | Routed | |
|---|---|---|
| Upstream verified | Yes, before forwarding | No |
Receipt upstream.verified.result | verified | failed |
Receipt upstream.verified.required | true (fail-closed) | false |
| Attested session | Yes (session_id present) | No (session_id absent) |
| Who can see your prompt | Only the attested gateway and the attested upstream enclave | The attested gateway, then the third-party provider (for example OpenAI) |
Whether a response is confidential depends on the upstream provider that serves it, not on the model
id. Confirm it from the receipt:
upstream.verified.result is verified and required is true,
and upstream.verified.provider names the provider that served it. See
Confidential models.What you can verify
After one request you hold enough to check, locally:- The gateway is a genuine TEE workload with a known identity (attestation report).
- The receipt was signed by a key that report endorses.
- The signed request hash matches the request you sent, and the signed response hash matches the response you received.
- For a confidential model, the upstream was verified and the channel was bound before your prompt was forwarded.