Install
openclaw skills install agentmetalSpin up a real Linux server (VPS / cloud instance) in under 60 seconds, then SSH in and run commands on it — paid with USDC over x402 or card, no signup, no dashboard. Use when you want to rent a box, deploy something, run a command on a real machine, or host a service.
openclaw skills install agentmetalAgentMetal lets you (the agent) rent a real Linux VPS by paying USDC directly — or a card. One request, an HTTP 402 with payment requirements, you pay, and you get back a running box with SSH in under a minute. No human signup, no dashboard, no API key to buy. This is autonomous infrastructure: the agent buys its own compute, then configures and operates the box — install packages, deploy code, host a service — not just receives it.
The full lifecycle you can drive: browse free → provision → SSH in / run commands → add storage → manage (reboot / diagnostics) → extend → destroy. Humans can optionally claim a box by email to unlock the management verbs and fleet ownership.
Base URL: https://api.agentmetal.dev
| plan | vCPU / RAM / disk | price (USDC/day) | monthly (card) |
|---|---|---|---|
nano | 2 / 2 GB / 40 GB | $0.40 | $9 |
small | 3 / 4 GB / 80 GB | $0.80 | $18 |
medium | 4 / 8 GB / 160 GB | $1.60 | $36 |
Leases are prepaid, 1–30 days, no refunds. Pay per day; extend anytime.
Add-ons: block storage at $0.01/GB/day (auto-mounted) and bandwidth at $2/TB beyond the
20 TB included.
curl https://api.agentmetal.dev/v1/catalog
→ { plans: [...], locations: [...], addons: { storage, bandwidth } }
Use this to discover plans, locations, and add-on pricing before you spend anything.
eip155:8453). You need a little
more than the plan's daily price × days. (A card rail is offered too — card.checkout_url
in the 402.)exec), reboot, pull diagnostics, or destroy a box — otherwise it just
expires at expires_at.Every paid call is the same two-step dance:
{
"x402Version": 2,
"accepts": [{ "scheme": "exact", "network": "eip155:8453",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "2800000", "payTo": "0x…", "maxTimeoutSeconds": 120 }],
"resource": { "url": "https://api.agentmetal.dev/v1/servers" },
"card": { "checkout_url": "https://…" } // optional human card rail
}
accepts[0] requirement with your wallet, base64-encode the payment payload,
and resend the identical request with an X-PAYMENT: header. On success you get
201 and the server details. (amount is atomic USDC — 6 decimals; 2800000 = $2.80.)The bundled scripts/agentmetal CLI does this for you when WALLET_PRIVATE_KEY is set.
# Browse the catalog (free)
GET /v1/catalog → { plans, locations, addons }
# Provision (the 402 dance happens automatically with a funded wallet)
POST /v1/servers { "plan": "nano", "days": 7, "ssh_key": "ssh-ed25519 AAAA…" }
→ 201 { id, status, plan, ipv4, ssh: "root@1.2.3.4", expires_at, renew }
# Bring no key of your own? Ask AgentMetal to generate one — the private key is returned ONCE:
POST /v1/servers { "plan": "nano", "days": 7, "managed_key": true }
→ 201 { id, ipv4, ssh, private_key: "-----BEGIN OPENSSH PRIVATE KEY-----…", expires_at }
# Status
GET /v1/servers/{id} → 200 { id, status, ipv4, expires_at, … }
# Run a shell command AS ROOT on the box (needs account key + a managed-key box you own)
POST /v1/servers/{id}/exec { "command": "apt-get update && docker run -d nginx" }
→ 200 { exit_code, stdout, stderr }
# Add-ons
POST /v1/servers/{id}/storage { "gb": 100 } → block storage, auto-mounted ($0.01/GB/day)
POST /v1/servers/{id}/bandwidth { "tb": 5 } → extra bandwidth ($2/TB beyond 20 TB)
# Manage (account key)
POST /v1/servers/{id}/reboot → 200 soft reboot
GET /v1/servers/{id}/diagnostics → 200 { hypervisor_status, console, metrics } # no SSH needed
# Extend the lease (402 dance again)
POST /v1/servers/{id}/extend { "days": 7 } → 200 { …, expires_at }
# Destroy early (requires an account API key: Authorization: Bearer am_live_…)
DELETE /v1/servers/{id} → 200 { id, status: "destroyed" }
Paid calls (/v1/servers, /extend) all use the same 402 → pay → resend dance shown above.
Account-gated calls (exec, reboot, diagnostics, DELETE) take Authorization: Bearer am_live_….
The bundled scripts/agentmetal CLI covers the core verbs (it signs x402 for the paid ones):
export WALLET_PRIVATE_KEY=0x… # to pay
agentmetal up --plan nano --days 7 # provision (prints id + ssh)
agentmetal status srv_… # check it
agentmetal extend srv_… --days 7 # renew
agentmetal down srv_… # destroy (needs AGENTMETAL_API_KEY)
For catalog, exec, add-ons, reboot, and diagnostics use the curl forms above (e.g.
curl -s https://api.agentmetal.dev/v1/catalog, or
curl -X POST .../v1/servers/$ID/exec -H "authorization: Bearer $AGENTMETAL_API_KEY" -d '{"command":"uptime"}').
An account is optional but unlocks the operate-the-box verbs: run commands (exec),
reboot, diagnostics, destroy, monthly card billing, and fleet management. To claim:
POST /v1/claim { email } emails a one-time code, then
POST /v1/claim/verify { email, code } returns an am_live_… API key. Pass it as
Authorization: Bearer … (or AGENTMETAL_API_KEY for the CLI).
/root/SERVER.md — its own "birth certificate" explaining what it
is, when it expires, and how to renew or spawn a sibling.