Difference between revisions of "Manual payout"
Line 22: | Line 22: | ||
* [https://coinb.in/ Coinbin web wallet] | * [https://coinb.in/ Coinbin web wallet] | ||
* [https://www.torproject.org/ Tor browser] | * [https://www.torproject.org/ Tor browser] | ||
+ | |||
+ | == Get multisig public keys == | ||
+ | |||
+ | Each trader involved can get their public keys and the other trader's public keys in their trade JSON contract. | ||
+ | # Find your trade under <code>PORTFOLIO</code>. | ||
+ | # Click the <code>i</code> icon next to the trade ID, and at the bottom click <code>VIEW CONTRACT IN JSON FORMAT</code>. At the end, you see the Buyer and Seller public keys: | ||
+ | <nowiki> | ||
+ | BuyerMultiSigPubKeyHex: <hex value> | ||
+ | SellerMultiSigPubKeyHex: <hex value></nowiki> | ||
== Get private keys == | == Get private keys == | ||
Line 31: | Line 40: | ||
# When you've found this entry, select and copy the <code>priv WIF=<hex value></code> value that immediately follows the pub HEX value. This value is the private key. | # When you've found this entry, select and copy the <code>priv WIF=<hex value></code> value that immediately follows the pub HEX value. This value is the private key. | ||
# Copy, paste and save that information in a <code>bisqWallet.txt</code> file. | # Copy, paste and save that information in a <code>bisqWallet.txt</code> file. | ||
− | |||
''Note: If your wallet uses a password, you will need to remove the password to view the private keys in wallet data.'' | ''Note: If your wallet uses a password, you will need to remove the password to view the private keys in wallet data.'' | ||
− | == | + | == Get payout addresses == |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
At the end of the JSON contract file you can also find the intended payout address for each trader: | At the end of the JSON contract file you can also find the intended payout address for each trader: | ||
Line 51: | Line 50: | ||
takerPayoutAddressString: <address value></nowiki> | takerPayoutAddressString: <address value></nowiki> | ||
− | == | + | == Recreating Redeem script == |
For all the web interactions use the Tor browser. | For all the web interactions use the Tor browser. | ||
# Go to the [https://coinb.in/ Coinbin web wallet]: | # Go to the [https://coinb.in/ Coinbin web wallet]: | ||
# At the top click <code>New</code> and from the dropdown menu choose <code>MultiSig Address</code> | # At the top click <code>New</code> and from the dropdown menu choose <code>MultiSig Address</code> | ||
− | # Paste the three public keys in the following order | + | # Paste the three public keys in the following order 1) SellerMultiSigPubKeyHex, 2) BuyerMultiSigPubKeyHex |
# Click <code>submit</code> to see an address and a Redeem Script. Make sure the address matches the multisig address for the trade. If not, try to change the order of the public keys. | # Click <code>submit</code> to see an address and a Redeem Script. Make sure the address matches the multisig address for the trade. If not, try to change the order of the public keys. | ||
# Copy and save the Redeem Script. | # Copy and save the Redeem Script. | ||
− | == | + | == Creating transaction == |
# Again, click <code>New</code> at the top, but this time choose <code>Transaction</code> from the dropdown menu. | # Again, click <code>New</code> at the top, but this time choose <code>Transaction</code> from the dropdown menu. | ||
# Paste the Redeem Script in the text field at the top and click <code>Load</code>. It should take a few seconds and then return the value locked in the multisig. | # Paste the Redeem Script in the text field at the top and click <code>Load</code>. It should take a few seconds and then return the value locked in the multisig. | ||
Line 68: | Line 67: | ||
# Click <code>submit</code> to obtain an encoded transaction string. | # Click <code>submit</code> to obtain an encoded transaction string. | ||
− | == | + | == Verify transaction == |
Click <code>Verify</code> at the top and paste the encoded string obtained from the step 5.e. Verify it all is correct before moving to the next step. | Click <code>Verify</code> at the top and paste the encoded string obtained from the step 5.e. Verify it all is correct before moving to the next step. | ||
− | == | + | == Sign transaction == |
− | # Click <code>Sign</code> at the top of the page and paste your WIF private key | + | # Click <code>Sign</code> at the top of the page and paste your WIF private key in the <code>Private key</code> text field and the encoded transaction in the text field below. |
# Click <code>Submit</code> to get a new encoded transaction string. | # Click <code>Submit</code> to get a new encoded transaction string. | ||
# Copy and save it and share it with the other parties of the multisig so they can sign and broadcast it. | # Copy and save it and share it with the other parties of the multisig so they can sign and broadcast it. | ||
− | == | + | == Second signature and broadcast == |
− | # The second signer clicks <code>Verify</code> at the top of the Coinbin website and pastes the encoded string the previous signer shared with you. If you are ok with it, click <code>Sign</code> at the top of the page and paste your WIF private key | + | # The second signer clicks <code>Verify</code> at the top of the Coinbin website and pastes the encoded string the previous signer shared with you. If you are ok with it, click <code>Sign</code> at the top of the page and paste your WIF private key text field and the encoded transaction shared with you in the text field below. |
# Click <code>Submit</code> to get a new encoded transaction string. | # Click <code>Submit</code> to get a new encoded transaction string. | ||
# Copy and save it. | # Copy and save it. | ||
− | == | + | == Verify transaction before broadcasting== |
# Confirm everything is correct and click <code>Broadcast</code> at the top of the page. | # Confirm everything is correct and click <code>Broadcast</code> at the top of the page. | ||
# After you have signed the transaction paste the encoded transaction string and click <code>Submit</code>. | # After you have signed the transaction paste the encoded transaction string and click <code>Submit</code>. | ||
# When complete, delete the <code>bisqWallet.txt</code> file created in step 1. | # When complete, delete the <code>bisqWallet.txt</code> file created in step 1. |
Revision as of 14:07, 20 November 2020
Contents
Warning
In this process you copy and paste your private keys from the Bisq software into a web browser. As a precaution it is advised you remove all of your funds from this wallet before starting this procedure.
Precautions
This method is only necessary in extreme occasions where one of the traders may not be available. Therefore it is important to make sure that the person who constructs the transaction does not defraud the other signers.
What you need
This document uses open source tools (other than Bisq) to create, sign and broadcast transactions of funds locked in multisig transactions. To spend out of a multisig, two things are needed:
- A redeem script.
- Enough private keys to meet the minimum multisig threshold. Use the string in
priv WIF=
instead ofpriv HEX=
.
Bisq does not provide the Redeem Script for the multisig, but we can recreate it with all the public keys involved in the multisig.
Tools you need:
- Bisq software
- Blockstream's block explorer
- Coinbin web wallet
- Tor browser
Get multisig public keys
Each trader involved can get their public keys and the other trader's public keys in their trade JSON contract.
- Find your trade under
PORTFOLIO
. - Click the
i
icon next to the trade ID, and at the bottom clickVIEW CONTRACT IN JSON FORMAT
. At the end, you see the Buyer and Seller public keys:
BuyerMultiSigPubKeyHex: <hex value> SellerMultiSigPubKeyHex: <hex value>
Get private keys
To access your Bisq wallet private key
- Press
Ctrl + j
,alt +j
orcmd + j
. - Check
Include private keys
and clickCOPY TO CLIPBOARD
. - In the text editor, search for the public key value. You are looking for an entry that reads
DeterministicKey{pub HEX=<hex value>
where <hex value> is the public key. - When you've found this entry, select and copy the
priv WIF=<hex value>
value that immediately follows the pub HEX value. This value is the private key. - Copy, paste and save that information in a
bisqWallet.txt
file.
Note: If your wallet uses a password, you will need to remove the password to view the private keys in wallet data.
Get payout addresses
At the end of the JSON contract file you can also find the intended payout address for each trader:
makerPayoutAddressString: <address value> takerPayoutAddressString: <address value>
Recreating Redeem script
For all the web interactions use the Tor browser.
- Go to the Coinbin web wallet:
- At the top click
New
and from the dropdown menu chooseMultiSig Address
- Paste the three public keys in the following order 1) SellerMultiSigPubKeyHex, 2) BuyerMultiSigPubKeyHex
- Click
submit
to see an address and a Redeem Script. Make sure the address matches the multisig address for the trade. If not, try to change the order of the public keys. - Copy and save the Redeem Script.
Creating transaction
- Again, click
New
at the top, but this time chooseTransaction
from the dropdown menu. - Paste the Redeem Script in the text field at the top and click
Load
. It should take a few seconds and then return the value locked in the multisig. - For the first input fill in an address from
makerPayoutAddressString
and the respective trade amount. - Add a new output by clicking the
+
sign next to theamount
field. For this second output paste the address that belongs totakerPayoutAddressString
and the respective trade amount. - Copy and save the transaction.
- Click
submit
to obtain an encoded transaction string.
Verify transaction
Click Verify
at the top and paste the encoded string obtained from the step 5.e. Verify it all is correct before moving to the next step.
Sign transaction
- Click
Sign
at the top of the page and paste your WIF private key in thePrivate key
text field and the encoded transaction in the text field below. - Click
Submit
to get a new encoded transaction string. - Copy and save it and share it with the other parties of the multisig so they can sign and broadcast it.
Second signature and broadcast
- The second signer clicks
Verify
at the top of the Coinbin website and pastes the encoded string the previous signer shared with you. If you are ok with it, clickSign
at the top of the page and paste your WIF private key text field and the encoded transaction shared with you in the text field below. - Click
Submit
to get a new encoded transaction string. - Copy and save it.
Verify transaction before broadcasting
- Confirm everything is correct and click
Broadcast
at the top of the page. - After you have signed the transaction paste the encoded transaction string and click
Submit
. - When complete, delete the
bisqWallet.txt
file created in step 1.