This documents explains how to connect a desktop Electrum Wallet to a BTCPay Server.
Word of caution Electrum wallet relies on Electrum servers that are controlled by third-parties. Information, like public addresses, balances and the transacted amount can potentially be leaked.
You can read about the differences between EPS and ElectrumX here.
Create a Store in BTCPay Server
Download and install Electrum Wallet
After the installation, open Electrum Wallet by clicking on the icon on your desktop.
Create a new Electrum Wallet
In Electrum, Wallet > Wallet Information - copy the Master Public Key.
In BTCPay Server, Store Settings > General > Derivation Scheme - Paste the Extended Public Key
Go to Receive tab in Electrum.
Compare the addresses in Electrum and BTCPay Server, they should match.
Confirm the address match in BTCPay.
The following setup guides you through setting up an entirely new Bech32(SegWit) Wallet in Electrum. If you already have a wallet skip to the Extended Public Key copying.
Firstly, give your wallet a name, for example,
BTCPay Server Wallet and click
Standard wallet and proceed by clicking the
Since we're creating a brand-new wallet,choose
Create a new seed and
From the multiple choice menu, select
IMPORTANT NOTE: If you're a merchant, instead of SegWit (Bech32), it's recommended to use SegWit wrapped (P2SH) format. This guide explains how to create P2SH wallet in Electrum that's more suited for merchants, due to compatability with legacy wallets customers use.
IMPORTANT NOTE 2: Write down your recovery words in the order you see them on the screen. Write them down a piece of paper and store it somewhere secure. Take your time and triple check each word. Do not store your seed in a digital format (photograph, text document). Whoever has the access to your seed can access your funds. Confirm that the seed has been properly backed up by re-entering it in the same order. Once the seed is validated, proceed to the next step.
It's highly recommended that you encrypt your wallet. Select a password that you can easily remember and mark make sure
Encrypt Wallet File is marked. Proceed by clicking
When the wallet loads (it may take few moments), in the top menu, click on the
Wallet and then
Select and copy the
Master Public Key. This is the public key from which BTCPay will derive addresses.
Return to your BTCPay Server. Click on the
Stores in the header menu and scroll until you see
Derivation Scheme section. Click on the
Master Public Key into derivation scheme field as it is, without adding anything else. Make sure that
Enabled checkbox is ticked and click
Return to the Electrum Wallet. Go to
Receive tab which shows your wallet receiving address.
Compare the address you see in Electrum Wallet to Addresses shown in BTCPay Server. If there's a match,
continue. If there is no match, copy the address from Electrum and paste it into
Hint Address Form. If you still can't get the matching, double-check that you're actually pasting
Master Public Key.
In the top menu, click on the
View and then
Show Console .
Enter following commands in Electrum console and press
enteron your keyboard.
Restart your Electrum and verify that the newly set gap limit is correct by entering in the console:
There's no good answer to how much you should set the gap limit to. Most merchants set 100-200. If you're a big merchants with high transaction volume, you can try with even higher gap limit.
For more details about the Gap Limit, check the FAQ.
Electrum and BTCPay Server are now connected. Any payments received to your BTCPay will be visible in Electrum, where you can further spend them.