Understanding the Privacy Levels
| Type | Prefix | What It Means |
|---|---|---|
| TEE | tee-* | Model runs in a hardware-secured enclave. Venice cannot access the computation. You can verify this with attestation. |
| E2EE | e2ee-* | Full end-to-end encryption. Your prompts are encrypted client-side before being sent. Only the TEE can decrypt them. |
E2EE models include TEE protection plus client-side encryption. TEE models provide enclave security without requiring client-side encryption.
Available Models
Loading…
Check the Models page for the full list with pricing and context limits.
TEE Models
TEE models run inside hardware-secured enclaves (Intel TDX, NVIDIA Confidential Computing). The model weights and your data are protected from the host system—including Venice’s infrastructure.Basic Usage
TEE models work exactly like regular models:Verifying TEE Attestation
You can cryptographically verify that a model is running in a genuine TEE by fetching its attestation report:| Field | Description |
|---|---|
verified | Whether the attestation passed server-side verification |
nonce | Your nonce, confirming freshness |
model | The attested model ID |
tee_provider | TEE provider identifier |
intel_quote | Raw Intel TDX quote (base64) for client-side verification |
nvidia_payload | NVIDIA GPU attestation data (if applicable) |
signing_key | Public key for verifying response signatures (typically required for E2EE flows; may be omitted for some plain TEE models) |
signing_address | Ethereum address derived from signing key |
For plain TEE model verification,
signing_address and server-side verification fields are sufficient for baseline attestation checks. A signing_key is required when you need client-side E2EE key agreement and strict key-binding checks.Response Signatures
TEE models can sign their responses, proving the output came from the attested enclave:E2EE Models
E2EE models add client-side encryption on top of TEE protection. Your prompts are encrypted before leaving your device, and only the TEE can decrypt them.How E2EE Works
E2EE Request Headers
When making E2EE requests, include these headers:| Header | Description |
|---|---|
X-Venice-TEE-Client-Pub-Key | Your ephemeral public key (hex-encoded) |
X-Venice-TEE-Signing-Algo | Signature algorithm (use ecdsa) |
X-Venice-TEE-Model-Pub-Key | Model’s public key from attestation |
Encryption Format
Messages are encrypted as hex-encoded ciphertext:- Nonce: 12 random bytes (24 hex chars)
- Ciphertext: AES-256-GCM encrypted content
- Tag: 16-byte authentication tag (32 hex chars)
Example Flow
E2EE Limitations
| Feature | Status |
|---|---|
| Streaming | Required (non-streaming not supported) |
| Web search | Disabled (would leak content) |
| File uploads | Not supported |
| Function calling | Not supported |
| Venice system prompt | Disabled (must be encrypted client-side) |
Using Venice CLI
The Venice CLI handles all TEE verification and E2EE encryption automatically:Best Practices
Always verify attestation in production
Always verify attestation in production
Don’t just trust the
verified: true response. Parse the Intel TDX quote client-side and verify the measurements match expected values. For NVIDIA GPUs, check the attestation via NVIDIA’s verification service.Use fresh nonces
Use fresh nonces
Always generate a new random nonce for each attestation request. This prevents replay attacks where an attacker could serve a stale attestation.
Verify key binding
Verify key binding
The signing key should be bound to the TDX REPORTDATA field. This proves the key was generated inside the enclave.
Check for debug mode
Check for debug mode
Verify the TDX attestation doesn’t have debug flags set. A debug enclave can be inspected and should not be trusted for production.
Use our SDKs for E2EE
Use our SDKs for E2EE
E2EE requires careful cryptographic implementation. Use our official SDKs rather than implementing the protocol yourself.
Checking Model Capabilities
You can check if a model supports TEE or E2EE via the models endpoint:Error Handling
| Error | Cause | Solution |
|---|---|---|
TEE attestation verification failed | Attestation didn’t pass validation | Retry or contact support |
Attestation nonce mismatch | Possible replay attack | Generate a fresh nonce |
TDX debug mode detected | Enclave is in debug mode | Don’t use for production |
Failed to decrypt field | E2EE decryption failed server-side | Check your encryption implementation |
E2EE requires streaming | Non-streaming request to E2EE model | Set stream: true |
Resources
- Venice CLI - Command-line tool with built-in TEE/E2EE support
- Intel TDX Documentation
- NVIDIA Confidential Computing