This documents shows how to connect Electrum Wallet to BTCPay Server.
Word of caution Using Electrum wallet relies on servers that are controlled by third-parties. Information, like public addresses, balances and the transacted amount can potentially be leaked. To protect against such leaks, you can setup your own Electrum Personnal Server, which is technically advanced task not covered in this document.
For better privacy, use BTCPay Wallet with a compatible hardware wallet or Wasabi.
If you understood the risks, but still want to proceed using Electrum, follow the instructions below.
- 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 Next
.
Choose Standard wallet
and proceed by clicking the Next
button.
Since we're creating a brand-new wallet,choose Create a new seed
and Next
From the multiple choice menu, select SegWit
and Next
IMPORTANT NOTE: 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 Next
.
When the wallet loads (it may take few moments), in the top menu, click on the Wallet
and thenInformation
.
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 Modify
link.
Paste the Master Public Key
into derivation scheme field as it is, without adding anything else. Make sure that Enabled
checkbox is ticked and click Continue
.
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 thenShow Console
.
Enter following commands in Electrum console and press enter
on your keyboard.
wallet.change_gap_limit(100)
wallet.storage.write()
Restart your Electrum and verify that the newly set gap limit is correct by entering in the console:
wallet.gap_limit
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.