This post is a sequel to my earlier Merchant's Guide and the Ultimate Guide to BTCPay. Since then, the software has matured, it's more feature-rich, light-weight and easier to install with plenty of documentation and video tutorials available.
What is BTCPay Server?
BTCPay Server is a free and open-source cryptocurrency payment processor which allows you to receive payments in Bitcoin (on-chain and via the Lightning Network) and supported altcoins, directly to your wallet without fees, transaction cost or a middleman via your own full node.
Think of it as a non-custodial invoicing system which eliminates the third-party. The private keys are never uploaded to the server. There is no address re-use since each invoice generates a new address deriving from your xpubkey. That means increased privacy, security, and censorship-resistance. It's a tool for self-sovereign businesses, organizations or even individuals.
Who can use BTCPay?
- Merchants with an online or a physical store (connect your store to your BTCPay with one of many integrations or use a Point of Sale app)
- Charities, organizations or content creators (receive donations via POS app or payment button)
- Users who want to deploy Lightning Network node easily
- Users who want to become payment processors for their friends or local community
- Exchanges which want to integrate with BTCPay and allow merchants to receive fiat payments
- Hosting providers which want to offer 1-click deployment to customers
- Developers who want to help and learn
Why a business should run a full node?
BTCPay vs other payment processors
The most significant advantage of BTCPay over other processors is that it is entirely free and open-source, non-custodial software, created by the community. While most of the other processors hold your Bitcoins, BTCPay allows you to receive payments P2P, directly to your software or hardware wallet.
BTCPay is a self-hosted software. This means that you are your own payment processor. There are no subscriptions, no transaction fees. There's no third-party involvement which significantly increases the censorship-resistance, privacy, and security for you and your customers. Furthermore, BTCPay enables you to become a processor, which means you can charge for registration of your local merchants, or provide a free service to help spread the adoption.
How to deploy BTCPay Server?
How much does it cost to run BTCPay Server?
BTCPay is a 100% free software. You can run it as a self-hosted solution on your local server, or use a hosting provider, which is what a majority of users do. Additionally, you can use a third-party BTCPay host and attach your store to it.
If you choose to host it externally, the price depends on the hosting provider. Be sure to choose a VPS which meets the minimal requirements.
The low-priced VPS servers tested by the community start at around 8.8$ /month.
Is there a list of merchants using BTCPay?
BTCPay is decentralized, non-custodial service, so we don't really have a way of keeping a track on the number of users. However, some community members try to keep a list of BTCPay stores.
I don't have a store, how can I create one?
Follow this step by step guide and build your first online store from scratch.
How can I contribute to BTCPay?
The easiest way is to use the software for your business, provide feedback and report any bugs or issues you or your customers encounter.
Translating BTCPay, helping us with documentation are also ways in which you can help, even if you're not a developer or tech-savvy.
We need more VPS hosting providers to implement 1-Click BTCPay deployment and make BTCPay widely-available.
We are actively looking for developers who can take on and resolve GitHub issues and help with development.
We appreciate each and every contributor to the project and support we get from the community here.
Have a question about BTCPay Server? Feel free to ask in the comments.
How best to proceed from here and keep up with the project??
Electrum Personal Server is an implementation of the Electrum wallet server protocol that allows users to point their Electrum wallet at their own full node. It is compatible resource-saving features like pruning, blocksonly and disabled txindex. It is much less resource-intensive than other Electrum servers because it only stores the user's own addresses, instead of every address that was ever used. As such it makes tradeoffs, namely losing Electrum's "instant on" feature.
Full node wallets are important in bitcoin because they are an big part of what makes the system be trustless. No longer do people have to trust a financial institution like a bank or paypal, they can run software on their own computers. If bitcoin is digital gold, then a full node wallet is your own personal goldsmith who checks for you that received payments are genuine. You wouldn't accept large amounts of cash or gold coins without checking they are actually genuine, the same applies for bitcoin.
Full node wallets are also important for privacy. Using Electrum under default configuration requires it to send all your bitcoin addresses to some server. That server can then easily spy on you. Full node wallets like Electrum Personal Server would download the entire blockchain and scan it for the user's own addresses, and therefore don't reveal to anyone else which bitcoin addresses they are interested in.
Right now using Electrum Personal Server is the easiest way to use a hardware wallet backed by your own full node. It is very lightweight, being a small python script that barely uses any CPU or RAM; much less than the full node it's connected to. Hopefully Electrum Personal Server can be part of the solution in putting full node wallets into the hands of as many people as possible.
The project is now in beta release: https://github.com/chris-belcher/electrum-personal-server
It now has all the essential features to make it practical for use; Merkle proofs, deterministic wallets, bech32 addresses, SSL, Core's multi-wallet support. Along with the features that were in the alpha release of tracking new transactions, confirmations, block headers, importing addresses.