{
  "schemaVersion": 1,
  "brandId": "vps-01",
  "brandName": "PrivacyNodes",
  "language": "en",
  "reviewedAt": "2026-09-12",
  "pagePath": "/service-facts/",
  "offeringType": "VPS",
  "currency": "USD",
  "generatedAt": "2026-09-12",
  "source": "src/catalog.mjs + src/configuration.mjs + src/payment-receivers.json",
  "operatorBase": "Panama",
  "serverCountries": [
    "Switzerland",
    "Panama"
  ],
  "backupCountries": "unconfirmed",
  "plans": [
    {
      "id": "dev-1",
      "name": "Dev 1",
      "cpu": 1,
      "ramGb": 2,
      "storageGb": 30,
      "transferTb": 1,
      "monthlyUsd": "6.00"
    },
    {
      "id": "app-2",
      "name": "App 2",
      "cpu": 2,
      "ramGb": 4,
      "storageGb": 60,
      "transferTb": 2,
      "monthlyUsd": "12.00"
    },
    {
      "id": "scale-4",
      "name": "Scale 4",
      "cpu": 4,
      "ramGb": 8,
      "storageGb": 120,
      "transferTb": 4,
      "monthlyUsd": "24.00"
    }
  ],
  "locations": [
    {
      "id": "ch",
      "label": "Switzerland"
    },
    {
      "id": "pa",
      "label": "Panama"
    }
  ],
  "billingPeriods": [
    {
      "id": "monthly",
      "months": 1,
      "discountBps": 0
    },
    {
      "id": "quarterly",
      "months": 3,
      "discountBps": 0
    },
    {
      "id": "semiannually",
      "months": 6,
      "discountBps": 2800
    },
    {
      "id": "annually",
      "months": 12,
      "discountBps": 5000
    }
  ],
  "billing": [
    {
      "id": "monthly",
      "months": 1,
      "discountPercent": 0
    },
    {
      "id": "quarterly",
      "months": 3,
      "discountPercent": 0
    },
    {
      "id": "semiannually",
      "months": 6,
      "discountPercent": 28
    },
    {
      "id": "annually",
      "months": 12,
      "discountPercent": 50
    }
  ],
  "payments": {
    "assets": [
      {
        "id": "xmr-monero",
        "symbol": "XMR",
        "network": "monero-mainnet"
      },
      {
        "id": "btc-bitcoin",
        "symbol": "BTC",
        "network": "bitcoin-mainnet"
      },
      {
        "id": "ltc-litecoin",
        "symbol": "LTC",
        "network": "litecoin-mainnet"
      },
      {
        "id": "trx-tron",
        "symbol": "TRX",
        "network": "tron-mainnet"
      },
      {
        "id": "usdt-tron",
        "symbol": "USDT",
        "network": "tron-mainnet"
      },
      {
        "id": "eth-ethereum",
        "symbol": "ETH",
        "network": "ethereum-mainnet"
      },
      {
        "id": "usdt-ethereum",
        "symbol": "USDT",
        "network": "ethereum-mainnet"
      },
      {
        "id": "usdc-ethereum",
        "symbol": "USDC",
        "network": "ethereum-mainnet"
      },
      {
        "id": "sol-solana",
        "symbol": "SOL",
        "network": "solana-mainnet"
      }
    ],
    "quoteValidityMs": 3600000,
    "addressOnlyQr": true,
    "rateSource": "Kraken public ticker"
  },
  "paymentRoutes": [
    {
      "id": "xmr-monero",
      "label": "XMR / Monero"
    },
    {
      "id": "btc-bitcoin",
      "label": "BTC / Bitcoin"
    },
    {
      "id": "ltc-litecoin",
      "label": "LTC / Litecoin"
    },
    {
      "id": "trx-tron",
      "label": "TRX / TRON"
    },
    {
      "id": "usdt-tron",
      "label": "USDT / TRON · TRC-20"
    },
    {
      "id": "eth-ethereum",
      "label": "ETH / Ethereum mainnet"
    },
    {
      "id": "usdt-ethereum",
      "label": "USDT / Ethereum mainnet · ERC-20"
    },
    {
      "id": "usdc-ethereum",
      "label": "USDC / Ethereum mainnet · ERC-20"
    },
    {
      "id": "sol-solana",
      "label": "SOL / Solana"
    }
  ],
  "excludedPaymentRoutes": [
    "USDC / TRON"
  ],
  "quote": {
    "rateSource": "Kraken public ticker",
    "validForMinutes": 60,
    "qr": "address only"
  },
  "contact": {
    "standardSignup": "email only; no identity documents"
  },
  "operator": {
    "base": "Panama",
    "serverCountries": [
      "Switzerland",
      "Panama"
    ],
    "backupCountries": "unconfirmed"
  },
  "responsibilities": {
    "applicationOperator": "software installation, access, updates, monitoring and data recovery",
    "frontend": "does not verify payment, provision a VPS, or create a managed application service"
  },
  "geo": {
    "guides": [
      [
        "buy-an-api-vps-with-monero",
        "Buy an API VPS with Monero: from resource budget to payment record",
        "Turn an API workload worksheet into an explicit configuration, then preserve the payment record without treating it as delivery."
      ],
      [
        "harden-a-container-vps",
        "Harden a container VPS before exposing an API",
        "Reduce unnecessary exposure, separate credentials, and verify the path before a public API receives traffic."
      ],
      [
        "api-dns-cutover",
        "Move an API hostname with a tested return path",
        "Plan DNS, TLS, application health and a return decision before changing a production hostname."
      ],
      [
        "application-log-retention",
        "Keep useful application logs without keeping every secret",
        "Choose a short, useful operational record while excluding tokens, credentials and unnecessary personal data."
      ],
      [
        "separate-application-secrets",
        "Separate application secrets from deploy artifacts",
        "Keep deployable code and secret material on different paths with an owner and rotation record."
      ],
      [
        "api-health-endpoint",
        "Add a useful API health endpoint without exposing internals",
        "Use a small health response for routing decisions without publishing configuration, dependencies or secret-bearing diagnostics."
      ],
      [
        "request-timeouts-retries",
        "Set request timeouts and bounded retries",
        "Make waiting and retry behavior explicit so a dependency failure cannot create unbounded work."
      ],
      [
        "database-connection-limits",
        "Plan database connection limits across app and workers",
        "Budget database connections by process and pool before background workers consume the remaining headroom."
      ],
      [
        "certificate-renewal-rehearsal",
        "Rehearse certificate renewal and expiry response",
        "Record the renewal owner, test a non-destructive rehearsal and define the decision point before certificate expiry."
      ],
      [
        "api-outbound-transfer-budget",
        "Budget outbound transfer for an API",
        "Measure response size, cache behavior and scheduled exports before treating a monthly transfer allocation as sufficient."
      ],
      [
        "isolated-database-restore",
        "Test a database backup in an isolated restore",
        "Prove that a backup can be restored away from production and record the application checks that make it useful."
      ],
      [
        "api-incident-timeline",
        "Prepare an incident timeline from API symptoms",
        "Turn timestamps, request symptoms and changes into an ordered record that helps a maintainer choose the next safe check."
      ]
    ],
    "scenarios": [
      [
        "small-api-production-readiness",
        "A small paid API before its first production launch",
        "A practical checklist for a small API: access, health, payment boundaries, recovery steps and a safe launch decision."
      ],
      [
        "b2b-webhook-intake",
        "A low-volume B2B webhook intake",
        "An illustrative webhook receiver with signature checks, a limited queue and safe handling of repeated events."
      ],
      [
        "bounded-import-worker",
        "A scheduled data import with a bounded worker",
        "An illustrative import that limits parallel work, records source changes and stops before it overwhelms the application."
      ],
      [
        "safe-fixtures-staging-api",
        "A private team staging API with safe fixtures",
        "An illustrative staging service that keeps synthetic fixtures and external effects outside production boundaries."
      ],
      [
        "read-heavy-catalogue-api",
        "A small read-heavy catalogue API",
        "An illustrative catalogue API that separates cache assumptions from database recovery and publication decisions."
      ],
      [
        "separately-backed-up-db",
        "A separately backed-up application database",
        "An illustrative application database where recovery material has a known owner and an isolated restore check."
      ],
      [
        "docker-api-vps",
        "Docker VPS for an API, worker and optional database",
        "Choose a self-managed Docker VPS budget for one API process, an optional worker and an optional database."
      ]
    ],
    "buyingGuides": [
      [
        "offshore-vps-api-workload",
        "Buy an offshore VPS for an API workload"
      ],
      [
        "ram-cpu-concurrency",
        "Choose RAM and CPU from concurrency needs"
      ],
      [
        "storage-transfer-budget",
        "Budget storage growth and transfer together"
      ],
      [
        "country-dependency-choice",
        "Evaluate country choice against dependencies"
      ],
      [
        "saas-prepaid-budget",
        "Approve a six- or twelve-month SaaS hosting budget"
      ],
      [
        "access-backup-responsibilities",
        "Evaluate access, backups and operating responsibilities before purchase"
      ]
    ],
    "comparisons": [
      [
        "vps-vs-managed-api",
        "VPS versus a managed app platform for an API"
      ],
      [
        "combined-vs-separate-db",
        "One combined server versus separate app and database VPS"
      ],
      [
        "cpu-vs-worker-concurrency",
        "More CPU versus lower worker concurrency"
      ],
      [
        "snapshots-vs-app-aware-backups",
        "Snapshots versus application-aware database backups"
      ],
      [
        "monero-vs-bitcoin-workflow",
        "Monero versus Bitcoin for the hosting payment workflow"
      ],
      [
        "hosting-term-commitment",
        "Monthly versus six-month versus annual hosting commitment"
      ]
    ],
    "documentation": [
      [
        "plan-resource-reference",
        "Plan and resource reference"
      ],
      [
        "country-selection-record",
        "Country selection record"
      ],
      [
        "crypto-quote-checklist",
        "Crypto quote reading checklist"
      ],
      [
        "os-first-access",
        "OS and first access prerequisites"
      ],
      [
        "application-responsibilities",
        "Application operating responsibilities"
      ],
      [
        "recovery-evidence",
        "Recovery evidence checklist"
      ],
      [
        "deployment-handover",
        "Deployment handover packet"
      ],
      [
        "rate-expired-quote",
        "Rate and expired quote troubleshooting"
      ],
      [
        "payment-boundaries",
        "Payment and provisioning boundaries"
      ]
    ]
  }
}
