TrustGate is a verifiable execution environment for AI agents. Approved WebAssembly workloads run inside an AWS Nitro Enclave, and every result comes back with a signed proof receipt. Don't trust the host or the agent's output: check the receipt.
Proof of execution and environment, not proof of correctness.
An MCP agent submits a job. It runs in an isolated, measured, attested environment, under deny-by-default capabilities and resource limits. What comes back is the result plus a receipt that proves it, not a promise.
An agent calls an MCP tool with an approved, publisher-signed workload and an input.
The workload runs in wazero inside a measured Nitro Enclave. No capabilities unless granted, with CPU and memory limits.
AWS attests to the enclave image. The receipt-signing key is bound to that Nitro attestation document. Receipts are hash-chained and Ed25519-signed.
Anyone checks the receipt against the AWS root CA and a pinned measurement, from somewhere else. Deterministic jobs can be replayed.
Edited receipts, changed inputs and wrong pinned measurements all fail verification. These are covered by attack tests and were run on real hardware.
AWS KMS releases a secret only to the enclave with the exact measured image. The parent instance's own credentials, and a modified image, are denied.
A separate Lambda verifier checks signature, attestation and key binding, so the server that ran your job is not the one grading it.
The data owner seals an input to one exact job. The attested enclave unwraps it, runs it, and seals the result back to the owner's key.
# data owner $ trustgate seal --workload csv-stats ... ✓ input encrypted, data key wrapped by KMS # parent instance sees ciphertext, sizes, timing # attacker re-targets the job ✗ refused: authentication failed # enclave (attested KMS call) ✓ unwrap → run → seal result to owner key
Streamable HTTP at /mcp. Works with any MCP client; a Strands agent on Bedrock is included as an example.