A lot has happened this past year and if you've followed @keychain account biweekly posts, you know that we've never stopped building features and improving our projects, both on our mobile Apps (available on Android and iOS) and extensions (available on Chrome, Firefox, Opera and Brave).
We've also attained some big milestones:
- Hive Keychain extensions reached over 100k users
- Our mobile Applications reached over 20k users
- Used by 8 of the 10 biggest Hive dApps
- Thanks to all of you, we are the most supported proposal on the DHF <3
The current proposal is coming to an end soon but there's still much we want to do to help the Hive ecosystem thrive, hence this new proposal.
Hive Keychain DHF 4
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 :
- Maintaining, improving and adding features to our extensions and mobile applications
- Develop revenue streams to reduce Keychain reliance on the DHF
The past and upcoming work regarding our two main projects is discussed in detail in 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, we put a lot of work on the mobile side :
- Apps size optimization.
- Deep linking allows to open dApps directly in the Hive Keychain in-App browser.
- Transformed the browser tab into a full-fledged browser experience : making the browser multi-tab, handling tabs management and favorites, allowing to browse in landscape mode for a better experience for gamers.
- Created a homepage with a list of Hive dApps by categories.
- Added whitelisting for posting authority operations.
- Added recurrent transfers and conversions to our wallet.
- Improved search bar algorithm.
- Typescript refactor. This allows us to write code better, faster (stronger?).
The biggest task we tackled during this past proposal was the integration of @arcange's HiveAuth. HiveAuth lets you sign transactions with Keychain mobile, no matter if you are using a dApp on your laptop, or on your phone. It is similar to WalletConnect + Metamask integration on Ethereum. It has already been implemented into major dApps such as PeakD and Hive.blog.
- Hive Keychain mobile's HiveAuth sessions can be initiated via QR Code or deep linking.
- A status bar shows the current status of the HiveAuth connection.
- Keychain will attempt to reconnect if the connection is lost.
- Keychain handles session tokens, that can last from 1 hour to 30 days.
- Keychain lets you whitelist some operations for a given session.
- Keychain lets you revoke HiveAuth sessions.
- There was a lot of learning and iterating between our team, @arcange's and dApps developers such as @asgarth and @quochuy.
Although we made a lot of progress, there is still much we want to do in the coming months:
- Add missing features to the wallet (i.e. buying HIVE/HBD).
- Add a governance tab (witness votes, proxy, proposals).
- Add missing Hive Engine features (staking, delegations, etc.).
- Implement App to App communication, allowing other mobile Apps to request transactions directly to Keychain without ever seeing the keys. This is currently doable via HiveAuth, but some developers may wish to perform operations using deep linking directly.
- Write the SDKs that will allow other mobile Apps to make those requests to Hive Keychain.
- Catch up with the extensions in term of features. We want to have a unified experience across devices.
- Add unit and integration tests.
Hive Keychain Extension
Lots of time and energy was spent on refactoring the extensions:
- Onboarded @cedricguillas, first part-time then full-time since this March.
- Cedric's main task was to completely rewrite the extension using React.js and Typescript. A refactor was long overdue, Keychain started as a small project using vanilla Javascript, and as it grew the code started to become quite hard to handle. Google is also moving to enforce extensions change from Manifest v2 to v3, so this was the right time to rewrite our extensions. We are glad to take this occasion to announce that Keychain v2 is already being tested by a few dApps devs, will enter public Beta this week, and will be released to production early next month.
- Keychain v2 looks sleeker =p
- Future development will be faster using React.
We also used this occasion to add new features that will be released with v2:
- Adding the possibility to work with testnet RPCs.
- Dynamic handling of RPCs. If user chooses so, the RPC will change if not available.
- Our wallet history used to only show transfers. It now shows transfers, power up/down, conversions, savings operations and interest, delegations and claim rewards operations.
- Our wallet history is now filterable.
- Hive Engine operations such as delegations and staking have been added.
- Hive Engine history has been updated to also show these delegations and staking operations.
- We updated our Import/Export settings features to encompass all Keychain settings rather than operation whitelist only.
- We added proposals to our governance page.
- We reorganized the settings.
Some changes were also implemented into the current Keychain (v1.x):
- The
requestRecurrentTransfer
function was implemented ahead of HF25. - The same goes for
requestConversion
, that allows for conversions in both directions. - Added collateralized conversions to the conversion page.
- Added recurrent transfers to the transfer page.
- Added savings page.
- Improved double-send protection.
There is still much that we would like to do :
- NFT tab (ongoing development).
- Keychain plugins (ongoing development). Keychain plugins will allow third-parties to add features to Keychain, without threatening the security of the extension. These plugins will be separated extensions running in the background, so that their code and Keychain code remain entirely separated. More on that in a future post.
- Unit and integration tests. This will be the first task of the new developer we are currently onboarding.
- Develop revenue streams (DeFi,etc.) to reduce our reliance on the DHF. This does NOT mean that any feature will be behind a paywall, merely that we will implement new features that generate small fees. Our priority will still be providing the community with the necessary tools for its growth.
- Implementation of 2FA (would be an optional setting).
- Go further with onboarding by letting users create accounts directly from Keychain using one of the onboarding services.
- Create accounts with account tokens.
- Ledger integration as soon as the Hive application is approved by Ledger. It is currently passing the final review. Kudos to @engrave for his work on the Ledger App.
- Keychain API v2. A better set of API for Keychain integration, to be discussed and designed with dApp developers.
- Preparation of new features ahead of time when introduced via a HF.
- Maintaining extension across all supported browsers through future HFs.
- Users / Devs support.
Additional work
Administration
We've setup a company, hired @cedricguillas full-time this March, and are in the process of onboarding another developer, who will start next month.
Landing page
We improved a bit Hive Keychain landing page, available here : 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 Coingecko).
Some of the new features we are currently working on will necessitate more work on the backend side.
Support
We are always thriving to give a timely response to issues reported on our Discord and/or Github.
HiveFest
It was our privilege to present Hive Keychain at the second HiveFest. Big thanks to @roelandp for organizing the event!
Budget
For this new proposal, we are applying for a daily budget of 390 HBD for a period of 12 months.
This increase in daily budget reflects the growth of our team. I (@stoodkev) was the only developer working full-time on Keychain last year, we are now two, and will soon be three in the team.
Commitments
- We commit to keep all the code produced through this funding opensource. You can find Hive Keychain and Keychain mobile on their respective Github repositories.
- We commit to write biweekly updates. We have held this promise all along the previous DHF and we hope you enjoyed following our development updates.
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
@cedricguillas : Fullstack Developer
@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 DHF