Posts

Introducing SteemWallet.app v2 - many enhancements, including a SteemKeychain supporting Dapp Browser!

avatar of @roelandp
25
@roelandp
·
0 views
·
4 min read

Dear Steem community. It's been about a year since the introduction of the SteemWallet.app - The fast, secure and open source wallet for the Steem blockchain. Available for iOS and Android in the appstores. Since it's inception it has seen some updates, of which the introduction of instant 1-click account creation was it's biggest upgrade last January / February, with a crazy long (2 month) review time at the appstores.

Now SteemWallet is back with a new upgrade, so big I decided to call it a Version 2 :) Better than ever, "the best SteemWallet we ever shipped" - is how some famous mobile phone manufacturer would say.

As with the original idea, which was fueled by a discussion with @pharesim, this upgrade is the result of a request by Steem-Engine / Splinterlands co-founders @aggroed and @yabapmatt, 2 guys pushing the boundaries of the Steem ecosystem with greatness introduced almost every week.

It was about 2 months ago that I was approached by @aggroed to make a "mobile version" of SteemKeychain. As we discussed I proposed I'm definitely interested in making that happen, but seeing I had already created SteemWallet.app I found it only logical to integrate the features inside the SteemWallet app.

According to the Github-commit it only took 80 changed files with 50,599 additions and 2,948 deletions - but here it is today, reviewed within a couple of days, and available in your local Apple Appstore and Google Playstore:

SteemWallet version 2.0.0 featuring a Dapp browser with SteemKeychain parity!

Out of the box Steemwallet has been rewritten to support any (or at least most of) the current Steemprojects which have the SteemKeychain API implemented. By injecting a javascript upon the DOMLoaded event of a webpage the in-app Dapp browser creates a bridge between the already existing SteemKeychain supporting websites and enables them on mobile viewing.

This means that any SteemKeychain enabled site, should just work out of the box with the SteemWallet Dapp browser.

The introduction of this feature introduced some changes into the SteemWallet.app which I had documented on the SteemWallet github page:

  • upgrade SteemWallet wallet file to support multilevel keys (not only active but also, post & memo)
  • move to a "tab menu based" interface, don't forget "themes" !
  • create a tab dedicated to dapp browsing - a web browser which injects the Steem_keychain javascript on every load - just like the SteemKeychain plugin does.
  • write feature parity with 1-on-1 mimicking behaviour of SteemKeychain's functions currently available on https://github.com/mattyIce/steem-keychain
  • make a "dapp gallery" homepage which serves as default landingpage for the "dapp browser" - enabling people to quickly launch dapps inside the SteemWallet.app

The app has almost 1:1 feature parity with SteemKeychain's browser plugin, except: AddAccountAuthority, RemoveAccountAuthority, Signedcall have not been added (yet). Seeing that add/remove account authority involve authorization changes onto account level, I wanted to research those a bit more prior to adding those. And Signedcall is currently giving me a headache with serializer.

The app has been tested thoroughly with Steem interfaces such as

  • Steemit.com
  • Steempeak.com
  • D.tube - update for android requested /w @heimindanger :)

Steem games such as:

  • Splinterlands / SteemMonsters
  • NextColony

and all Tribes pages, TokenBB Forums and several other Steem Tools who have SteemKeychain API's integrated. The landing page of the Dapp browser consists of a list of dapps for easy visiting. This landingpage will in the future be adjusted so you will be able to add your own "favorites" and/or sort based on your clicks (locally, stored in a cookie) - no tracking.

How it works:

1. Dapp project site is loaded, by clicking a direct link on the browser's default startpage or manually entering a Dapp address (starting with https!) in the url-bar. 2. After "onload" a SteemKeychain-plugin is injected into the host-page which makes the SteemKeychain API (mirror) available to the host-page, tricking it into believing SteemKeychain is installed. 3. Once a user requests a SteemKeychain powered action, a native dialog will pop over the webview, enabling the user to review the proposed transaction and asking the user to sign / broadcast the given operation. 4. If the user has the needed active key in it's wallet, the user can then sign the proposed transaction. 5. Optionally the user can slide the toggle "Don't show any more prompts for "User:Dapp:Transaction-type", indicating the user is trusting the site. After this the user will no longer get a blocking prompt prior to signing the operation, but only for the giving site, user and transaction-type. These can always be revoked in the "Settings"-tab. 6. The user will need to unlock the wallet and sign the operation. Touch Id / Face Id will be helpful here for a smooth continuation. In the future I might consider adding a more permanent wallet unlock mechanism, but for now, bear with me as I need to figure out a way to make this both safe and smooth.

Site-owners with SteemKeychain plugin:

- Please check if your site also works with SteemWallet's dapp browser. Known issues are: SteemWallet's browser injects approximately 400milliseconds after "onload" event, so your app might already be checking to early whether "window.Steemkeychain" exists. - Please make sure your webpage is mobile optimised / has a responsive design.

Don't have SteemKeychain yet on your Steem-project site? Consider adding it, find the instructions on the Steem Keychain github.

SteemWallet.app's upgrade to 2.0.0 is now available in the Apple Appstore and Google Playstore

SteemWallet.app

‡ due to some caching it might appear later today / in a couple of hours if you don't see it yet

Happy browsing!
see you on the chain,

@roelandp