btcpayserver-doc/docs/Development
2026-06-24 15:12:04 +09:00
..
Altcoins.md Update refs from dotnet 8.0 to 10.0 2026-06-24 15:12:04 +09:00
ecommerce-integration-guide.md chore: fix a large number of spelling issues in comments 2025-10-17 23:45:25 +08:00
GreenFieldExample-NodeJS.md correct redundant buffer call causing error and add typescript workaround (#1429) 2024-09-27 12:20:03 +02:00
GreenfieldExample-PHP.md Fixes after review. 2024-04-25 11:08:44 +02:00
GreenFieldExample.md Fixes after review. 2024-04-25 11:08:44 +02:00
InvoiceMetadata.md Adding markdown-it plugin to parse alt attrs also as title. (#1279) 2023-05-04 23:08:39 +02:00
LocalDev.md Update refs from dotnet 8.0 to 10.0 2026-06-24 15:12:04 +09:00
Plugins-Permissions.md Add documentation on plugin permissions development 2026-03-06 17:19:20 +09:00
Plugins.md Update instructions to create plugin 2026-06-24 15:08:46 +09:00
README.md Correct some typos in docs/Development/README.md (#1328) 2023-09-01 16:04:21 +02:00
TestnetDemo.md Format project using prettier 2023-03-27 16:15:18 +02:00
Theme.md Update theme doc 2024-04-30 11:59:20 +02:00

Architecture

BTCPay Server is a project which ties together several Bitcoin-related components into a coherent user experience for installing and managing your own payment processor.

Architecture

The minimal setup involves:

  • BTCPay Server
  • NBXplorer (Lightweight block explorer, responsible for tracking payments)
  • Bitcoin Core
  • PostgreSQL

Additionally, if you need Lightning Network access, NBXplorer supports connections to:

  • Core Lightning (CLN) (via unix sockets)
  • LND (via the REST interface)

Video below shows BTCPay Architecture in-depth.

BTCPay Architecture


We provide several ways of deploying BTCPay Server, depending on whether you favor flexibility or ease-of-use.

From the easiest way to the hardest:

Some community members also offer third-party hosting (Having someone else manage BTCPay Server for you).

Remember the huge value of having direct control of your wallet and web service; for this reason we recommend you use Azure deployment or Web-Interface deployment and do the setup yourself - it is pretty easy!