Authoritative DNS redundancy or monitoring is degraded. DNS may remain available while checks recover.
agent integration
One catalog. Two agent paths.
Headless agents call the public API directly. Browser agents can discover, quote, sign, pay, and consume diagnostics through the visible toolbox. Both paths use the same enabled-only OpenAPI contract and live x402 challenge.
discovery
a. direct API
402 is the quote.
Discovery prices are estimates. The unpaid request returns the exact base-unit amount, accepted networks, asset, and payee. Sign one acceptance and retry the identical request.
Headless golden path
1 · discover
GET /openapi.json2 · request
POST /v1/dns/lookup3 · quote
402 Payment-Required4 · settle
Payment-Signature: eyJ…5 · consume
200 / 202 / binary# request without credentials
curl -i https://cloud.hyrule.host/v1/dns/lookup \
-H 'content-type: application/json' \
-d '{"name":"example.com","type":"AAAA"}'
# sign accept.amount exactly, then replay
curl https://cloud.hyrule.host/v1/dns/lookup \
-H 'Payment-Signature: eyJ…' \
-H 'content-type: application/json' \
-d '{"name":"example.com","type":"AAAA"}'
b. browser agents
WebMCP keeps the work in the page.
When the browser supports WebMCP, the toolbox exposes a small set of state-aware tools. An agent can use the installed wallet or provide a payment payload signed by its own wallet. Hyrule adds no spending cap or confirmation step to agent calls.
| tool | purpose |
|---|---|
search_hyrule_diagnostics | Search the currently enabled diagnostic catalog and update the visible selection. |
quote_hyrule_diagnostic | Validate input and return an ephemeral request-bound x402 quote. |
pay_hyrule_diagnostic | Sign with the browser wallet or submit an agent-signed x402 payload. |
get_hyrule_diagnostic_result | Wait for jobs, page through sanitized results, and complete downloads. |
c. enabled operations
The API controls what appears here.
Fresh from enabled-only OpenAPI. Tagged diagnostics run in the toolbox; product operations hand off to their purpose-built flow.
| operation | surface | discovery price |
|---|---|---|
POST /v1/bgp/lookupInputs: subject type, subject value, datasets, views, sources, time, and more. Returns: request id, subject, resolved, results, assertions, sources, and more. |
toolbox | $0.005–$0.01 |
POST /v1/dns/blocklists/checkInputs: domain. Returns: request id, input domain, normalized domain, verdict, categories, checked source count, and more. |
toolbox | $0.003 |
POST /v1/dns/filtering/checkInputs: domain. Returns: request id, input domain, normalized domain, vantage, overall, blocked profile count, and more. |
toolbox | $0.01 |
POST /v1/dns/lookupInputs: name, type, resolver, dnssec, trace, timeout ms. Returns: request id, question, answers, authority, additional, rcode, and more. |
toolbox | $0.001 |
POST /v1/dns/propagationInputs: name, type, expected, resolvers, authoritative, timeout ms. Returns: request id, status, summary, target, findings, sources, and more. |
toolbox | $0.001 |
POST /v1/ip/lookupInputs: address, views, max age seconds. Returns: request id, address, geo, network, reverse dns, rdap, and more. |
toolbox | $0.003 |
POST /v1/mx/jobsInputs: profile, target, checks, options. Returns: job id, job access token, status, target, profile, status url, and more. |
toolbox | $0.03 |
POST /v1/mx/checkInputs: tool, target, command, options. Returns: request id, tool, target, status, summary, findings, and more. |
toolbox | $0.005 |
POST /v1/mx/bounce/parseInputs: message, context. Returns: status, classification, smtp status, remote mta, probable causes, recommended actions, and more. |
toolbox | $0.005 |
POST /v1/nat/port-forward/checkInputs: target, port, protocol, profile, vantage, timeout ms, and more. Returns: request id, status, summary, target, findings, sources, and more. |
toolbox | $0.005 |
POST /v1/ports/checkInputs: target, port, protocol, profile, vantage, timeout ms, and more. Returns: request id, status, summary, target, findings, sources, and more. |
toolbox | $0.003 |
POST /v1/rdap/lookupInputs: subject type, subject value, include raw, max age seconds. Returns: request id, subject, registry, bootstrap url, parsed, raw, and more. |
toolbox | $0.003 |
POST /v1/whois/lookupInputs: subject type, subject value, include raw, max age seconds. Returns: request id, subject, registry, server, parsed, raw, and more. |
toolbox | $0.005 |
POST /v1/tunnel/createInputs: hours, allowlist cidrs. Returns: tunnel id, token, endpoint host, ssh port, public port, ssh command, and more. |
toolbox | from $0.05 |
POST /v1/voip/checkInputs: target, checks, sip port, timeout ms, include raw. Returns: request id, status, summary, target, findings, sources, and more. |
toolbox | $0.01 |
POST /v1/web/tls/deepInputs: host, port, scan profile, checks, include raw. Returns: request id, status, summary, target, findings, sources, and more. |
toolbox | $0.10 |
POST /v1/web/checkInputs: target, checks, vantages, timeout ms, include raw. Returns: request id, status, summary, target, findings, sources, and more. |
toolbox | $0.005 |
POST /v1/vm/createInputs: duration days, size, resources, os, ssh pubkey, domain mode, and more. Returns: vm id, status, status url, estimated ready seconds, management token, management url. |
product flow | from $0.20 |
POST /v1/vm/quoteLock a durable VM price quote (free; pass quote_id to POST /v1/vm/create). Free supporting route — no x402 payment required. |
product flow | Live 402 quote |
DELETE /v1/vm/{vm_id}Destroy a VM permanently (management token required). Free supporting route — no x402 payment required. |
product flow | Live 402 quote |
GET /v1/vm/{vm_id}/logsProvisioning log events (management token required). Free supporting route — no x402 payment required. |
product flow | Live 402 quote |
GET /v1/vm/{vm_id}/statusPublic provisioning and launch-proof status poll. Free supporting route — no x402 payment required. |
product flow | Live 402 quote |
GET /v1/vm/quote/{quote_id}Reload a previously locked VM quote. Free supporting route — no x402 payment required. |
product flow | Live 402 quote |
GET /v1/vm/{vm_id}Full VM view including SSH target (management token required). Free supporting route — no x402 payment required. |
product flow | Live 402 quote |
POST /v1/vm/{vm_id}/rebootHard reboot a VM (management token required). Free supporting route — no x402 payment required. |
product flow | Live 402 quote |
GET /v1/payments/networksEnabled payment networks, receiver address, and facilitator. Free supporting route — no x402 payment required. |
product flow | Live 402 quote |
GET /v1/pricingCurrent price list for all resources. Free supporting route — no x402 payment required. |
product flow | Live 402 quote |
GET /v1/products/vmsMachine-readable VM catalog with customization pricing. Free supporting route — no x402 payment required. |
product flow | Live 402 quote |
GET /v1/os/listAvailable OS templates. Free supporting route — no x402 payment required. |
product flow | Live 402 quote |
POST /v1/network/requestInputs: url, method, headers, body, proxy mode, timeout seconds. Returns: status code, headers, body, elapsed seconds, proxy mode, error. |
product flow | $0.01–$0.05 |
d. settlement rails
Networks are live configuration too.
The wallet UI and agent tools accept only network and token contracts currently returned by
GET /v1/payments/networks.01
Base
eip155:8453
USDC · EVM
02
Polygon
eip155:137
USDC · EVM
03
Arbitrum
eip155:42161
USDC · EVM
run
Use the catalog without leaving the site.
Humans and browser agents share the same visible request, exact quote, settlement, progress, and result state.