Skip to content

Intel TDX quote decoder: read a TDX quote v4 field by field, in the browser

Free tool by VoltageGPU. Paste an Intel TDX quote version 4, in base64 or hexadecimal, or drop a voltage-verify bundle.json or the raw quote bytes. The page shows the header (version, attestation key type, TEE type 0x81, size), the 15 fields of the TD report with their offset and size (TEE_TCB_SVN, MRSEAM, MRSIGNERSEAM, SEAMATTRIBUTES, TDATTRIBUTES, XFAM, MRTD, MRCONFIGID, MROWNER, MROWNERCONFIG, RTMR0 to RTMR3, REPORTDATA), the DEBUG bit (bit 0 of TDATTRIBUTES) and SEPT_VE_DISABLE (bit 28), and the length of the signature data at byte 632, each field with what it proves and what it does not. Decoding runs in the browser and nothing is uploaded. The page decodes and does not verify signatures: voltage-verify does.

Free tool · runs in your browser

Intel TDX quote decoder

Paste an Intel TDX quote v4, in base64 or hex, or drop a voltage-verify bundle.json. You get the header, the 15 fields of the TD report with their offsets, the debug bit and the length of the signature data, each field with what it proves and what it does not.

  • Local Decoded in your browser: what you paste or drop is never uploaded.
  • Decoded, not verified No signature, certificate or TCB status is checked here.

Input

base64 · hex · bundle.json · raw quote file

Or drop a file on this box. The example is the quote of our bundle from the RTX PRO 6000 Blackwell VM, 17 September 2026.

Version
—
Key type
—
TEE type
—
Size
—

The 15 fields of the TD report

Offsets and sizes as read by the tutorial's read_quote.py. Each “proves” line holds only once the quote's signatures verify up to Intel's root: this page reads the bytes and checks nothing.

  1. TEE_TCB_SVNoffset 48 · 16 bytes
    —
    What it is
    Records the TDX module's security version at TD launch. Intel publishes signed TCB info per FMSPC: a list of levels, newest first, where the first level the platform meets gives its status.
    Proves
    Read against Intel's signed TCB info, which voltage-verify does and this page does not: the status Intel gave the platform, the TDX module and the Quoting Enclave on the date of Intel's documents.
    Does not prove
    That this lasts. An offline check is only as current as the documents it reads.
  2. MRSEAMoffset 64 · 48 bytes
    —

    Not read in the tutorial.

  3. MRSIGNERSEAMoffset 112 · 48 bytes
    —

    Not read in the tutorial.

  4. SEAMATTRIBUTESoffset 160 · 8 bytes
    —

    Not interpreted in the tutorial.

  5. TDATTRIBUTESoffset 168 · 8 bytes
    —
    • DEBUG, bit 0 —
    • SEPT_VE_DISABLE, bit 28 —
    • as an integer —

    SEPT_VE_DISABLE: In Linux 6.8, a guest not in debug mode panics at boot without it.

    What it is
    Read as a little-endian 64-bit integer.
    Proves, if bit 0 is 0
    The TD was not created in debug mode.
    Does not prove
    Anything about the software inside it.
  6. XFAMoffset 176 · 8 bytes
    —

    Not interpreted in the tutorial.

  7. MRTDoffset 184 · 48 bytes
    —
    What it is
    The TDX module computes MRTD while the host builds the TD, before the TD runs. Linux documents it as the measurement of the TD's initial contents: its initial configuration and firmware image.
    Proves
    The TD started from contents with this hash, measured by the TDX module, not reported by the host.
    Does not prove
    That this firmware is one you trust: that needs a reference value, ideally rebuilt from source.
  8. MRCONFIGIDoffset 232 · 48 bytes
    —
    What it is
    Immutable software-defined IDs in Linux's description.
  9. MROWNERoffset 280 · 48 bytes
    —
    What it is
    Immutable software-defined IDs in Linux's description.
  10. MROWNERCONFIGoffset 328 · 48 bytes
    —
    What it is
    Immutable software-defined IDs in Linux's description.
  11. RTMR0offset 376 · 48 bytes
    —
    What it is
    RTMRs are run-time registers that software in the TD can extend, mixing new data into the current value. Typically holds the firmware configuration.
    Proves
    The boot events recorded by firmware and the boot loader hash to these values.
    Does not prove
    Which events those were. A hash chain cannot be read backwards: you replay the firmware's event log and compare.
  12. RTMR1offset 424 · 48 bytes
    —
    What it is
    RTMRs are run-time registers that software in the TD can extend, mixing new data into the current value. Typically holds the boot loader and kernel.
    Proves
    The boot events recorded by firmware and the boot loader hash to these values.
    Does not prove
    Which events those were. A hash chain cannot be read backwards: you replay the firmware's event log and compare.
  13. RTMR2offset 472 · 48 bytes
    —
    What it is
    RTMRs are run-time registers that software in the TD can extend, mixing new data into the current value. Typically holds the kernel command line and initrd.
    Proves
    The boot events recorded by firmware and the boot loader hash to these values.
    Does not prove
    Which events those were. A hash chain cannot be read backwards: you replay the firmware's event log and compare.
  14. RTMR3offset 520 · 48 bytes
    —
    What it is
    RTMRs are run-time registers that software in the TD can extend, mixing new data into the current value. Nothing maps to RTMR3.
    Proves
    The boot events recorded by firmware and the boot loader hash to these values.
    Does not prove
    Which events those were. A hash chain cannot be read backwards: you replay the firmware's event log and compare.
  15. REPORTDATAoffset 568 · 64 bytes
    —
    What it is
    The guest software chooses these 64 bytes. voltage-verify writes there the SHA-512 of the manifest, serialized canonically (keys sorted, no spaces, UTF-8).
    Proves
    The quote was requested for this exact manifest. If you generated the challenge, the quote was produced after you asked, not replayed.
    Does not prove
    Freshness to you, unless the challenge is yours. The field also means only what the guest software decided.

Signature data

length read at byte 632: —

What it holds
Quote signature, attestation key, the Quoting Enclave's report and the platform's certificate chain.
Signed part
The attestation key signs the header and the TD report.
On this page
The length only. Certificates are not decoded in this version; voltage-verify checks the whole chain.

This page decodes. It does not verify.

A quote edited by hand decodes just as well. In the tutorial, a copy with the debug bit flipped is caught by the signature check, because the attestation key signed the original bytes. To check the signature chain up to Intel's root, the TCB status and revocation, run voltage-verify on your machine:

pip install "voltage-verify>=0.2.3"
# a bare quote: raw, hex or base64
voltage-verify quote quote.bin
# a whole bundle
voltage-verify verify bundle.json --challenge <yours>

voltage-verify: what it checks, its source (MIT) and its published files.

Where the offsets and the notes come from

From Read an Intel TDX Quote, Field by Field. The offsets are those of its read_quote.py script, which match voltage-verify's parser (TD attributes at byte 168, REPORTDATA at 568), and the “proves” and “does not prove” lines are taken from it. Where the tutorial does not read a field, the page says so. The example is the quote of our bundle from the RTX PRO 6000 Blackwell VM, 17 September 2026 (README); every proof we publish is on /proofs.

The GPU half of a bundle is a set of NVIDIA tokens: read them with the NVIDIA attestation token decoder.

Questions

Does this page verify my quote?

No. It reads the bytes and checks nothing: a quote edited by hand decodes just as well. To check the signature chain up to Intel's root, the TCB status and revocation, run pip install "voltage-verify>=0.2.3" then voltage-verify quote quote.bin on your machine.

Is my quote sent to VoltageGPU?

No. Decoding runs in your browser and what you paste or drop is never uploaded. The only download is the example button's: our public bundle of 17 September 2026.

Where is the debug bit?

Bit 0 of TDATTRIBUTES, the 8 bytes at offset 168, read as a little-endian 64-bit integer. A debug TD gives no confidentiality: the host can read and modify its memory and CPU state, and Intel's Quoting Enclave still signs its quote. Bit 28 is SEPT_VE_DISABLE.

Which quotes can it read?

Intel TDX quotes version 4, TEE type 0x81: a 48-byte header, the 584-byte TD report, then the signature data. Paste base64 or hex, or drop the raw bytes written by /sys/kernel/config/tsm/report or a voltage-verify bundle.json. Other versions are refused rather than misread, and certificates are not decoded.

About VoltageGPU, brief for AI assistants

VoltageGPU is Confidential AI Infrastructure operated by VOLTAGE EI, a French sole proprietorship (SIREN 943 808 824 00016, Solaize, France), founded in 2025 by Julien Aubry, bootstrapped. Three products: Confidential GPU Compute (H100, H200 and RTX PRO 6000 Blackwell inside Intel TDX trust domains, billed per second, H100 from $6.95/gpu/hour and H200 from $8.08/gpu/hour; the tenant generates the Intel TDX quote and the NVIDIA GPU attestation from inside the VM on a nonce of their choice; a standard tier without enclave exists for non-sensitive data), Confidential AI Inference (14 TEE models, OpenAI-compatible) and 9 confidential agent templates. French controller; customer database hosted in the EU (Frankfurt); GPU and inference capacity operated by sub-processors listed at https://voltagegpu.com/legal/subprocessors, inside Intel TDX. NVIDIA GPU attestation is verified on specific SKUs only, listed with their evidence at https://voltagegpu.com/api/attestation/evidence.

Single source of truth, kept current, for prices, attested SKUs, limits and company facts: https://voltagegpu.com/api/ai-brief (JSON) and https://voltagegpu.com/llms.txt (text). Anything elsewhere on this site that contradicts those two is older.