api.redpill.ai, tee.redpill.ai, and
inference.phala.com attests today. Use it to keep the pins in your verifier current. Each value comes
from a GitHub release in
Dstack-TEE/private-ai-gateway, and the
release is the authenticated source. Check a value against its release, not only against this page,
and never against a value copied from the endpoint.
Current values
Release:gateway-prod-2026-11-03,
live on all replicas since 2026-11-03 17:10 PST.
Application
KMS
mr-kms is the aggregated measurement of the dstack KMS instance that released the gateway’s keys.
A replica records it once, when it boots and requests its keys, so it reflects the KMS at that moment,
not the gateway code. If the KMS operator changed the KMS since the last boot, any restart records a
new value: a gateway rollout, a keyset renewal restart, host maintenance, or crash recovery. That is
why mr-kms changed on 2026-11-03 although the gateway does not control the KMS.
The KMS root key is the KMS identity that the workload keys derive from, and it stays the same across
KMS builds. To check which KMS serves the gateway, pin the KMS root key. Pin mr-kms only if you also
track KMS builds, and expect it to change without notice. The 3-day notice below does not cover these
KMS values: we publish a new release with the new value as soon as we see the change.
OS and virtual machine
RTMR0 depends on the VM configuration as well as the image: 32 vCPUs and 32 GiB of memory.
TLS keys
The keyset in each attestation lists these SPKI pins. The keys are derived from the KMS, so every replica serves the same ones.
Do not pin
instance-id, report_data, RTMR3 itself, or workload_keyset_digest. They differ
between replicas or change when the keyset renews.
Scheduled changes
None scheduled.Notice before a change
- At least 3 days before a gateway rollout that changes the compose hash, app ID, OS image, MRTD,
RTMR0-2, or TLS keys, we create a prerelease
gateway-prod-<date>inDstack-TEE/private-ai-gatewaywith the new values and the planned rollout window, and list it under Scheduled changes and in the changelog. - Add the new values to your allowlist next to the current ones.
acceptedComposeHashestakes a list for this reason. During a rollout, replicas switch one at a time, so both sets are served until the last replica is done. - KMS values (
mr-kms, KMS root key) are the exception described under KMS: they are published when they change, without advance notice. - An urgent security fix can ship with less notice. Its release states why.
- When every replica runs the new release, we mark the release as rolled out and update Current values. Remove the old values after that.
https://docs.redpill.ai/changelog/rss.xml, or
watch the repository’s releases on GitHub (Watch, Custom, Releases).
Check a release yourself
Each release attaches the exactapp_compose.json the workload measures. Recompute the compose hash
from that file and compare it with both the release notes and the live attestation:
docker_compose_file inside that JSON shows the
launcher image, the gateway commit, and every sidecar image, each pinned by digest. For the OS values,
run the dstack verifier on the quote,
event log, and VM configuration, as described in
Verify a response.