Show HN: X402vps – Docker containers for AI agents, paid per hour with USDC
By z1z2z3
AI 摘要
Hacker News 讨论热度 11 points · 0 comments
原文正文
No signup. No API key. No dashboard.
Your wallet is your identity. USDC on Base mainnet.
Internet access on node & core plans — scrape, fetch, install.
FOUR STEPS. NO HUMANS INVOLVED.
POST /api/create with plan + hours
Server responds with USDC payment challenge
Signs EIP-3009 transfer, retries with proof
Docker provisioned. Exec + internet — ready
PAY PER HOUR. NO SUBSCRIPTIONS. EXEC IS FREE.
10 IMAGES. ZERO COLD START. RUN ON MIN TIER OR HIGHER.
Each image has a minimum tier (RAM needed to run).
You can run any image on a higher tier for more CPU/RAM/bandwidth — e.g. {"plan":"core","image":"python"} gives Python with 2GB RAM.
Or pass any Docker image name for custom images (slower, pulls from Docker Hub).
ATOM ISOLATED. CELL/NODE/CORE HAVE INTERNET.
JSON IN. 402 OUT. NO BULLSHIT.
# Create a container with internet (node plan, 1hr = $0.04)
curl -X POST https://x402vps.com/api/create \
-H "Content-Type: application/json" \
-d '{"plan":"node","leaseHours":1}'
# Scrape a website (free, exec is always free)
curl -X POST https://x402vps.com/api/exec \
-H "Content-Type: application/json" \
-d '{"id":"ctr_4cb194","command":"wget -qO- https://api.github.com/zen"}'
# Install packages (writable rootfs on node/core)
curl -X POST https://x402vps.com/api/exec \
-d '{"id":"ctr_4cb194","command":"apk add --no-cache python3"}'
# Destroy when done
curl -X POST https://x402vps.com/api/destroy \
-d '{"id":"ctr_4cb194"}'import { x402Client, x402HTTPClient } from "@x402/core/client";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const account = privateKeyToAccount("0x...");
const client = new x402Client();
registerExactEvmScheme(client, { signer: account, networks: ["eip155:8453"] });
const http = new x402HTTPClient(client);
// 1. Create a node container WITH internet ($0.04/hr)
const resp = await fetch("https://x402vps.com/api/create", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ plan: "node", leaseHours: 1 })