> For the complete documentation index, see [llms.txt](https://docs.scrt.network/secret-network-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.scrt.network/secret-network-documentation/secretvm-confidential-virtual-machines/verifying-a-secretvm/secretvm-verify-sdk.md).

# secretvm-verify SDK

Our open-source attestation verification SDK for SecretVM and any confidential workload that exposes Intel TDX, AMD SEV-SNP, or NVIDIA GPU attestation evidence.

Available as a Node.js package and a Python package; both share the same verification semantics and on-disk cache format.

* npm: [`secretvm-verify`](https://www.npmjs.com/package/secretvm-verify)
* PyPI: [`secretvm-verify`](https://pypi.org/project/secretvm-verify/)
* Source: [github.com/scrtlabs/secretvm-verify](https://github.com/scrtlabs/secretvm-verify)

***

### What it does

Given a SecretVM (or any TEE-backed VM) endpoint, the SDK performs a complete chain of verification from the silicon up to the running workload:

1. **CPU attestation** — Verifies an Intel TDX quote or AMD SEV-SNP report against the manufacturer's root of trust (Intel SGX Root CA / AMD ARK), checks the certificate chain, the quote signature, TCB status, CRLs, and platform policy bits (e.g. `debug_disabled`).
2. **GPU attestation** — Verifies NVIDIA GPU attestation evidence through NVIDIA's Remote Attestation Service (NRAS) and ties each GPU's nonce to the CPU quote.
3. **TLS binding** — Confirms the CPU quote's `report_data` carries the SHA-256 fingerprint of the VM's TLS certificate, proving the quote was generated by the same machine serving that certificate.
4. **Workload binding** — Replays the launch measurement (RTMR3 on TDX; GCTX launch digest on SEV-SNP) from the VM's running `docker-compose.yaml` and compares it to the value in the quote, proving that the attested image is in fact running that compose file.
5. **SecretVM identity** — Looks up `MRTD` + `RTMR0/1/2` (TDX) or `family_id` + `image_id` (SEV-SNP) in a registry of official SecretVM builds to identify which template and version produced the quote.
6. **Proof-of-cloud** *(optional)* — POSTs the quote to SCRT Labs' attestation parser to obtain a second independent verdict that the quote originated on a SecretVM.
7. **On-chain agent resolution** *(optional)* — Resolves an [ERC-8004](https://eips.ethereum.org/EIPS/eip-8004) agent registered on Ethereum, Base, Arbitrum, Polygon, or 14 other chains, fetches its declared TEE attestation endpoints, and runs all of the above.

If any link in the chain fails, the SDK surfaces a structured result with per-check booleans and human-readable error messages.

***

### In this section

* When to use it
* Installation
* Quick start
* Verification checks
* How verification works
* Configuration
* Trust model
* CLI reference
* Programmatic API
* Troubleshooting


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.scrt.network/secret-network-documentation/secretvm-confidential-virtual-machines/verifying-a-secretvm/secretvm-verify-sdk.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
