How to accept Bitcoin donations the correct way?

Ravi
4 min readAug 10, 2020

--

One simple method to accept donations is to just publish your Bitcoin address. If multiple payments are made to that single address, your privacy is compromised as all the payments are linked to a same address. Thus using single address is not a good advice to accept donations. One solution is to replace old address with new address every-time someone makes a payment. This is cumbersome. Even if you replace the address, since the address is in public domain, your privacy is compromised i.e. If you put Bitcoin address in your youtube or twitter bio, everyone including these platforms know your Bitcoin address. There is a better way to accept Bitcoin donations/payments using opensource project BTCPay.

BTCPay lets you accept Bitcoin, manage invoices, run POS(point of sale) and a lot more. If you are running BTCPay, you can also allow your friends to signup on your BTCPay and thus you become sovereign payment processor like PayPal.

Here is demo donation page of mine using BTCPay: https://btcpayjungle.com/apps/2p8Sc6pm13Fs2YXEJgLwQs9GUf5H/pos

You can see that Bitcoin address is not revealed until sender enters the amount.

How to create donation page with BTCPay ?

step 1 : Setup a Bitcoin wallet and get master pub key (xpub, ypub, zpub) from this wallet
step 2: launch your own BTCPay or signup on BTCPay of someone else you trust.
step 3: enter your master pub key in BTCPay and create your payment page.

Step 1:

Setup a Bitcoin wallet witch allow you to access master pub keys. There are there type of master pub keys which are xpub, ypub and zpub key. Anyone of them works. xpub is oldest version while zpub is newest. xpub will create Bitcoin address that are bigger in size and will cost more transaction fees. Address derived with zpub cost less transaction fee but not everyone accept it. My advice is to go with ypub.

Warning : Anyone who has access to your master pub key can see all the payments received through that master pub key. They can not spend the received amounts. Thus it is advised to setup a new wallet for this purpose. My advice is to use wallets like Samourai wallet for mobile wallet(available for only android) or Trezor for hardware wallet.

For Trezor : Here is a guide on how to access master pub keys from Trezor wallet.

For Samourai wallet: go to settings, then Wallet, then Show Segwit YPUB

Step 2 :

You can launch your own BTCPay server or use of someone else you trust.

To launch your own : https://btcpayserver.org/ It will cost you less than $10 every month to run a BTCPay server. You can also run BTCPay on your spare computer if you can afford to keep it running 24x7.

To use someone else : https://btcpayjungle.com/ is quite popular one. I do trust them for smaller amount. If I am receiving big amount, I will use my own.

Step 3 :

Once you signup on BTCPay (or run your own BTCPay), click on create store.

Go to Derivation scheme, click on action Modify.

Then enter you master pub key in DerivationScheme and save.

Now go to APPS on top bar and create a new App. Fill in Name, Choose app type as PoinOfSale, and select store from available choices.

In the next page, remove all those by default products.

Click on save settings and then View App at the down of the page. That is the link for your Payment Page.

Share this link whenever you want to accept payments as a donations. All the payments made through this link will go directly into your Bitcoin wallet. To make it sure, do one demo payment.

If you want to Tip me, you can do it here https://btcpayjungle.com/apps/2p8Sc6pm13Fs2YXEJgLwQs9GUf5H/pos

--

--

Ravi

I write on Health and nutrition, bio hacks for muscle gain, Bitcoin and Math. Twitter.com/Ravi_21M