Introduction#

nvat (or “NV Attest”) is an SDK that supports device attestation for NVIDIA products such as GPUs and the NVLink Switch. The SDK and associated tooling allows users to collect and verify device attestation reports. This is a new and improved version of the NVIDIA nvtrust attestation SDK, redesigned to address key limitations:

  • Improved API flexibility and structure with better separation of concerns and reusability

  • Enhanced error handling and logging suitable for library use cases

  • Removed global state enabling proper unit testing and multi-instance support

  • Better security practices including secure JWT signing in local verifiers

  • Improved documentation with consistent, well-documented data structures

Installation#

Prerequisites#

  • C++14 compiler

  • libnvml is required when compiling support for GPU evidence collection. See Driver Installation for instructions.

  • libnvidia-nscq is required when compiling support for NVSwitch evidence collection. See here

From package manager#

In the future, this SDK will be available via Linux package managers for easier installation.

From source#

This project uses CMake as its build system. The following instructions have been tested on Ubuntu 22.04 and 24.04 x86-64.

  • Install build dependencies

sudo apt-get update && \
sudo apt-get install -y cmake git pkg-config clang \
    libcurl4-openssl-dev libssl-dev libxml2-dev \
    libxmlsec1-dev libxmlsec1-openssl libspdlog-dev

# rust is a build dependency
# install from here - https://rust-lang.org/tools/install/
  • Get the source

git clone https://github.com/NVIDIA/attestation-sdk.git
cd attestation-sdk/nv-attestation-sdk-cpp
  • Build

cmake -S . -B build
cmake --build build
cmake --install build --strip
sudo ldconfig
  • Uninstall (the installed files are recorded in build/install-manifest):

xargs rm -v < build/install_manifest.txt

Quick Start#

A CLI tool is also available that uses this SDK. For command-line attestation, see the instructions here.

For a minimal example demonstrating GPU attestation, see this example.

If attestation is successful, it prints out the claims and detached EAT. See here to see the format of claims and detached EAT

See here to understand how to configure attestation using relying party policy and evidence policy.

Next steps#

The public API of nvat is located here

For more in-depth examples on using the SDK, see here