XMR Multisig Script
Go to file
blackmask fc737037f8 added refresh wallets script 2023-06-16 03:29:50 +00:00
bin added bin 2022-09-14 12:10:17 +01:00
web added refresh wallets script 2023-06-16 03:29:50 +00:00
.gitignore added web ui 2022-11-10 08:53:35 +00:00
README.md fixed README 2022-11-10 08:58:42 +00:00
mswalletrpc.py added refresh wallets script 2023-06-16 03:29:50 +00:00
refresh.py added refresh wallets script 2023-06-16 03:29:50 +00:00
xms.py v0.1.1 2022-08-18 20:27:07 +05:00
xmsweb.py added timeout 2023-03-29 05:04:04 +01:00

README.md

XMR MultiSig wrapper for terminal monero clients

It supports only 2/3 multisig wallets.

Read WebGUI documentation to know how to use web client.

Made in Python3 by BlackMask

Install

Setup

  • Open Settings
  • Set up daemon-address, ie 127.0.0.1:18081
  • You can use public node from https://monero.fail/
  • If daemon requires authentification set up daemon-login, ie username:password
  • Stagenet and Testnet are for testing only, must be False for real money usage
  • If you use public node turn on tor proxy to hide your IP address, ie: 127.0.0.1:9050

Usage

Getting multisig wallet address

  • Generate new wallet. Send Round1 key to other participants.
  • When you receive Round1 keys from other participants select Make multisig wallet and paste these keys there. Send Round2 key to other participants.
  • When you receive Round2 keys from other participants select Exchange keys and paste these keys there. Send Round3 key to other participants.
  • When you receive Round3 keys from other participants select Finalize wallet and paste these keys there. You'll get multisig deposit address.
  • Send XMR to that address or wait when other participants do it.

Withdraw coins from multisig wallet

  • Check balance. If it's lower than expected check transfers. If you don't see all transfers as expected do Rescan blockchain.
  • If balance is fine select Export multisig info. It creates binary file ./wallet//ms_info and prints hex of data. Send this data to other participant.
  • He should do Import multisig info with hex of data.
  • After that he needs to select Transfer and paste there XMR address and amount to withdraw. Fee will be added to amount so never try to withdraw full balance. If everything is fine he'll get hex of transaction. He needs to send you that.
  • You can't paste to Linux terminal with default settings text more than 4kB so first you need to save transaction data to ./wallet//ms_tx_hex.txt Select Save transaction to file. It will open default text editor. Paste hex of transaction there and save file. Select Show transaction. You'll see body of transaction with withdrawal addresses, amounts and fee.
  • If you agree with transaction body select Sign transaction and select Submit transaction. After that transaction will be sent to blockchain and can't be revoke back.

Other features

  • You can set up wallet's label with any text you want. It can help you to understand purpose of each wallet.
  • You can select Open console. It prints wallet password and runs monero-wallet-cli for current wallet. Inside app type help all to get list of all commands. help <cmd_name> to get detail info of command. Press Ctrl-D to close monero-wallet-cli and back to xms.

Wallet directory structure:

  • wallet - wallet file
  • wallet.keys - wallet keys
  • wallet.address.txt - wallet's primary address
  • wallet.password.txt - wallet's password
  • wallet.seed.txt - wallet's seed to restore wallet
  • wallet.viewkey.txt - wallet's viewkey
  • wallet.label.txt - wallet's label if it was set up
  • ms.round1.txt - round1 multisig key, creates after prepare_multisig
  • ms.round2.txt - round2 multisig key, creates after make_multisig
  • ms.round3.txt - round3 multisig key, creates after exchange_multisig
  • ms.finalized.txt - consists "done" if multisig wallet was finalized
  • ms_tx_hex.txt - hex of multisig transaction
  • mx_tx_signed_hex.txt - hex of signed multisig transaction