One thing I've always wanted was some sort of wallet to store my private keys in for Steem. Nearly every other blockchain project I'm interested has them, so I decided to take a some time and build one. I'm calling it Vessel, which can be a play on words for either "a vessel powered by steam" or "a vessel containing steam".
This project - like everything in Steem - is experimental by nature, so please be diligent with your personal security and the safe backups of your keys in multiple locations. As beta software, there may be rare situations data is corrupted or wiped, so please use at your own risk and backup backup backup.
With the advisories out of the way - please just be cautious. It's very likely that many bugs will need to be worked out.
This is the very first public pre-release of Vessel, which can be found here:
The newest releases will always be published via github, so please do not trust it from anywhere else. You can also compile it yourself from the source code, but I do not have instructions available yet. I will make them available as we get closer to a stable release.
The initial features include...
This post is long enough as it is, so I won't ramble on forever. There's plenty more posts to do that ;)
You can choose to import via a Steemit.com password (which is never saved) or import a WIF Private Key (of any type).
The 3rd option is an experimental system to generate private keys, which you're free to explore, but is largely useless unless you have someone to create an account for you.
Using the first option on the welcome screen, you will be able to enter a Steemit.com username and password (usually long and starts with a p), the permissions to grant the wallet, and then a password to encrypt the wallet locally.
The permission level itself is as follows:
Using the second option on the welcome screen, you can import an account using the WIF private key (key starting with the number 5). The WIF key itself determines what kind of permissions the wallet will receive, as you have 4 WIF keys, one for each permission level.
Both methods above once completed will display a confirmation letting you know what you're about to save to the wallet.
At this point, Cancel will abort the import and return you to the main screen, while Confirm will encrypt and save the key, sending you onto the Overview screen.
An overview of all accounts loaded within the wallet and their balances. Each account name is clickable and will open a browser window to steemit.com to view the account.
Pending rewards, when available, will display at the top of this screen as a notification. The notification will display the total rewards pending as well as a button to claim those rewards.
The larger numbers are abbreviated, and hovering over them will reveal the complete number.
The send interface allows you to easily send STEEM or SBD to any account or to an exchange.
Every account loaded within the wallet is available in the "From" dropdown field, as well as providing a search if you've got a ton of accounts. Only accounts with an Active or Owner key imported will be able to send, and accounts with Posting keys will be disabled.
The "To" field can be swapped between an account name or a list of predefined exchanges.
The "Amount" field can be toggled between SBD and STEEM, showing the balance of the selected currency below the input. Clicking on the balance will populate the input with the maximum amount available.
The optional memo field is available for various uses.
When sending to an exchange, you don't have to worry about typo's anymore. The exchanges are fixed strings within a dropdown.
If you have configured the Exchange from the Settings screen, the memo will automatically populate based on the currency + exchange combo.
Clicking "Preview Transaction" from the send page will prompt you to review the information provided. This gives you an opportunity to review and ensure everything is correct before signing the transaction.
If the wallet is encrypted (which it should be), after you confirm the transaction, you will have to decrypt your wallet to broadcast it.
Only when you enter the correct password will it let you proceed.
The Vesting screen gives you a brief overview of the status of your Power Down cycles. When an account is idle (not powering down), it is shown as displayed above.
From here, you can start:
Clicking "Start" on the Vesting screen will prompt you to specify the amount to power down. You can drag the slider from left to right to alter the amount.
The 3 pieces of information on this screen include:
Once active, the red dot turns into a much larger green lightning bolt to indicate the power down is active. The "Next Credit" column displays the amount of the next power down and when it will occur.
The "Start" button is now replaced with a "Stop" button, allowing you to cancel the power down cycle.
The Withdraw Route for each account can be changed by hitting the "Add Withdraw Route" button.
You will be prompted to specify:
For this example, I'm setting jesta as the withdraw route with 75% of what will be powered down. I choose to leave the checkbox unchecked, because I wanted it deposited as STEEM.
Clicking the "Add Withdraw Route" again will prompt the same message, allowing you to specify multiple accounts.
To continue the example, I'm setting aaron as the withdraw route with 25% of what will be powered down.
With the two actions I performed above, it has now changed my overview to show an active Power Down, that's being routed to 2 accounts:
25% to aaron as STEEM75% to jesta as STEEMThe little trash icon next to each one will allow you to remove that route.
Note - Any amount not specified to a destination account just powers down into the original account. So in this example, if I removed the 25% - aaron route, 25% of the powerdown would go directly into the webdev account.
The Accounts screen will show every account loaded in this wallet, whether it's encrypted, and what key type it is.
From this screen you can also add or remove accounts from the wallet.
Choosing to add a new account prompts just like the very first screen does, and works the exact same way.
This is a subsection of the Accounts screen, and I plan on adding more. This specific screen allows you to proxy your witness voting power to another account.
The settings panel will be for wallet settings, and currently is only used for the Exchange Configuration.
The Exchange Configuration allows you to specify the MEMO fields required for both Bittrex and Poloniex. These MEMOs will automatically fill the MEMO field on the Send page when you go to send to an exchange.
I hope you find Vessel as useful as I do. It's not perfect, but as an open source project, over time we'll get damn close.