Hive Keychain Proposal 3 (DHF)

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.

Team

@stoodkev : CEO - Witness
@nateaguila : UI/UX
@yabapmatt : Advisor - Witness
@aggroed : Advisor - Witness


Support Hive Keychain development by voting for this proposal on PeakD, or with HiveSigner.

You can also help us by reblogging this proposal.

100% of the rewards of this post are going to the Decentralized Hive Fund

H2
H3
H4
3 columns
2 columns
1 column
46 Comments