The Binding
Inside a sealed environment, the hardware stamps a small piece of caller-supplied data into the signed report. That field is the report data. It commits the report to two things at once:How It Is Checked
Two separate checks, worth keeping distinct:- The binding is recomputed. The signing address and the nonce are concatenated in the same form and compared against the report data observed in the evidence. The comparison is case-insensitive. A mismatch fails the check.
- The observed nonce must equal your nonce. Separately from recomputing the report data, the nonce in the evidence is checked against the one you sent.
Send a Fresh Nonce Every Time
Nothing stores nonces between requests. There is no memory of nonces already seen, and a nonce is not rejected for having been used before. The freshness comes entirely from you choosing a fresh, unpredictable nonce every time.- Send a fresh random nonce and the checks confirm the report is fresh for this request. This is the supported pattern.
- Omit the nonce and an empty-binding report is permitted. It is allowed, but you get no replay protection: an empty binding commits to nothing fresh, so an old report could satisfy it.
Reports Are Request-Local
Attestation reports are produced for the request that asked for them and are never persisted. Each one stands alone: a fresh nonce, a fresh report, a fresh binding check.How This Fits the Baseline
The binding and the nonce match are gates 4 and 5 of the seven-gate baseline, and gate 7 extends the nonce check into the nested payload for accelerator envelopes. The address side is governed by an additional invariant on address-only model binding.Related Resources
The Seven-Gate Baseline
Where these checks sit in the sequence.
Address-Only Model Binding
How the address binding is validated.
Verify It Yourself
Generating and checking a nonce in practice.

