Hive Keychain Proposal 3 (DHF)

in #hive9 days ago (edited)
Authored by @stoodkev

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

Sort:  

It's great to have a tool like this at the center of the ecosystem and to help make it easier to use apps. Voted for the proposal.

I like the idea of using Keychain also to introduce users to other dApps. This way, if one Hive dApp onboards 1000 new users to themselves and recommends using keychain for logins etc, there'll be a likely spillover of users to other dApps as well, helping improve engagement, activity and retention.

I would love to also see the full web version look like a more customizable and investor-friendly wallet. All of the current well functioning browser wallets are very centred around the blogging aspects of Hive, with links to author and curation rewards and stats relevant to them. I would like seeing a wallet that shows more info relevant to the growth of Hive, the opportunities to delegate to projects, communities etc, news on upcoming and changing proposals, changing witness statuses or key announcements. Things that any good stakeholder should want to be up to date on while also seeing demonstrations of interesting progress being made. I think that would be good both for confidence in the chain, as well as more active participating in both governance voting and supporting the best projects.

Thanks!

I like the idea of using Keychain also to introduce users to other dApps. This way, if one Hive dApp onboards 1000 new users to themselves and recommends using keychain for logins etc, there'll be a likely spillover of users to other dApps as well, helping improve engagement, activity and retention.

One of the things we want to do to introduce users to other dApps is creating a list of dApps ordered by categories, and display them on new tabs within the in-App browser. We could also imagine a "Discover Hive Ecosystem" screen on the browser extension.

I would love to also see the full web version look like a more customizable and investor-friendly wallet. All of the current well functioning browser wallets are very centred around the blogging aspects of Hive, with links to author and curation rewards and stats relevant to them. I would like seeing a wallet that shows more info relevant to the growth of Hive, the opportunities to delegate to projects, communities etc, news on upcoming and changing proposals, changing witness statuses or key announcements. Things that any good stakeholder should want to be up to date on while also seeing demonstrations of interesting progress being made. I think that would be good both for confidence in the chain, as well as more active participating in both governance voting and supporting the best projects.

Do you mean on the extension popup? We will keep adding information in there such as proposal lists/votes. About calculating returns on project delegations, that's a good idea and I think we could add this directly to our Delegation tab.
About the news, keys announcement etc., we already have several blogging websites that take care of this part just fine, how would you go about using Keychain to pass along these news?

QR codes could enable a lot of things beyond just safety on an unsafe computer.

Some PC based games on other blockchains use QR codes to link the game to the user’s wallet or to accept thing such as transfer of NFTs.

Payment on the go in the real world.

I agree there's much more we can do in that direction, and that will definitely be added at some point!

@disregardfiat, didn't you have a proposal for qr codes?

No. We have a QR code utility that works with augmented reality applications. It's developed and open source... this is different.

Orher type of "QR":

"Quick Response" codes vs "Quantum Resistant" signatures.

Well, dang it.
I've been looking forward to being able to just scan phones and send hive.

Can we get some better tech support for keychain? The discord with it(on the engine server) has become abandoned and people are posting complaints: https://hivel.ink/hive-139531/@julianhorack/keychain-broke-on-me-so-i-simply-removed-it-altogether-but-tech-support-was-impossible-to-find.

Self voted for visibility.

That guy never contacted me nor asked for help on our Discord. I'm guessing he just asked around on the Hive server.
I agree there s not much activity on our Discord but I'm monitoring issues on a daily basis. I've been through our entire #issues channel on Discord, and I never took more than 1 or 2 days to help someone.

Where's the issues channel on discord? The closest I've found is steem-keychain on the engine server. Is there a dedicated keychain discord?

Yes, and there's a link for it on all our weekly posts and on our landing page.

Whoops I must be blind. Joined in and put a link where I saw other people looking for it as well. Hopefully this makes it easier for those who had the same problems as me.

Thanks for sharing the link!
I guess it's making it pretty difficult if some non-official channels popup here and there.

You should focus on improving the design and aesthetics. Uniswap became popular thanks to having a great design. As well as metamask, etc..

I agree with this, it is useful but doesn't look like something built for 2021 in crypto.

Add @aggroed s tribaldex.com swaps so u can auto swap any of those hive engine tokens or place sell orders . We should be able to convert swap.btc swap.doge etc to swap.hive

Posted using Dapplr

Hive blockchain is not just a blog but a chains comprises of many blockchain which some are yet to be harness, I must say this platform is all I was looking for, you know what I spent 85% of my time on hive and none is a waste because each day by day I'm learning more and more and also growing on the platform.
Therefore, I say the world much hear of this amazing platform. Hive blockchain the hive of our hives 🤗

Great job. Of course I will vote, and I will also reblog in my blog. Thank you for continuing to work on #HIVE development.



Link to vote for @cranium as a witness

For a while I found the multitude of key chain extensions annoying. Then I found WhaleVault which can handle 15 different Steem like chains including hive.

image.png

I don't understand why every Steem like chain insists on creating their own keychain extension. For me this sounds like a pure vanity project as a universal keychain solution exists. It would be much more efficient to join the WhaleVault effort instead of wasting developer time on creating yet-another-keychain-extension without added value to the end user.

Quite the opposite: If you have accounts at multiple chains having to install a keychain-extension for all of them is just annoying.

On one hand, yes you are right, collaboration could benefit everyone. But on the other hand, centralization vs decentralization. If there are multiple options, then we have choices if one goes bad.

That's cute when someone write without knowing what they are talking about.
The project you are mentioning is a clone based on my work. So without this 'vanity project', the one you use wouldn't even exist.

Fair enough. But as often: The clone is better the the original as it offers features the original doesn't offer. Namely support for multiple chains.

The only thing that changes is the direction: Why didn't you merge multi chain support back into your project? WhaleVault is available on Github so that shouldn't be impossible.

Being the original project and being a vanity project doesn't exclude each other. It's still a vanity if you don't add useful features for personal reasons.

I don't know the background but sounds like if you want want this whalevault wallet to get better you should hope that hive keychain gets funding since they are apt to use this code base.

Anyway what is the website or profile link of the group creating whalevault... because trust is a big part of being willing to install an extension and there is so far no reason to have that trust in this unknown wallet.

You do you but Whalevault is not even opensource, so 1) I couldn't merge it if I wanted to, 2) you use it at your own peril since nobody can make sure no code is added with malicious intentions.
They do have a github page for reference :
https://github.com/alexpmorris/whalevault
But there's nothing there except a license and a README.

They cloned two years ago so I'm pretty sure we re way ahead in terms of features. That's being said, indeed we don't plan on supporting other chains.
First, Hive Hard Forked couple of times and there are features which are not supported by other chains. Second, except from you, we've never really got any demand for this.

Voted.
Keep up the good work!

Many thanks ...

Great to see so much development going on!

I left a message in Discord some time ago about a double post bug that seems to happen intermittently. I left examples of two transactions that were identical and were posted within the same second and the funds were deducted twice. It has happened to a few of our players and myself.
Was this something you have been able to identify and fix at all?

Thanks for the great work!

Jux.


The NFT based music career game built on HIVE - Musicians: mint NFTs of your music and sell to players!

Hey! As I've discussed above with @rishi556 you might have used a non-officia Discord channel. You can find our Discord and Github on our landing page and leave an issue there, I usually respond quite fast.
Give me more details regarding your issue in there and I'll do my best to help

Voted for the proposal, great to have you. Keychain works great for me and this is worth my support.

Hive keychain is my favourite way of accessing Hive and Hive dapps and I use it all the time. I gladly voted for the proposal.
Thank you for this tool and for the continuous development to make it even better!

Reblog your posting dear