A lot has happened on Hive these past 6 months and I you followed the @keychain account weekly posts, you know that we've never stop building feature after feature, mostly on our mobile App (available on Android and iOS) but also on our extension (available on Chrome, Firefox, Opera and Brave).
The current proposal is coming to an end soon but there's still so much we want to do to help the Hive ecosystem thrive, hence this new proposal.
Hive Keychain DHF 3
We envision Keychain at the center of the Hive ecosystem, enabling both web and mobile dApps to interact with the Hive blockchain in a secure manner.
To reach this goal, we need your support once again to keep building towards this goal.
This new proposal will start on May 15th, date at which the current one will expire, there will be no overlap between the two proposals.
This proposal will mainly focus on two different axis :
Maintain, improve and refactor the existing browser extensions
Continue developing the Keychain mobile Apps
The past and upcoming work regarding these two projects will be discussed on the paragraphs below.
Hive Keychain Mobile
There is a ton of features we want to provide to make Keychain a great mobile App that would help the whole Hive mobile ecosystem thrive. As such, our focus was mostly turned towards mobile development these past 6 months.
Thanks to that we made some good progress on the wallet side:
Apps size optimization
Stores pages creation
Iterated on Alpha tests until having a wallet stable enough to be released on both Android and iOS as Open Beta
Implemented the drawer menu
Implemented the keys management screen
Created issues templates for better reporting on Github
Various UI fixes for the wallet part of the App
Fixed voting power and vote value calculation
Fixed several navigation glitches
Improved error handling
Added Hive Engine transfer confirmation (the transaction will show as pending until confirmed by HE)
Disable transfer (and other transactions necessitating active authority) and show a message when the active key is missing
Confirmation screen for transfers
Phishing protection during transfers
Exchange transfer detection. It will show if the memo is missing
Added HBD conversion modal, as well as a list of current conversions
Implementation of a bridge to access the decodeMemo, encodeMemo, signTx and signBuffer despite crypto core module being unavailable on React Native.
Automatically iterate fetching the transaction list. The list will also expand when scrolling to the end.
Transfers memo encryption
Transition from dhive to hive-tx-js for broadcasts
Inputs sanitizing
Once all that work was out of the way on the wallet side, it was time to work on our in-App browser:
Single tab, full page browser
Hive Keychain Js code is injected to the WebView via a bridge
Requests integrity validation
Requests authority validation
A dialog displays request summaries on which users can accept or not the request
Almost all Hive Keychain requests are already implemented (a few minor ones still need to be added)
Bottom bar allows to go to previous / next page, reload or search for an url
On the url search page, an autocomplete help users find a link through their history
Here are some screenshots that I hope will make you excited about the Apps:
Although we made a lot of progress, there is still much we want to do in the coming months:
Transform the current simple browser tab into a full-fledged browser experience : making the browser multi-tab, handling tabs management and favorites.
Create a homepage with a list of Hive dApps by categories. This homepage will be served on new tabs.
Add features missing features to the wallet (i.e. buying HIVE/HBD)
Governance tab (witness votes, proxy, proposals)
Adding Hive Engine features (staking etc.)
Implement App to App communication, allowing other mobile Apps to request transactions directly to Keychain without ever seeing the keys.
Write the SDKs that will allow other mobile Apps to make those requests to Hive Keychain.
Add deep linking to enable users to open links from external apps (i.e. Discord) directly in Keychain browser
Hive Keychain Extension
Although, most of the energy was focused on the mobile Apps during the last 6 months, we still managed to push some work on the extension side:
requestSignBuffer, an authentication method for dApps, can now be used without specifying an account in advance. The account to login with can now be selected directly on Keychain. These operations can now receive a custom title as well to let users know what the signature will be used for.
requestSignBuffer operations can now be whitelisted if they dont necessitate active key.
Include settings to the export files, to really make it seamless to import keychain to a new device using a .kc file (thanks to @quochuy)
Fixed Keychain UI on second screen (it was lagging on MacOS)
Documentation updates
Updated our APIs to v2 (price APIs for instance)
Several UI adjustments
Pull requests review
Code refactoring
Users and dApp developers support
There is much more that we would like to do on the extension side and this new proposal with a new developer joining the team would allow us to do just that :
Implementation of 2FA (will be an optional setting).
Go further with onboarding by letting users create accounts directly from Keychain using one of the onboarding services
No-key extension. We want to make it possible to use the extension without any key if you are on an unsafe computer. This will be implemented when the mobile App is mature enough and will allow to link the extension to the mobile phone via QR code and send the requests to that phone, on which they can be confirmed
Ledger integration as soon as the Hive application is approved by Ledger (it's taking a while, if anyone has information about this I'd be glad to hear from this)
HE tokens operations integration (only transfers are supported so far)
Information about proposals
Reorganization of the settings
Preparation of new features integration ahead of time when introduced via a HF
Maintaining extension across all supported browsers through future HFs
Refactor the entire extension popup and dialogs using React.js
Users / Devs support
Additional work
Administration
Because Hive Keychain is a cryptocurrency wallet, Apple required us to publish it as a company and not as an individual account.
We made our utmost to incorporate and migrate the Apple account in a timely manner, in order to minimize the impact on the iOS App updates.
Landing page
Another requirement from Apple was to setup a landing page. Since we had no time to waste, @nateaguila sent me a design in record time and we were done within a few days.
We will improve this page when we have a bit more time to put into it.
Here it is : https://hive-keychain.com
Backend
We are maintaining and occasionally adding some features to our backend. It is mostly used to perform HiveSQL requests, provide some global configuration (RPC nodes) and assets price (from Bittrex).
Support
We are always thriving to give a timely response to issues reported on our Discord (newly created) or Github.
HiveFest
It was my privilege to present Hive Keychain at the first HiveFest. Big thanks to @roelandp for organizing the event!
Budget
For this new proposal, we are applying for a daily budget of 300 HBD for a period of 12 months.
This increase in daily budget will be used to hire part-time a talented developer (@cedricguillas) who used to work with me on SteemPlus a few years ago. You can see his new introduction post here. As I mentioned previously, developing the mobile Apps and handling the administrative work for Keychain leave me with very little time to work on the extensions side. Although, the extensions are mature, there is still much more they can offer, and adding a developer to the team will allow us to do just that.
Commitments
We commit to keep all the code produced through this funding open-source. You can find Hive Keychain and Keychain mobile on their respective Github repositories.
We commit to post weekly on the progress made during the previous week. We have held this promise all along the first DHF and we hope you enjoyed following our development updates.
Shall this proposal be accepted and HBD still be overvalued, we commit to ask the community (stake weighted) on dPoll whether we should use extra funds to finance extra dev hours and get work done faster, or return the extra funds to the DAO. If you think this is a useful procedure, put up a motion and have someone second it, and we will follow up with this poll.
Downloads and Contact
You can find download information for the Apps and extensions, as well as links to Github and Discord on our landing page.