Apps support upon launch of Stacks 2.0 Mainnet

Important note: This plan has been modified since original publication. See details below.


There are several things that existing app developers should know as we approach release of the Stacks 2.0 Mainnet:

  1. Hiro PBC will release a new version of the Stacks.js connect package next Thursday, January 14th. We encourage all developers to upgrade existing apps as soon as possible once released.

  2. However, the new Stacks Wallet for web will work with all apps that have previously integrated Blockstack Connect and even if they don’t upgrade – whether installed as a browser extension or used as a hosted service during app authentication.

  3. The new Stacks Wallet will be available in the Chrome Web Store immediately next Thursday, January 14th but will take more time to appear in Firefox Add-ons. All users can always install from source, including for Firefox.

  4. Free usernames for new users will not be immediately available via the Stacks Wallet upon release of the Stacks 2.0 Mainnet and new Stacks Wallet. There will remain a pending need to upgrade and decentralize the subdomain registrar that powers these username registrations. However, this service will be restored ASAP.

  5. The Blockstack Browser will continue to operate against the Stacks 2.0 Mainnet but will functionality removed for registering paid IDs and receiving BTC deposits.

Please find more details about these announcements below.


1. New version of Stacks.js connect package available soon

Hiro PBC will release a new version of the Stacks.js connect package alongside the Stacks 2.0 Mainnet that supports a new onboarding modal.

This modal will incorporate new Stacks branding and a broader framing around control over digital assets and data rather than simply privacy protection.

More importantly, it will prioritize the installation of the new Stacks Wallet (previously known as Blockstack Connect and recently released into developer preview) as a browser extension instead of sending users to a hosted authenticator.

While a hosted version of the Stacks Wallet will remain available for users who authenticate to apps with other browsers, Chrome and Firefox users (as well as those of other Chromium browsers like Brave) will see only a prompt to install the extension before proceeding into apps.

This change is particularly important now that the Stacks Wallet empowers users to manage their STX holdings on the Stacks 2.0 Mainnet, seeing that an installed extension provides greater security guarantees than a dynamically loaded authenticator.

We encourage all apps to upgrade to his latest version of connect as soon as possible upon its release.

This should be simply a matter of upgrading to the latest version via npm or yarn, given that the underlying APIs will not change. It will ensure that your users have the safest experience possible.

2. New Stacks Wallet will work with apps that don’t upgrade

Users to apps that don’t upgrade to the latest version will also find themselves routed to a hosted version of the new Stacks Wallet instead of the existing version of Blockstack Connect found at app.blockstack.org.

This newly hosted Stacks Wallet will go live at a new URL to which app.blockstack.org redirects permanently. As such, any existing users to this hosted authenticator will have to re-authenticate with their Secret Keys.

However, this should not have any effect on app sessions in particular. Users will be able to continue using apps without having to sign back into them. They’ll simply need to enter their Secret Keys again if they want to use features provided directly in the Stacks Wallet or authenticate to new apps.

3. Stacks Wallet will take time to show up in Firefox Add-ons, but will arrive immediately in Chrome Web Store

While we’ll be able to publish the new Stacks Wallet immediately to the Chrome Web Store for installation as an extension, it will take us longer to prepare it for review and publishing to Firefox Add-ons.

Consequently, Chrome users who sign up for apps that have upgraded to the latest version of connect from Stacks.js will get directed to Chrome Web Store for one-click installation. However, Firefox users will get directed to a page that instructs them on how to install the extension manually via downloaded ZIP file (similar to what’s found here).

Firefox users will get directed to Firefox Add-ons for one-click installation once we’ve submitted and received approval from Mozilla. But this may not occur until several weeks after mainnet is released.

Chrome, Firefox and all other Chromium-based browser users will always have an option to build and install from source.

4. Free usernames for new users will not be immediately available via the Stacks Wallet

Given recent finalization work on BNS for Stacks 2.0, as well as efforts to decentralize username registration, Hiro PBC expects the the subdomain registrar used to provision free usernames to get upgraded to Stacks 2.0 and redeployed to another entity after Stacks 2.0 Mainnet goes live.

This means that username registration will need to be disabled temporarily from within both the new Stacks Wallet and the legacy Blockstack Browser.

Users who register for apps will not encounter a prompt to register usernames; they’ll proceed into apps with only STX addresses.

While this shouldn’t affect apps without reliance on the publish_data scope, multi-player apps that rely on usernames will require modification to handle this temporary inability to onboard new users with usernames.

We recommend modifying apps to make usernames optional to the extent possible, and disabling registration for new users entirely if that’s not possible for certain apps for which core functionality is username-reliant.

Existing users will, of course, retain their usernames (whether free or paid) and can continue to use apps that rely on them without any problems. All username registrations from Stacks 1.0 will get migrated over to Stacks 2.0 automatically.

We apologize for this inconvenience ahead of time. We’re helping to facilitate a transition to the Stacks Foundation.

We will post an update here on the forum as soon as username registration support is restored in the Stacks Wallet with the configuration of an updated subdomain registrar. We will also support the capability for apps to configure their own subdomain registrars with connect, for those who prefer to decentralize this capability even further.

5. Blockstack Browser will continue operating while further deprecated

The Blockstack Browser will continue to operate on Stacks 2.0. However, we will add a deprecation notice across all pages and remove the ability to either receive BTC into its Bitcoin wallet or register for new paid usernames.

We encourage all apps to upgrade away from dependence on the Blockstack Browser by integrating the connect package from Stacks.js given that its functionality is increasingly out of date, and it will get sunset entirely in Summer 2021.

In the meantime, if you have any BTC in its Bitcoin wallet, you will be able to withdraw it at any time up to that point.


Thank you for your understanding and patience on these matters. If you have any questions or concerns, please leave them here in the comments or reach out on the #userx channel in Discord.

We look forward to what we can all build together on Stacks 2.0 with the new Stacks Wallet and Stacks.js!

3 Likes

Please note that we’ve modified the above plan since posting it on Friday in the following ways:

In regards to bullet point #2, all apps that have previously integrated Blockstack Connect will continue to work with the authenticator available at app.blockstack.org. However, we are not going to update the code hosted there with the new Stacks Wallet. Rather, we will commit only the minimum changes needed to that code for upgrading it to the Stacks 2.0 network with existing functionality, mainly in support of BNS.

This code freeze means that any developer who wants to take advantage of the new Stacks Wallet and its expanded functionality (namely, a complete wallet UI and robust transaction signing against the Stacks 2.0 Mainnet), will need to upgrade to the latest version of Stack.js connect (to be released later this week).

That version of Stacks.js connect will also not support hosted authentication for any users, even if they visit apps from browsers other than Chrome or Firefox with extension support. As such, upgrade to this latest version only if your app requires the new Stacks Wallet functionality and is suitable only for users with Chrome or Firefox on desktop devices.

If you don’t upgrade, your app will continue to operate as normal on Stacks 2.0 as it has on Stacks 1.0, apart from the temporary lack of new username registration support as already noted. We will restore username registration for both the new Stacks Wallet and the version frozen on app.blockstack.org once a subdomain registrar is available again.

Thanks for your understanding with these modifications, which were made with security in mind since it’s important that users transition to installed authenticators and wallets for Stacks 2.0 now that they’ll be handling STX within the context of apps.

On a related note, the Stacks documentation for building apps has recently been improved with new guides for authentication, transaction signing and data storage.

Check out the documentation for the updated guidance on integrating Stacks into apps.

2 Likes