This is a web extension to add Blockstack support to the Web Browser by
making it so a user can log into the browser and authenticate apps via
popup windows instead of through https://browser.blockstack.org/ or
having to run their own instance of the Blockstack Browser. This makes
the experience much more native and easy to use!
This browser does not quite have feature parity with the official browser,
as it is missing the ability to acquire usernames and does not have the
ability to do social verifications.
Using an account that has a name with a profile.json from a particular Gaia
Hub and switching to a different one in the settings will cause the extension
to error in ways that may make the extension unusable.
For now, make sure to use an account that has no names or stick with the
default Gaia Hub / the Gaia Hub that has the profile.json stored for that name.
Downloads (for Beta Version)
Wallet Transactions have not been tested yet – use at your own risk!
Firefox - Currently only the desktop version of the Blockstack-Browser works for Firefox due to a bug in blockstack.js
For fun over this first part of the summer I’ve worked on translating the logic within the Blockstack Browser into a web extension, mostly because I found the Windows implementation of the Browser to be… a little disappointing and hard to work with. I also thought that such an implementation would be much more user friendly, kind of how MetaMask is for Eth.
You can see the preview of how it works here (or click to get higher-res gyfcat version):
Thanks for reading, and if you have any comments or questions, leave them below!
We’re actually ahead of the Blockstack (PBC) browser in one feature now! Association tokens have been implemented so now you can use private (whitelisted) Gaia Hubs!
Changelog
implemented <all_urls> checking - unfortunately the extension has to monitor all the urls/webpages you go to now because some of the requests to browser.blockstack.org/auth?authRequest=<> didn’t show up anymore. On the plus side, the extension works again (and if you don’t trust me – check my code).
updated deps & blockstack.js typings
Added association tokens to authentication - this now means you can use private Gaia Hubs now, yay!
(hidden change): your configuration for the core node is now passed to apps so they should prefer to use it too
Known issues:
Using an account with a name that has its profile.json in another Gaia Hub then the one you have configured will make it break. In simpler words: don’t use an account that has a pre-existing username on it.
Also note that if you change Gaia Hubs your data will be left on the old one – you won’t be able to access it from the new Gaia Hub and will have to “switch back” if you want to access it.
I had to create a new thread for the extension as the old one’s top-post is locked/archived.
Version 2.3 has been released, fixing image hosting issues (unsecure domain whatnot) and reducing the number of apps listed to only those in the App Mining program – no more 20 thousand animal kingdom apps clogging up the screen, hooray!
It should be propagating in the Firefox store soon, but is already up on the Chrome store. Also, despite what the OP says, it should work in firefox again – let me know if it doesn’t.
After I stalled it on firefox, when I open each site and click sign with blockstack,it would show this error window. How to fix it?
issue 2:
when I tried some sites ,like forum.blockstack.org or bitpatron, the official blockstack version would automatically launched and force me to the chrome brower, how to fix this, if I only wanna use firefox?
That’s pretty wild that it does install on FF for Android – I didn’t check any boxes that said it could… never designed it to work on mobile either. Does authentication even work properly? I suppose I could download and figure it out myself…
Also, I had to switch to app-mining programs only because of the mass influx of “Animal Kingdom” apps that were clogging up the screen. I don’t know of any other (simple) way to have some sort of curated, quality app selection in the browser otherwise – unless maybe I just don’t show those that aren’t app-mining unless they are searched for? Something to think about.
I just tested it and I was able to sign in to Graphite flawlessly. What sites were you trying to log into? I see you tried to log into Travelstack, but I also just tested that and it worked fine.
Surprisingly I was able to log into the Forum as well, though it kept me in the popup window, unfortunately.
Are you sure you are using the latest extension (2.3.0)? If so, while you are in the auth popup, press control-shift-I and it should open up web inspector dashboard; click “Console” and show me the error in there. Odds are a promise didn’t fire correctly, and you might need to restart your browser or reinstall the extension.
issue 1: When I use blockstack id like ID-1BNkF2PP4EagjsBgcxY8q61b2h75yLVmpY , this error window would popup. But when I use localgit.id.blockstack this format blockstack id. it works well and it can logins each blockstack apps.
issue 2: Show Recovery Key feature doesn’t work. Even you type the right password.
issue 3: Restore Existing Keychain feature doesn’t work, after I logout, and then input the right keychain and password. The errors shows as follows:
Issue 4:
users cannot register justtest.id.blockstack this kind of format id directly after they created a new identity. And they have to go to browser.blockstack.org to register it.
Bug 1: if you use moz-extension://452f6797-5b15-5346-b522-6d1665682a29/main.html#/profile/0 address to restore your keychain, it works well,
but when you try to use small popup windows as follows, you cannot restore your keychain.Issue 2 and issue 3 all based on this small popup windows as follows.
Updated more deps and fixed a (very odd!) issue that made it so the extension caught people doing something with blockstack: in the url, such as making pull requests on github. Whoops!
I was able to replicate the “e.dispatch is not defined” recently. My extension works by syncing a Vuex (Flux) storage instance across each page, using window.getMessage and window.postMessage whatnot. It seems that sometimes Firefox doesn’t load the Auth popup correctly and it doesn’t connect to the storage backend in time, so it doesn’t load the “dispatch” command.
To fix it, turn off the extension and then turn it back on. For me to fix it permanently will take quite a bit of effort and a redesign, which I will probably end up doing for the next major revision / rebranding.
Another small-ish bugfix update, which seems to reduce the size of the extension a bit:
Fixes:
Some app images weren’t showing up (i.e. those that didn’t have an app.co entry)
Excess code has been trimmed from the background
Dependencies have been updated and typings have been fixed
In the auth popup, sometimes it would look for the identity default profile url if it didn’t come from the downloadProfile action – this would trigger an error because it was calling a non-existent action (getDefaultUrl (bad) vs getDefaultProfileUrl (good))
Additions:
You can now see your extension version at the bottom of the settings page.
Unfortunately I am unable to publish on Firefox currently as I’m locked out of my account – if you need it, manually load the “unpacked extension” from here.
Had to release another update today because the recovery phrase wasn’t encrypting in a way that it could be unencrypted again – so I switched to non-deprecated crypto functions (createCipherIv/etc) and am now using AES-256 as well as actual IV’s. Yay!
This one has also already been published to the chrome store, but you can grab the source/build here.
Added some debug logs (that aren’t enabled on release)
Fixed some typings
Fixed #14 : There was an update to the bip39 package that made mnemonicToSeed async, and I forgot to update some code for that
It has been published to the Chrome App Store and should be propagating within the next hour. I am still unable to get into my Firefox dev account, sorry!
hi. your version 2.3.1 for firefox is literally the only working blockstack browser. 2.3.4 is not on the firefox addons, and also not on the mobile addons compatibility. please get this updated. i can’t login on my android phone at all on blockstack
No it is not on firefox, as I could not get back into my firefox developer account, and while I could look into that again this browser extension never worked well on mobile (if at all) as I never tried to get it to work on that platform. Did it ever work for you, previously, on mobile?
I have been out of the Blockstack scene for quite some time (my latest reply to this topic is 1 year ago) due to needing money and lack of interest in my projects, and therefore do not have a lot of motivation to update this project – I do not even know if it still works, as I did not program any Stacks compatibility into it at all if that tech is now in production.
If this is still something you want to see done, you can consider supporting me via ko-fi (or patreon if I get that re-launched) and sending me a message or replying here again.
edit: besides, what apps are working on mobile that you would need this for? There weren’t really any non-native mobile apps last year, and I’m quite curious how the scene has changed since I’ve been gone.
Its changed a lot since a year ago - blockstack connect is replacing the browser I believe and it’s all about the Stacks 2.0 blockchain which is in testnet right now.
I hear what your saying re the effort vs the payback with app mining but the project is actually getting more interesting not less and I’d recommend looking at the Stacks 2.0 documentation and staying in touch.
That makes sense… I remember seeing some things about it, and thought it was just a new onboarding process. The fact it is replacing the browser entirely is quite interesting, and seems to replace the need for this project (and the normal browser) entirely – quite innovative, and a good move!
The biggest issue with app mining is that most of my “apps” are actually “tools,” such as this browser extension, Hestia, and Mercurius – and thus don’t qualify for app mining. This reduces the standard Blockstack PBC “investment income” to zero, leaving only crowdfunding and passion – which I kinda ran out of last year, hah!
I’ll definitely keep an ear out for how the Stacks 2.0 environment matures and what that means for my projects (current and future) – decentralized/ing tech is a passion of mine so I’ll always be around somehow.