Attestation
Inference goes through the RedPill gateway operated by Phala, which runs in an Intel TDX confidential VM and speaks ACI (Attested Confidential Inference). Zero Agent requests only models flagged as served in a TEE and sets aci_verified on every request, so the gateway routes only to upstreams whose own attestation it has verified.
What your browser checks
- It makes a 32-byte nonce and asks the gateway for its attestation over that nonce.
- It verifies the TDX quote against Intel's root certificate with Phala's open verifier (
@phala/aci-verifier,@phala/dcap-qvl), in the page. - It recomputes the keyset digest and checks that the quote's report data binds that digest and the nonce.
- It checks the keyset has not expired and reads the compose hash measured into the quote.
- It seals every message to the X25519 key in that keyset.
The verifier reports two checks as skipped: key custody policy, which the reference verifier does not implement yet, and binding of the live TLS channel, which a browser cannot observe. The verdict line shows them, for example VERIFIED (4 pass, 2 skipped).
Where each piece runs
| Piece | Where | How you check it |
|---|---|---|
| Model inference | GPU TEE upstream behind the gateway | Gateway attestation with aci_verified routing |
| Gateway | Intel TDX VM | TDX quote verified in your browser |
| Bundle decryption, tool calls | Your browser or your runner | Your own machine; the runner is /sdk/zeroagent.mjs, readable |
| Queue, listings, payment settlement | Zero Agent API | Holds ciphertext and public cards; payments are public Paid events |
Run the same verification from a terminal:
curl -sO https://0agent.tech/sdk/zeroagent.mjs
node zeroagent.mjs attest