# MultiSig support in BTCPay Server
BTCPay Server v2.1.0 introduced refined support for multi signature (multisig) wallets designed to empower your setup with added security, collaboration, and flexibility.
This document provides step-by-step instructions for configuring and utilizing multisig wallets within your BTCPay Server instance.
# Overview
Multisig functionality in BTCPay Server enables:
- Collaborative custody: Create a wallet that requires multiple signatures to authorize broadcast a transaction.
- Self-hosted multisig coordination: Shared control of company’s public keys and signing flow without relying on a third-party.
- Hardware wallet support: Works seamlessly with the BTCPay Vault and is compatible with majority hardware signing devices allowing you to authorize a transaction with a hardware wallet.
- Notification system: Stay informed with email alerts when transactions are created, pending, (requiring sufficient amount of signatures), and broadcasted.
- Integration with plugins: Works with Vendor Pay and future features, enabling multisig-based payouts. Integrates with Xpub Extractor, allowing all multisig participants to easily get appropriate format
# Prerequisites
Ensure the following components are installed and configured:
- BTCPay Server instance (v2.1 or later)
- BTCPay Vault (opens new window)
- XpubExtractor Plugin (opens new window) (if you're setting up hardware wallet)
# Step 1: Collect Extended Public Keys
The following explains how to get required public key from the hardware wallet. If you're using software wallet, you can proceed to step 2.
- Navigate to
Manage Plugins
and confirm that XpubExtractor is installed and published by RockstarDev. - Connect the hardware wallet and launch BTCPay Vault (opens new window).
- Use the
Fetch Xpub
function to retrieve:- Extended public key (xpub)
- Root fingerprint
- Derivation path
- Save data for the wallet.
Example value:
xpub6CUGRUonZSQ4TWtTMmzXdrXDtypWKiKp5KUMRmD9YgoWDbEVpLFgje71pRAVBPX6DCmV9HNTLr8GHqKZANvNcFpSZe3kiKsH5Ej7ApG1NVDK
Root Fingerprint: abcdef21
Key Path: 48'/0'/0'/0'
# Inviting Additional Signers
- Go to
Settings
>Users
. - Add each participant’s email address and share the generated invite link with them directly. If you have Email SMTP in your server, they'll receive an invite email.
- Instruct participants to:
- Accept the invitation
- Create a BTCPay Server Store
- Use XpubExtractor (opens new window) to provide their xpub information
- They should save data for their wallets and share them with you.
Please note that, for now, you must invite users as Store Owners
. We plan to implement additional roles and permissions in the future to reduce the trust factor for those you invite to the multisig store. You can track the status of this implementation on GitHub (opens new window).
# Step 2: Create the Multi-signature Wallet
After collecting all required public keys, (e.g., 2-of-3 setup), proceed as follows:
- Go to
Bitcoin Wallets
. - Select
Connect an existing wallet
>Enter extended public key
. - Choose
Show multisig examples
and input the collected xpubs in the required format. - Click
Continue
to validate and preview the derived addresses. You can validate the preview via external software wallet, or simply by testing in the final step of this document.
An example of your multisig could look like this:
2-of-xpub6BosLW1vGZLkCW7NrgUQdREa7i3a7XJXnAMQzA3aJCEuEt8hXNRu2yG6Vxq2YvCCu8n2eUpZhVz5Zw3eQro2d5Wq8UdD2qhM1YG4ZcnC3kYd-xpub6FHVXph13QMR77fUMLREpN2L7D1fCqcVtzsGhM28jUy5CWTpYHDuN6gvN5Gi5rxJjL45AgXLhSzE27AHZkDwKZgTYaUmYc9rBoF2tuAgf6M-xpub6CJ61yVNhtEtcpS7pU8Jjpd1NHgAG6xWv1NG4b47SvhhVVqfzFrHdcDUpm96B2ftov3qd5uoy6b7bEVcdxQwK6R7T5ndJP8vTWTdS6RBn7Jr
This means 2 out of 3 listed signatures are required to authorize a transaction. You can as well put 3 out of 5, and so on.
Next, adjust wallet settings to ensure proper compatibility with various formats and easier signing.
- Navigate to
Wallet Settings
. - Enable the
Multisig on Server
option. - Input the
root fingerprint
andderivation path
for each key. - Enable
Include non-witness UTXO in PSBTs
for enhanced compatibility. Save
changes.

# (Optional) Testing the receive funds setup
- From the main multisig store, in the sidebar, click
Bitcoin > Receive
- Label the address (e.g. "Test")
- Send a small amount of Bitcoin to verify the setup
- Optionally you can import the multisig into a different software to verify receiving works.
# 3. Configure email notifications
This step ensures all participants receive email when the new transaction is created, requires their signature and finally broadcasted successfully.
For participants to receive updates on multisig activity, you have to set up custom email-rules.


- Go to
Store Settings > Emails > Email Rules
- Click on
Configure
and thenCreate
- From the
Trigger
dropdown, selectPending Transaction Created
and add email addresses of multisig participants, separated by a comma:email1@test.com, email2@test.com, email3@test.com
- Feel free to modify the default Body and Text to your liking.
- When you're done, click
Save
Repeat the steps 3 to 5 for two more triggers: Signature Collected
and Transaction Broadcasted
# Step 4: Send a transaction from the multisig wallet
- Go to your multisig wallet
- Enter recipient address and amount
- Click
Create Pending Transaction
- Participants will now receive an email if you followed the Step 3, prompting them to sign a transaction with their wallet.
# Step 5. Signing a multi-sig transaction:
Now that transaction has been created, participants would have to sign(authorize it) with their hardware wallet.
- In wallet transaction list of the main multi-signature store, participant will see a pending transaction.
- Click on
View
- If you're signing with a hardware wallet, connect your hardware wallet and ensure
BTCPay Vault
is running - Click
Sign
- Follow on-screen and device prompts to
sign the transaction



Other participants should follow the same steps. Once the required number of signatures is collected, click Broadcast to send the transaction.


Congratulations! You’ve sent your first multisig transaction using BTCPay Server.