The enhanced web wallet has the capability to create a multisig wallet with up to 15 participants. In simple terms, this is a joint account/wallet controlled by up to 15 individuals.
DISCLAIMER: You are advised to use this feature with small amounts of BAY until completely understanding the process and the implications. There is always a posibility to lose your funds if something is not done properly.
For the purpose of this tutorial we are going to create a ‘2 of 3’ multisig wallet. This means 3 participants and requires 2 of them to sign to unlock the funds. For this we will be using the web wallet
Create Multisig Wallet address
We assume we already have 3 wallets created from 3 different individuals and they have sent us their public keys. We are also going to paste the information in here so you can follow this example step by step:
From the web wallet dropdown menu choose multisig address and fill in the 3 keys given. Leave the 2 required signatures in place and press submit.
You should get the following info (here is what we get for the above keys):
NOTE: It is important to note that the redeem script or shareable URL have to be kept somewhere safe otherwise any funds that go into this account will not be able to be redeemed. The above info can be kept just in case by more than one participant in a safe place (text file, print, bookmark).
You can verify the previous script using either the shareable URL above or pasting the redeem script using the verify panel from the drop down menu:
Lets assume also for the purpose of this tutorial that we send 1 BAY to this joint (multisig) account. Note that 0.001 was the spend in an intermediate redeem transaction so 0,999 will be used on the rest of the tutorial.
NOTE: if we don’t have any BAY in the account we will get an error when we try to redeem using the following steps.
Redeem the FUNDS in the joint (multisig) account
On the web wallet we go to TRANSACTION from the DROP DOWN MENU, paste the redeem script that we have and press LOAD. After a few seconds the form will be filled with all relevant information pertaining to this multisig account. The input tab will say inputs 1.0000 which means the wallet has 1 BAY in it.
We have to specify the output(s) which means where the funds will go. We could have multiple output addresses but for the purpose of this tutorial we will only send the funds to 1 address. We input the amount that the wallet(s) will receive. We should not get the full amount but the amount after subtracting the transaction fee, 0.001 will suffice. Be careful as the transaction fee is autocalculated to be the remainder. For example, if we input 0.999 the fee becomes 0.001. After filling in this information we SUBMIT the form:
The wallet used to redeem the funds in this case:
IMPORTANT All the funds currently in the wallet have to be redeemed otherwise they become the transaction fee automatically which is why the fee is auto-calculated as the remainder. There is a popup warning if you have left too much BAY as the transaction fee which will prevent you from losing funds without realizing.
HINT If this address needs to be operated like a regular wallet and only send parts of the funds to a third party one can just send the remaining funds back to the multisig address, so instead of 1 output specify a 2nd output (multisig address with remaining funds)
As a result of SUBMITTING the form we get the following RAW transaction
We now go to the sign panel from the drop down menu and we use as inputs the transaction and the private key for 1 of the wallets involved (as we said we have 3 wallets / 3 participants). Below is the signed transaction.
NOTE The order we sign the transactions should be the same order we used to create the multisig address. For the purpose of this turorial we are using the 2nd wallet’s private key on this step.
We send this signed transaction to one of the other participants to sign using the same process and we get this twice signed transaction:
NOTE The 2nd party involved in this step cannot change where the funds are redeemed and any intercepting parties cannot either so this transaction can also be transmitted through insecure channels. The receiving party has the ability to verify (using the verify panel) that the funds are going to an agreed upon wallet.
We Broadcast the signed transaction and once everything is ok we receive the TX ID shown below:
NOTE: The time of the last signing to the broadcasting should not be too long otherwise we might receive a transaction error and the network would refuse our transaction.
- All funds have to be withdrawn on one transaction. Anything left over will be considered a transaction fee (which you will be warned about in advance)
- The last signature and the actual broadcasting should not have too much time between them as it can lead to the network not accepting the transaction
- The order of the signatures is significant. They must be put in the same order the multisig was created. If this process is not followed the signatures might seem OK but the network will reject the broadcast.
- The passing of the once signed transaction can be done through insecure channels because no one can change the redeeming wallet and amount
- The 2nd signatory can verify the transaction is what was agreed upon and sign and broadcast