# Hyrule Cloud VM Create

> Hyrule Cloud VM Create is a paid API for AI agents from cloud.hyrule.host, paid per call via x402, $0.2/call, status unknown (last checked 2026-09-15).

Provisions a bare virtual machine with SSH access on IPv6-native infrastructure, billed per-use in USDC via x402

## Facts

- Endpoint: POST https://cloud.hyrule.host/v1/vm/create
- Price: $0.2/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/hyrule-cloud-vm-create-db2c5aaf
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_Zt9erYPAVHVsmSyWJrOuC

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability hyrule-cloud-vm-create-db2c5aaf -d '<json body>'
```

Example prompt: Spin up a small Debian 13 VM for 3 days with port 80 and 443 open, using my SSH key ssh-ed25519 AAAA...mykey, and run this setup script after boot to install nginx.

## When to prefer this

Choose this endpoint when you need a disposable or short-lived bare VM with SSH access billed pay-per-use in USDC, especially when you want IPv6-native infrastructure, no subscription commitment, or need to route traffic over Tor, I2P, or Yggdrasil via the Hyrule Cloud ecosystem.

## Known failure modes

- Invalid or missing SSH public key — VM cannot be created without valid key
- Invalid OS template name — returns 400 with list of supported templates
- Duration out of range (must be 1–365 days) — returns 422 validation error
- Invalid VM size tier — must be one of xs, sm, md, lg
- quote_id provided but body spec does not match stored quote — returns 409 conflict
- Insufficient USDC balance or x402 payment failure — returns 402 Payment Required
- Custom domain_mode specified without domain field — returns 422 validation error
- Setup script too large or malformed — may fail post-boot silently or with error

## How this service works

Full-stack network infrastructure for AI agents on AS215932 (RIPE): IPv6-native VMs with SSH and automatic HTTPS subdomains, domain registration and DNS, a broad network-intelligence suite (BGP/routing, IP/ASN & reputation, DNS, RDAP/WHOIS, web & deep TLS, mail deliverability, port/NAT/CGNAT, VoIP/SIP), and proxied requests over Direct/Tor/I2P/Yggdrasil. Pay per request in USDC on Base via x402; VM checkout may also accept BTC/XMR when advertised. This OpenAPI document intentionally contains only the launch-ready, independently payable agent surface.

## Output

Returns details of the newly provisioned VM including IP address, hostname, SSH access credentials, assigned domain, and provisioning status.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "os": {
   "type": "string",
   "title": "Os",
   "default": "debian-13",
   "description": "OS template name"
  },
  "size": {
   "enum": [
    "xs",
    "sm",
    "md",
    "lg"
   ],
   "type": "string",
   "title": "VMSize",
   "default": "xs",
   "description": "VM size tier"
  },
  "domain": {
   "anyOf": [
    {
     "type": "string"
    },
    {
     "type": "null"
    }
   ],
   "title": "Domain",
   "default": null,
   "description": "Domain to register (required when domain_mode=custom)"
  },
  "quote_id": {
   "anyOf": [
    {
     "type": "string",
     "maxLength": 36
    },
    {
     "type": "null"
    }
   ],
   "title": "Quote Id",
   "default": null,
   "description": "Optional durable quote id from POST /v1/vm/quote. When set, the server provisions the spec stored on the quote at the quote-locked price; the rest of this body must match that stored spec. Omit for the legacy compute-price-from-body flow."
  },
  "resources": {
   "anyOf": [
    {
     "type": "object",
     "title": "VMOrderResources",
     "required": [
      "vcpu",
      "ram_mb",
      "disk_gb"
     ],
     "properties": {
      "vcpu": {
       "type": "integer",
       "title": "Vcpu",
       "exclusiveMinimum": 0
      },
      "ram_mb": {
       "type": "integer",
       "title": "Ram Mb",
       "exclusiveMinimum": 0
      },
      "disk_gb": {
       "type": "integer",
       "title": "Disk Gb",
       "exclusiveMinimum": 0
      }
     },
     "description": "Requested final resources; validated against the live catalog server-side."
    },
    {
     "type": "null"
    }
   ],
   "default": null,
   "description": "Optional exact final resources. New orders support 1-4 vCPU, 1-8 GiB RAM, and 10-40 GB SSD. The server selects the cheapest compatible base profile."
  },
  "open_ports": {
   "type": "array",
   "items": {
    "type": "integer"
   },
   "title": "Open Ports",
   "description": "Inbound TCP ports to allow (22 always included)"
  },
  "ssh_pubkey": {
   "type": "string",
   "title": "Ssh Pubkey",
   "description": "SSH public key for root access (ed25519 or rsa)"
  },
  "domain_mode": {
   "enum": [
    "auto",
    "custom"
   ],
   "type": "string",
   "title": "DomainMode",
   "default": "auto"
  },
  "setup_script": {
   "anyOf": [
    {
     "type": "string"
    },
    {
     "type": "null"
    }
   ],
   "title": "Setup Script",
   "default": null,
   "description": "Optional shell script to execute after
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "vm_id": "vm_a1b2c3d4e5f6",
  "status": "provisioning",
  "status_url": "/v1/vm/vm_a1b2c3d4e5f6/status"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/hyrule-cloud-vm-create-db2c5aaf/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from cloud.hyrule.host](https://www.zero.xyz/host/cloud.hyrule.host/llms.txt)
