Multisignature accounts, one of the best ways to secure a communal fund, and without a doubt, a very promising EOS feature. You may already understand the basics, but how do you actually sign transactions with different keys, and how can you set up a multisignature account yourself?
The basic setup of an EOS account
By default, an EOS account has 2 permissions, active and owner.
The active permission authority is used for transferring funds, voting for producers and making other high-level account changes.
The owner permission symbolizes ownership of an account. There are only a few transactions that require this authority, but most notably, are actions that make any kind of change to the owner authority. Generally, it is suggested that owner is kept in cold storage and not shared with anyone. The ownerpermission can be used to recover another permission that may have been compromised.
By default, the keys for the active and owner both have a weight of 1, and both the active and the owner permission have a default threshold of 1. This means that there is only 1 signature from the owner key required to perform any action that requires the owner permission. The same goes for the activepermission. There is only 1 signature from the active key required to perform any action that requires the active permission.
This is how a default EOS account is set up.
How a multisignature account works
In the above image you can see a possible setup of a multisignature account. In this example the owner permission has a threshold of 2, and has 2 keys, both with a weight of 1. This means that the signature of both keys is needed to perform any action that requires the owner permission.
The active permission has a threshold of 1, and has 2 keys, both with a weight of 1. This means that only 1 signature of any of of the 2 keys is required to perform any action that requires the active permission.
How to create a multisignature account yourself
Assuming the above makes sense, we will now explain how to setup a multisignature account on your own, using the EOSToolkit. We will set up the account just like the multisignature account explained above.
First of all you have to download Scatter, a browser extension*. You can get Scatter here. Follow the instructions on how to set up your Scatter account and login to your Scatter extension (for step by step instructions follow this guide). After that go to toolkit and connect your existing EOS account. For a more detailed instruction on how to connect your account to Scatter, visit the new helpdesk by Blockgenic and Genereos.
*The Scatter chrome extension is no longer the recommended tool, this is currently Scatter desktop. For instructions on how to install Scatter desktop follow this guide.
After you have connected your Scatter account, you can visit the ‘advanced permissions’ tab. We will start by changing the owner permission of the account. Fill in the blanks using the correct information and keys and click update. You can also add more keys and change the threshold and the weight of the keys if you want.
After you have updated the owner permission you can update the active permission. Fill in the blanks using the correct information and keys and click update. Just like with the owner permission, you can also add more keys and change the threshold and the weight of the keys if you want.
Signing and creating multisignature transactions
Once you have set up your multisignature account, you can start with learning how to create multisignature transactions, and how to sign them. To do so go to EOSToolkit.
First of all you will have to login with one of your accounts that controls part of the multisignature wallet. After you have done this, check if ‘multisig mode’ is selected at the top left of the toolkit. If this is not the case, click on ‘singlesig mode’ to change to ‘multisig mode’.
Now you can go to ‘transfer tokens’ and start generating your transaction. To do so fill in the necessary information and click send.
Check the transaction and click on ‘create json’.
Now you can start signing the transaction. To do this go to ‘sign transaction’ and load the json file, or paste it into the box. Then click ‘sign transaction’ and sign it with your first account. Download the json file and store it carefully, you’ll need it later.
After you have signed the transaction with your first account (that has the active permission), change to the second or third account that holds this permission and sign the transaction in the same way as you did with the first account. Also save this json file.
Now you can check if you can push the transaction to the network. To do this check the needed threshold to use the active permission. If you have met the threshold to use the active permission (which is needed to transfer EOS) you can go to the next step, if not, sign the transaction with different accounts until the threshold is met.
If you have executed all the above steps you can go to ‘push transaction’. Add in all the needed signatures and load the json file of the initial transaction, afterwards click ‘push transaction’ to execute the transaction.
You have now sent your first EOS multisignature transaction, congratulations!