Servers API Reference
This section covers all endpoints related to servers.
Get Nonce
Generate a nonce for boot attestation.
This endpoint is called by VMs during boot before any registration. No authentication required as the VM doesn't exist in the system yet.
Endpoint:
Responses
| Status Code | Description |
|---|---|
| 200 | Successful Response |
Verify Boot Attestation
Verify boot attestation and return LUKS passphrase.
This endpoint verifies the TDX quote against expected boot measurements and returns the LUKS passphrase for disk decryption if valid. For VMs running version >= 1.3.0, also returns a luks_quote_nonce for the subsequent POST /luks/attest call.
Endpoint:
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| X-Chutes-Nonce | string | null | No |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| quote | string | Yes | Base64 encoded TDX quote |
| miner_hotkey | string | Yes | Miner hotkey that owns this VM |
| vm_name | string | Yes | VM name/identifier |
Responses
| Status Code | Description |
|---|---|
| 200 | Successful Response |
| 422 | Validation Error |
Sync Luks Passphrases
Sync LUKS passphrases for legacy VMs (version < 1.3.0).
VM sends its volume list; API returns keys for existing volumes, creates keys for new volumes, rekeys volumes in the rekey list, and prunes stored keys for volumes not in the list. Boot token is validated and consumed on success.
Endpoint:
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| vm_name | string | Yes | |
| X-Chutes-Hotkey | string | null | No | |
| X-Boot-Token | string | null | No |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| volumes | string[] | Yes | Volume names the VM is managing (defines full set) |
| rekey | string[] | null | No | Volume names that must receive new passphrases (no reuse); must be subset of volumes |
Responses
| Status Code | Description |
|---|---|
| 200 | Successful Response |
| 422 | Validation Error |
Attest Luks
Rotate LUKS passphrases for new-format VMs (version >= 1.3.0).
The VM embeds the luks_quote_nonce (received in the boot attestation response) in a TDX quote after extending RTMR3 in initramfs. require_luks_quote_nonce validates and consumes the nonce; the handler then calls verify_quote which checks the TDX signature and all RTMR measurements including RTMR3. Returns rotated passphrases, the k3s encryption key, and a confirm nonce.
Endpoint:
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| vm_name | string | Yes | |
| X-Chutes-Hotkey | string | null | No | |
| X-Quote-Nonce | string | null | No |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| quote | string | Yes | Base64-encoded TDX quote (runtime type, RTMR3 extended) |
| volumes | string[] | Yes | Volume names to rotate passphrases for |
Responses
| Status Code | Description |
|---|---|
| 200 | Successful Response |
| 422 | Validation Error |
Confirm Luks Rotation
Confirm or discard pending LUKS passphrase rotation results.
The VM reports per-volume success/failure. require_confirm_nonce validates and consumes the nonce before the handler runs. Volumes with rotated=True have pending passphrases promoted to current; rotated=False discards pending.
Endpoint:
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| vm_name | string | Yes | |
| X-Chutes-Hotkey | string | null | No | |
| X-Confirm-Nonce | string | null | No |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| volumes | object | Yes | Per-volume rotation result reported by the VM |
Responses
| Status Code | Description |
|---|---|
| 200 | Successful Response |
| 422 | Validation Error |
Create Server
Register a new server.
This is called via CLI after the server has booted and decrypted its disk. Links the server to any existing boot attestation history via server ip.
Endpoint:
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| X-Chutes-Hotkey | string | null | No | |
| X-Chutes-Signature | string | null | No | |
| X-Chutes-Nonce | string | null | No | |
| Authorization | string | null | No |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| host | string | Yes | Public IP address or DNS Name of the server |
| id | string | Yes | Server ID (e.g. k8s node uid) |
| name | string | null | No | Server name (defaults to server id if omitted) |
| gpus | NodeArgs[] | Yes | GPU info for this server |
Responses
| Status Code | Description |
|---|---|
| 201 | Successful Response |
| 422 | Validation Error |
Authentication
This endpoint requires authentication.
Get Tee Measurements
Return the list of currently accepted TEE measurement configurations.
These are the reference values (MRTD + RTMRs) that the platform accepts during boot and runtime attestation. Clients can use these to independently verify that a server is running approved software before trusting it. No authentication required — public transparency endpoint.
Endpoint:
Responses
| Status Code | Description |
|---|---|
| 200 | Successful Response |
Get Maintenance Policy
Return the active upgrade window, concurrency limits, and the miner's pending servers.
Endpoint:
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| X-Chutes-Hotkey | string | null | No | |
| X-Chutes-Signature | string | null | No | |
| X-Chutes-Nonce | string | null | No | |
| Authorization | string | null | No |
Responses
| Status Code | Description |
|---|---|
| 200 | Successful Response |
| 422 | Validation Error |
Authentication
This endpoint requires authentication.
Patch Server Name
Update name for an existing server. Path is server_id; query param is the new name. The server row is updated when hotkey and server_id match.
Endpoint:
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| server_id | string | Yes | |
| server_name | string | Yes | New VM name to set |
| X-Chutes-Hotkey | string | null | No | |
| X-Chutes-Signature | string | null | No | |
| X-Chutes-Nonce | string | null | No | |
| Authorization | string | null | No |
Responses
| Status Code | Description |
|---|---|
| 200 | Successful Response |
| 422 | Validation Error |
Authentication
This endpoint requires authentication.
Get Server Details
Get details for a specific server by miner hotkey and server id.
Endpoint:
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| server_id | string | Yes | |
| X-Chutes-Hotkey | string | null | No | |
| X-Chutes-Signature | string | null | No | |
| X-Chutes-Nonce | string | null | No | |
| Authorization | string | null | No |
Responses
| Status Code | Description |
|---|---|
| 200 | Successful Response |
| 422 | Validation Error |
Authentication
This endpoint requires authentication.
Get Maintenance Preflight
Check maintenance eligibility for a server without entering maintenance.
Endpoint:
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| server_name_or_id | string | Yes | |
| X-Chutes-Hotkey | string | null | No | |
| X-Chutes-Signature | string | null | No | |
| X-Chutes-Nonce | string | null | No | |
| Authorization | string | null | No |
Responses
| Status Code | Description |
|---|---|
| 200 | Successful Response |
| 422 | Validation Error |
Authentication
This endpoint requires authentication.
Put Confirm Maintenance
Enter maintenance: purge instances and mark server for upgrade.
Endpoint:
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| server_name_or_id | string | Yes | |
| X-Chutes-Hotkey | string | null | No | |
| X-Chutes-Signature | string | null | No | |
| X-Chutes-Nonce | string | null | No | |
| Authorization | string | null | No |
Responses
| Status Code | Description |
|---|---|
| 200 | Successful Response |
| 422 | Validation Error |
Authentication
This endpoint requires authentication.
Remove Server
Remove a server by miner hotkey and server id or VM name (path param server_name_or_id).
Endpoint:
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| server_name_or_id | string | Yes | |
| X-Chutes-Hotkey | string | null | No | |
| X-Chutes-Signature | string | null | No | |
| X-Chutes-Nonce | string | null | No | |
| Authorization | string | null | No |
Responses
| Status Code | Description |
|---|---|
| 200 | Successful Response |
| 422 | Validation Error |
Authentication
This endpoint requires authentication.
Get Runtime Nonce
Generate a nonce for runtime attestation.
Endpoint:
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| server_id | string | Yes | |
| X-Chutes-Hotkey | string | null | No | |
| X-Chutes-Signature | string | null | No | |
| X-Chutes-Nonce | string | null | No | |
| Authorization | string | null | No |
Responses
| Status Code | Description |
|---|---|
| 200 | Successful Response |
| 422 | Validation Error |
Authentication
This endpoint requires authentication.
Verify Runtime Attestation
Verify runtime attestation with full measurement validation.
Endpoint:
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| server_id | string | Yes | |
| X-Chutes-Hotkey | string | null | No | |
| X-Chutes-Signature | string | null | No | |
| X-Chutes-Nonce | string | null | No | |
| Authorization | string | null | No |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| quote | string | Yes | Base64 encoded TDX quote |
Responses
| Status Code | Description |
|---|---|
| 200 | Successful Response |
| 422 | Validation Error |
Authentication
This endpoint requires authentication.
Get Attestation Status
Get current attestation status for a server by miner hotkey and server id.
Endpoint:
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| server_id | string | Yes | |
| X-Chutes-Hotkey | string | null | No | |
| X-Chutes-Signature | string | null | No | |
| X-Chutes-Nonce | string | null | No | |
| Authorization | string | null | No |
Responses
| Status Code | Description |
|---|---|
| 200 | Successful Response |
| 422 | Validation Error |
Authentication
This endpoint requires authentication.