{
  "$schema": "https://agentsjson.org/schemas/v0.1.0/agents.schema.json",
  "agentsJson": "0.1.0",
  "info": {
    "title": "VPSCrypto agent surface",
    "version": "1.0.0",
    "description": "Action contracts for autonomous AI agents to provision and run offshore, no-KYC KVM virtual private servers via VPSCrypto. Agents authenticate with a Bearer API key (POST /api/v1/account returns one) and can fund their balance gaslessly with USDC on Base using the x402 protocol — no human, no card, no KYC.",
    "contact": { "name": "VPSCrypto", "url": "https://vpscrypto.io/agents" },
    "license": { "name": "Proprietary", "url": "https://vpscrypto.io/terms" }
  },
  "sources": [
    { "id": "rest", "path": "https://vpscrypto.io/openapi.json", "type": "openapi" }
  ],
  "flows": [
    {
      "id": "deploy_vps_with_crypto",
      "title": "Deploy a VPS funded with crypto",
      "description": "End-to-end: create an account, read the catalog, top up the balance in crypto, wait for confirmation, then order a clean-IP KVM server. With x402 (USDC on Base) the whole flow needs no human.",
      "actions": [
        { "id": "create_account", "sourceId": "rest", "operationId": "create_account" },
        { "id": "get_catalog", "sourceId": "rest", "operationId": "get_catalog" },
        { "id": "create_topup", "sourceId": "rest", "operationId": "create_topup" },
        { "id": "poll_topup", "sourceId": "rest", "operationId": "get_topup" },
        { "id": "create_server", "sourceId": "rest", "operationId": "create_server" }
      ],
      "fields": {
        "parameters": [
          { "name": "amount", "description": "USD value to top up (25–2000)", "required": true },
          { "name": "coin", "description": "Funding coin: BTC, XMR, ETH, LTC, USDTTRC, USDT, or USDCBASE for gasless x402", "required": true },
          { "name": "plan", "description": "Plan id from the catalog (pup … fenrir)", "required": true },
          { "name": "location", "description": "Location id: nl, fr, ro, bg, se, is, ch, my", "required": true },
          { "name": "os", "description": "Operating-system id, e.g. debian-13, ubuntu-2404", "required": true }
        ]
      }
    },
    {
      "id": "pay_with_x402",
      "title": "Fund the balance gaslessly with x402 (USDC on Base)",
      "description": "Create an account, request a USDC-on-Base top-up (HTTP 402 with an x402 'accepts' block), sign the EIP-3009 authorization, and re-send with the X-PAYMENT header. Settlement is gasless for the agent; the balance credits after the swap confirms.",
      "actions": [
        { "id": "create_account", "sourceId": "rest", "operationId": "create_account" },
        { "id": "create_topup", "sourceId": "rest", "operationId": "create_topup" },
        { "id": "poll_topup", "sourceId": "rest", "operationId": "get_topup" }
      ]
    },
    {
      "id": "manage_servers",
      "title": "Inspect and manage servers",
      "description": "List servers, read one, and reveal root credentials to connect over SSH.",
      "actions": [
        { "id": "list_servers", "sourceId": "rest", "operationId": "list_servers" },
        { "id": "get_server", "sourceId": "rest", "operationId": "get_server" },
        { "id": "get_credentials", "sourceId": "rest", "operationId": "get_server_credentials" }
      ]
    }
  ],
  "x402": {
    "supported": true,
    "mode": "exact",
    "default_asset": "USDC",
    "default_network": "base",
    "endpoint": "https://vpscrypto.io/api/v1/topups",
    "auth": "Bearer — POST https://vpscrypto.io/api/v1/account returns { api_key }",
    "flow": "POST /api/v1/account for a Bearer api_key; POST /api/v1/topups with 'Authorization: Bearer <key>' and 'X-Payment-Mode: x402' (or coin=USDCBASE) to receive an HTTP 402 'accepts' block; sign the EIP-3009 USDC authorization and re-send the same request with the 'X-PAYMENT' header. Settlement is gasless for the agent; the balance credits after the swap confirms.",
    "documentation": "https://vpscrypto.io/agents"
  }
}
