{
  "version": "2",
  "generatedAt": "2026-11-03T22:49:39.280Z",
  "listing": {
    "slug": "btcpayserver--btcpayserver",
    "name": "BTCPay Server",
    "tagline": "Self-hosted Bitcoin payment processor with invoices, POS apps and the Greenfield REST API.",
    "shortTagline": "Self-hosted Bitcoin payments",
    "description": "BTCPay Server lets a business accept on-chain Bitcoin and Lightning payments without an intermediary: stores, invoices, payment requests, pull payments and payouts, a point-of-sale app and crowdfunding pages. The Greenfield API covers nearly the whole product and is the basis for running it headless. Docker deployment is configured through BTCPAY_* and BTCPAYGEN_* variables.",
    "capabilities": [
      "adaptable",
      "operable"
    ],
    "vertical": "invoicing-finance",
    "alternativeTo": [
      "BitPay",
      "Coinbase Commerce"
    ],
    "shape": "business-app",
    "formFactor": "web-app",
    "executionModel": "deterministic",
    "provenance": "human-written",
    "codeStack": {
      "languages": [
        "C#"
      ],
      "frameworks": [
        "ASP.NET Core (.NET 10)"
      ],
      "packageManager": "nuget",
      "database": [
        "PostgreSQL"
      ],
      "hostingTarget": [
        "Docker (btcpayserver-docker)",
        "third-party hosts",
        "manual .NET deploy"
      ]
    },
    "modelStack": null,
    "repos": [
      {
        "url": "https://github.com/btcpayserver/btcpayserver",
        "owner": "btcpayserver",
        "name": "btcpayserver",
        "license": "MIT",
        "stars": 7741,
        "lastCommit": "2026-09-02"
      }
    ],
    "interface": {
      "kind": "api",
      "url": "https://docs.btcpayserver.org/API/Greenfield/v1/",
      "official": true,
      "hosted": "local"
    },
    "operability": "official",
    "recommendedWrapper": null,
    "reach": [
      {
        "job": "Create and manage stores",
        "reachable": true,
        "evidence": "swagger.template.stores.json, stores-users, stores-rates"
      },
      {
        "job": "Issue invoices and watch payment status",
        "reachable": true,
        "evidence": "swagger.template.invoices.json, webhooks"
      },
      {
        "job": "Payment requests",
        "reachable": true,
        "evidence": "swagger.template.payment-requests.json"
      },
      {
        "job": "Pull payments and payouts (refunds, salaries)",
        "reachable": true,
        "evidence": "swagger.template.pull-payments.json, payout-processors"
      },
      {
        "job": "Point of sale, crowdfunding and donation apps",
        "reachable": true,
        "evidence": "swagger.template.apps.json"
      },
      {
        "job": "Lightning node operations",
        "reachable": true,
        "evidence": "swagger.template.lightning.internal.json, lightning.store, stores-lightning-addresses"
      },
      {
        "job": "On-chain wallet and payment methods",
        "reachable": true,
        "evidence": "swagger.template.stores-wallet.on-chain.json, stores-payment-methods"
      },
      {
        "job": "Users, API keys and notifications",
        "reachable": true,
        "evidence": "swagger.template.users.json, api-keys, authorization, notifications"
      },
      {
        "job": "Sign transactions with a hardware wallet",
        "reachable": false,
        "evidence": "BTCPay Vault runs in the browser next to the hardware wallet; not an API operation"
      },
      {
        "job": "Install and configure plugins",
        "reachable": null,
        "evidence": "no plugins group among the swagger templates; server admin UI or BTCPAYGEN_ADDITIONAL_FRAGMENTS"
      }
    ],
    "editions": [
      {
        "name": "Free",
        "price": null,
        "open": true,
        "distributions": [
          {
            "kind": "source",
            "url": "https://github.com/btcpayserver/btcpayserver"
          },
          {
            "kind": "container",
            "url": "https://docs.btcpayserver.org/Docker/"
          },
          {
            "kind": "hosted",
            "url": "https://docs.btcpayserver.org/ThirdPartyHosting/"
          }
        ]
      }
    ],
    "skills": {
      "kind": "contributor",
      "paths": [
        ".agents/skills/*/SKILL.md"
      ],
      "install": null,
      "note": "Repo carries contributor-facing development skills (migrations, changelog, PR descriptions, Playwright patterns) for working on the server. [contributor tooling, not adopter-facing]"
    },
    "customization": {
      "summary": "The Docker deployment is a generator: set BTCPAY_HOST, network, which coins and Lightning implementation to run, reverse proxy and Let's Encrypt email in the .env, add fragments for pruning or plugins, then run btcpay-setup.sh. Store branding, checkout appearance and rates are in-app settings; plugins extend behavior without forking.",
      "envVars": [
        "BTCPAY_HOST",
        "BTCPAY_ADDITIONAL_HOSTS",
        "NBITCOIN_NETWORK",
        "BTCPAYGEN_CRYPTO1",
        "BTCPAYGEN_LIGHTNING",
        "LIGHTNING_ALIAS",
        "BTCPAYGEN_REVERSEPROXY",
        "REVERSEPROXY_HTTP_PORT",
        "REVERSEPROXY_HTTPS_PORT",
        "LETSENCRYPT_EMAIL",
        "BTCPAY_LETSENCRYPT_HOSTS",
        "BTCPAYGEN_ADDITIONAL_FRAGMENTS",
        "BTCPAYGEN_EXCLUDE_FRAGMENTS",
        "BTCPAY_ENABLE_SSH"
      ],
      "configFiles": [
        ".env (BTCPAY_ENV_FILE)",
        "btcpay.env"
      ],
      "promptFiles": [],
      "effort": "config-only",
      "editCount": 16
    },
    "useWhen": [
      "I want to accept Bitcoin at my shop or website without a processor taking a cut or holding my keys",
      "I want my agent to raise invoices and check settlement over an API I control"
    ],
    "accounts": [],
    "active": true,
    "lastActivity": "2026-09-02",
    "gotchas": [
      "Bitcoin and Lightning only; no fiat card rails",
      "A full node sync takes days and hundreds of GB unless you add the pruning fragment",
      "Running Lightning means managing channel liquidity"
    ],
    "fit": {
      "adaptable": 3,
      "operable": 3
    },
    "evidence": {
      "formFactor": "ASP.NET web app with client-facing checkout and admin (README)",
      "executionModel": "no model at runtime",
      "operability": "Greenfield API documented at docs.btcpayserver.org by the Builder; swagger templates in BTCPayServer/wwwroot/swagger/v1",
      "effort": "docs.btcpayserver.org/Docker lists BTCPAY_* and BTCPAYGEN_* variables and the .env file",
      "editions": "README: free and open source, MIT; third-party hosting list",
      "active": "GitHub pushedAt 2026-09-02"
    },
    "confidence": {
      "formFactor": 0.95,
      "executionModel": 0.95,
      "operability": 0.95,
      "effort": 0.85,
      "reach": 0.85,
      "editions": 0.95
    },
    "openQuestions": [
      "Plugin management over Greenfield"
    ],
    "sources": [
      {
        "url": "https://github.com/btcpayserver/btcpayserver",
        "foundBy": "sourcing:invoicing-finance:github"
      },
      {
        "url": "https://docs.btcpayserver.org/Docker/",
        "foundBy": "analysis:invoicing-finance"
      },
      {
        "url": "https://github.com/btcpayserver/btcpayserver/tree/master/BTCPayServer/wwwroot/swagger/v1",
        "foundBy": "analysis:invoicing-finance"
      }
    ],
    "research": {
      "stage": "verified",
      "verdict": "unverified",
      "reason": "Both at 3: MIT, owner-documented env surface, official API with near-complete Reach. Gotcha is the Bitcoin-only rail.",
      "disputed": []
    },
    "url": "apps/btcpayserver--btcpayserver.html",
    "coverage": "partial",
    "paid": false,
    "source": "research/verified/btcpayserver--btcpayserver.json"
  }
}
