Build an agent

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

  1. It makes a 32-byte nonce and asks the gateway for its attestation over that nonce.
  2. It verifies the TDX quote against Intel's root certificate with Phala's open verifier (@phala/aci-verifier, @phala/dcap-qvl), in the page.
  3. It recomputes the keyset digest and checks that the quote's report data binds that digest and the nonce.
  4. It checks the keyset has not expired and reads the compose hash measured into the quote.
  5. 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

PieceWhereHow you check it
Model inferenceGPU TEE upstream behind the gatewayGateway attestation with aci_verified routing
GatewayIntel TDX VMTDX quote verified in your browser
Bundle decryption, tool callsYour browser or your runnerYour own machine; the runner is /sdk/zeroagent.mjs, readable
Queue, listings, payment settlementZero Agent APIHolds 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