BTCPay Server is a free and open-source Bitcoin payment processor which allows you to accept bitcoin without fees or intermediaries.
If you have trouble using BTCPay Server, consider joining communities listed on the official website to get help from other contributors. Only create a GitHub issue for technical issues you can't resolve through other channels or feature requests you've validated with other members of the community.
BTCPay Server is built and maintained entirely by volunteer contributors around the internet. We welcome and appreciate new contributions.
If you're a developer looking to help, but you're not sure where to begin, check the good first issue label, which contains small pieces of work that have been specifically flagged as being friendly to new contributors.
Contributors looking to do something a bit more challenging, before opening a pull request, please join our community chat or start a GitHub discussion to get early feedback, discuss best ways to tackle the problem and ensure there is no work duplication.
There are many other ways to get involved with the project. Check our contribution guidelines. To get the big-picture of the project development, visit our evolving roadmap. We organize different types of community calls several times a month. Subscribe to our calendar and feel free to join our calls to discuss development, design, documentation and more.
To begin developing locally, visit our local development guide. There are also several video-tutorials:
While the documentation advises using docker-compose, you may want to build BTCPay Server yourself.
First, install .NET Core SDK v6.0 as specified by the Microsoft website.
run scripts to run BTCPay Server, this example shows how to print the available command-line arguments of BTCPay Server.
If you want to debug, use Jetbrain's Rider or Visual Studio 2022.
You need to run the development time docker-compose as described in the test guide.
You can then run the debugger by using the Launch Profile
If you need to debug ledger wallet interaction, install the development time certificate with:
# Install development time certificate in the trust store dotnet dev-certs https --trust
Then use the
Docker-Regtest-https debug profile.
For more information, see the documentation: How to deploy a BTCPay Server instance.
BTCPay Server has two APIs:
The Greenfield API is our brand-new API which is still in development. Once complete, it will allow you to run BTCPay Server headlessly. The Legacy API, is fully compatible with BitPay's API. It has limited features, but allows instant migration from BitPay.
BTCPay Server software, logo and designs are provided under MIT License.
The BTCPay Server Project is proudly supported by these entities through the BTCPay Server Foundation.
If you'd like to support the project, please visit the donation page.