Skip to main content
GET
/
attestation
/
report
Attestation Report
curl --request GET \
  --url https://api.redpill.ai/v1/attestation/report \
  --header 'Authorization: Bearer <token>'

Get Attestation Report

Returns cryptographic proof of TEE execution with hardware-signed measurements.
GET https://api.redpill.ai/v1/attestation/report?model={model_id}&nonce={nonce}&signing_address={address}
Try it now! Click the “Try it” button above to test the API in the playground. You’ll need:
  1. Your API key (add it when prompted)
  2. The model parameter is pre-filled with phala/qwen-2.5-7b-instruct
  3. Optionally add nonce for replay protection
Security Best Practice: Always include a fresh random nonce when fetching attestations to prevent replay attacks. Generate a 32-byte random value (64 hex characters) for each request.

Parameters

model
string
default:"phala/qwen-2.5-7b-instruct"
Model ID for TEE attestation (required for Phala confidential models)Examples: phala/qwen-2.5-7b-instruct, phala/glm-5, phala/gpt-oss-120b
nonce
string
Random 32-byte value (64 hex characters) to prevent replay attacks. The nonce will be embedded in the TEE attestation report data.Example: a1b2c3d4e5f6... (64 hex characters)Security: Generate fresh nonce for each request using secrets.token_hex(32) in Python or openssl rand -hex 32 in bash.
signing_address
string
Ethereum address (ECDSA) or Ed25519 public key to filter attestations in multi-server deployments.Use case: When verifying signatures, provide the signing address recovered from the signature to get attestation for that specific TEE instance.Example: 0x1234567890abcdef... (ECDSA address)

Example

Basic Request (without nonce)

curl "https://api.redpill.ai/v1/attestation/report?model=phala/qwen-2.5-7b-instruct" \
  -H "Authorization: Bearer YOUR_API_KEY"
# Generate fresh nonce
NONCE=$(openssl rand -hex 32)

curl "https://api.redpill.ai/v1/attestation/report?model=phala/qwen-2.5-7b-instruct&nonce=$NONCE" \
  -H "Authorization: Bearer YOUR_API_KEY"

With Signing Address (for signature verification)

NONCE=$(openssl rand -hex 32)
SIGNING_ADDRESS="0x1234567890abcdef..."

curl "https://api.redpill.ai/v1/attestation/report?model=phala/qwen-2.5-7b-instruct&nonce=$NONCE&signing_address=$SIGNING_ADDRESS" \
  -H "Authorization: Bearer YOUR_API_KEY"

Response

Single Server Response

{
  "signing_address": "0x3573D4c8b9C3ce0360594095AF0C0629de45C02A",
  "signing_algo": "ecdsa",
  "request_nonce": "a1b2c3d4e5f6...",
  "intel_quote": "0x...",
  "nvidia_payload": "{...}",
  "info": {
    "tcb_info": "{...}"
  },
  "quote": "...",
  "event_log": "...",
  "vm_config": "..."
}

Multi-Server Response

When multiple backend servers are available, the response includes an all_attestations array:
{
  "signing_address": "0x3573D4c8...",
  "signing_algo": "ecdsa",
  "request_nonce": "a1b2c3d4...",
  "intel_quote": "0x...",
  "nvidia_payload": "{...}",
  "info": {"tcb_info": "{...}"},
  "quote": "...",
  "event_log": "...",
  "vm_config": "...",
  "all_attestations": [
    {
      "signing_address": "0x3573D4c8...",
      "signing_algo": "ecdsa",
      "request_nonce": "a1b2c3d4...",
      "intel_quote": "0x...",
      "nvidia_payload": "{...}",
      "info": {"tcb_info": "{...}"},
      "quote": "...",
      "event_log": "...",
      "vm_config": "..."
    }
  ]
}

Response Fields

FieldTypeDescription
signing_addressstringEthereum address (ECDSA) or Ed25519 public key used for signing
signing_algostringSignature algorithm: "ecdsa" or "ed25519"
request_noncestringThe nonce you provided (or auto-generated), embedded in TEE report data
intel_quotestringIntel TDX quote (hex-encoded) for CPU TEE verification
nvidia_payloadstringNVIDIA GPU attestation payload (JSON string)
info.tcb_infostringTCB info including Docker compose configuration (JSON string)
quotestringRaw attestation quote data
event_logstringTEE event log
vm_configstringVM configuration
all_attestationsarrayArray of attestations from multiple backend servers
Multi-server deployments: When using signing_address parameter, you may receive an all_attestations array containing attestations from multiple backend servers. Filter by signing_address to find the specific server that signed your response.

Attestation Guide

Learn how to verify attestation →