One of the essential tools EOS users have to improve on their accounts is permission management.
Unlike Bitcoin, where one Public Key serves as one's Account, the EOS Accounts feature two keypairs. One for the Active and one for the Owner's Permission. When used correctly (using two different key pairs for Active and Owner Permission) and with REX staking (to savings for example), you already have decent security measures.
Creating a Safemode Permission
Warning: Please understand that modifying your account's permissions can have irreversible adverse effects. Make sure to write down all the keys and double-check everything before making changes.
Fortunately, applications are becoming more and more user-friendly. For example, the block explorer bloks.io already offers a build process to create a Safemode Permission.
In the following step-by-step guide, we walk you through this process. We added print screens with red numbers and boxes to make it easier for you to follow.
Prerequisites:
EOS Wallet with imported EOS Account. (In this guide, we use Anchor Wallet)
Let's start:
Make sure you have two different key pairs for Active and Owner's Permission.
If not, Click here to follow step-by-step guide.
Go to bloks.io and login with your Owner's Permission. (check print screen below)
In the menu, under the search bar, select Wallet.
Click on Security (Find it in the left menu).
Place to create the Safemode Permission. Please secure the two keys: Safemode Public Key and Safemode Private Key.
They are going to be changed later on for security reasons.
Choose an unstake time delay, for example, 3 days.
This means, that after the unstake transaction went through it takes three days to have your unstaked EOS liquid. (This gives you time to react with your Owner Permission if it wasn't you who unstaked)
Now click on Create Safemode.
If you're using Anchor Wallet, you're likely to get the following warning message:
To proceed with the transaction, you have to allow dangerous transactions for a short period.
Open your Anchor Wallet and click on the Settings Symbol (upper right corner).
b. Scroll down to Advanced Options and choose Allow dangerous transactions.
c. Now switch to bloks.io and click on Create Safemode and sign the transaction with your Wallet. (See Step 6).
Important: After the transaction goes through, change the transaction setting in you Anchor Wallet under Advanced Options to Disable dangerous transactions.
9. Check on bloks.io. You should now see a permission hierarchy similar to this, with different keys:
10. Congratulations, you successfully created your Safemode Permission!
Note: Now you still can stake EOS with your Active Permission but only unstake EOS with the Safemode Permission.
What you want to do now is to change the Safemode Key pair to a secure, offline generated key pair. You can do this with eoskey or with Anchor Wallet key generator (you find it in Tools -> Manage Keys -> Generate Key Pairs) and store it safely!
Please check out our tutorial of how to backup your private keys here.
11. When you generate new keys with the offline tool and secure them, you must import your Safemode Account into your Anchor Wallet using the Safemode Private Key from Step 4.
12. In the Anchor Wallet, we choose the specific EOS Account with the safemode permission and go to Tools -> Permissions and to safemode permission, we click on Modify:
13. Now change the key to the new Public Key you just created offline with eoskey or Anchor Wallet to secure your wallet.
14. Finally, this is not a necessary step but it is a best practice. Think of your Owner Key as a one-time use item. Once you use it, you should reset and store securely offline. Please follow this guide to reset your Owner's Key.
Note: If you wish to remove the Safemode Permission, it can be deleted by logging into bloks.io with your Owner Permission and deleting Safemode from the Permissions Manager tab.
We hope you enjoyed this guide and you reached your goal. If you have any questions, EOS Support is always there for you online, in 9 languages. So don't hesitate to contact us via Direct Chat: eossupport.io (blue icon on the bottom right).
Author: Markus Hinrichs
Editor: Dario Cesaro; Randall Roland
Translator: -
Sources & References:
Tutorials & How-to guides:
Image Credits