Monero 2/3 Multisig Tutorial
A comprehensive guide to setting up and using Monero multisignature wallets for secure transactions.
Monero multisignature (multisig) wallets allow multiple parties to jointly control funds, requiring a specified number of signatures to authorize transactions. This tutorial focuses on 2/3 multisig, where any 2 out of 3 participants must sign to release funds.
Multisig is essential for escrow services, secure group funds, and adding extra security layers to large transactions. While it may seem complex at first, this guide breaks down the process into manageable steps.
Currently, only two clients support Monero Multisig:
- monero-wallet-cli (console client)
- monero-wallet-rpc (RPC API client)
Both can be downloaded from the official Monero website: https://web.getmonero.org/downloads/#cli
Here's a basic example of how 2/3 multisig works with three participants: Alice, Bob, and Charlie.
- Alice wants to buy something from Bob, with Charlie acting as escrow
- All three create individual Monero wallets
- They exchange multisig information through three rounds of key exchanges
- After finalizing the multisig wallet, they get a deposit address
- Alice sends funds to this address
- When the transaction is complete, any two participants can authorize the release of funds
Alice starts by creating a new wallet:
She then activates the multisig feature (disabled by default):
Next, prepare the wallet for multisig:
This command generates a long key string starting with "MultisigxV2R1...". Alice needs to share this key with Bob and Charlie, and receive their keys.
After collecting all keys, she creates the multisig wallet:
This completes Round 1 and produces a Round 2 key (starting with "MultisigxV2Rn1...").
For Round 2, all parties exchange these new keys:
This produces Round 3 keys that must also be exchanged:
Once all three rounds of key exchange are complete, the multisig wallet is finalized with a deposit address. Alice can now send funds to this address.
When it's time to withdraw funds, Alice exports her multisig information:
This creates an ms_info binary file that she sends to Bob. Bob imports this file:
Bob can now create a transaction:
This creates a binary file multisig_monero_tx which Bob sends to Alice. Alice signs it:
After confirmation, the transaction can be submitted:
The transaction is now complete.
Note: Monero version 0.18.1 has a bug where you cannot complete Round 3 if you close monero-wallet-cli between Round 2 and Round 3. The monero-wallet-rpc client still works in this case.
XMS (XMR Multisig Script) is a Python tool that simplifies Monero multisig operations, making the entire process much easier than using the CLI directly.
Download XMS v0.1.1aTo download and set up XMS:
Copy monero-wallet-cli and monero-wallet-rpc to the ./bin folder and run XMS:
You'll see the main menu:
Go to Settings (option 4) to configure your connection:
If you're using Tor, you should run XMS with torsocks:
By default, torsocks can't connect to localhost. To change this, edit /etc/tor/torsocks.conf and uncomment:
Select option 1 to generate a new wallet. After generation, you'll see:
The multisig process with XMS is much simpler:
- Alice sends her Round1 key to Bob and Charlie, and receives their keys
- Alice selects option 1, pastes the Round1 keys, and gets her Round2 key
- She exchanges Round2 keys with Bob and Charlie
- Alice selects option 2, pastes the Round2 keys, and gets her Round3 key
- She exchanges Round3 keys with Bob and Charlie
- Alice selects option 3, pastes the Round3 keys, and the multisig wallet is finalized
After receiving funds, the withdrawal process is also simplified:
- Alice selects option 4 to export her multisig info (a hex string)
- She sends this info to Bob
- Bob selects option 5 to import Alice's multisig info
- Bob selects option 6 to create a transaction with the destination address and amount
- Bob sends the transaction hex to Alice
- Alice saves the transaction using option 7, views it with option 8, signs it with option 9, and submits it with option 10
It's recommended to test the entire multisig process on stagenet before using it with real funds. Open three terminals, generate three wallets, and practice the complete workflow.
For additional support or questions about XMS, you can reach out to the project maintainers through the Dark Matter support system.
| monero multisig cryptocurrency tutorial security |