{"id":13634475,"url":"https://github.com/stacks-archive/blockstack-browser","last_synced_at":"2025-09-27T07:32:22.081Z","repository":{"id":38025367,"uuid":"47580020","full_name":"stacks-archive/blockstack-browser","owner":"stacks-archive","description":"The Blockstack Browser","archived":true,"fork":false,"pushed_at":"2022-06-22T20:58:14.000Z","size":83695,"stargazers_count":1118,"open_issues_count":267,"forks_count":197,"subscribers_count":102,"default_branch":"master","last_synced_at":"2025-09-17T11:17:03.369Z","etag":null,"topics":["apps","bitcoin","blockchain","blockstack","browser","decentralized","identity","javascript","macos","react","serverless","storage"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stacks-archive.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-12-07T21:23:15.000Z","updated_at":"2025-09-03T06:38:10.000Z","dependencies_parsed_at":"2022-09-08T09:42:56.642Z","dependency_job_id":null,"html_url":"https://github.com/stacks-archive/blockstack-browser","commit_stats":null,"previous_names":["stacks-archive/blockstack-browser","stacks-network/blockstack-browser","blockstack/blockstack-browser"],"tags_count":100,"template":false,"template_full_name":null,"purl":"pkg:github/stacks-archive/blockstack-browser","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stacks-archive%2Fblockstack-browser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stacks-archive%2Fblockstack-browser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stacks-archive%2Fblockstack-browser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stacks-archive%2Fblockstack-browser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stacks-archive","download_url":"https://codeload.github.com/stacks-archive/blockstack-browser/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stacks-archive%2Fblockstack-browser/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276668540,"owners_count":25683074,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-23T02:00:09.130Z","response_time":73,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apps","bitcoin","blockchain","blockstack","browser","decentralized","identity","javascript","macos","react","serverless","storage"],"created_at":"2024-08-01T23:01:05.837Z","updated_at":"2025-09-27T07:32:17.072Z","avatar_url":"https://github.com/stacks-archive.png","language":"JavaScript","readme":"# Blockstack Browser [![CircleCI branch](https://img.shields.io/circleci/project/github/blockstack/blockstack-browser/master.svg)](https://circleci.com/gh/blockstack/blockstack-browser/tree/master) [![BrowserStack Status](https://www.browserstack.com/automate/badge.svg?badge_key=MWtUNTJDRjZhSlZVL0tFNDlXYW5FNmppZWtlYW1yYjJOSmpoQ0F2V2FLbz0tLWJlUkNGWWhjYTRrbklieGxvR3RWcEE9PQ==--33f37ccb00c047f430e307128ffd5de25715903e)](https://www.browserstack.com/automate/public-build/MWtUNTJDRjZhSlZVL0tFNDlXYW5FNmppZWtlYW1yYjJOSmpoQ0F2V2FLbz0tLWJlUkNGWWhjYTRrbklieGxvR3RWcEE9PQ==--33f37ccb00c047f430e307128ffd5de25715903e) [![License](https://img.shields.io/github/license/blockstack/blockstack-browser.svg)](https://github.com/blockstack/blockstack-browser/blob/master/LICENSE.md) [![Slack](https://img.shields.io/badge/join-slack-e32072.svg?style=flat)](http://slack.blockstack.org/) \n\nThe Blockstack Browser allows you to explore the Blockstack internet.\n\n| :warning: IMPORTANT: This project has been deprecated in favor of [the Blockstack App](https://github.com/blockstack/ux/tree/master/packages/app). It will receive only critical updates by Blockstack PBC going forward. |\n| --- |\n\n## Table of contents\n\n- [Releases](#releases)\n- [Developing](#developing)\n- [Building for macOS](#building-for-macos)\n- [Building for Windows](#building-for-windows)\n- [Building for the Web](#building-for-the-web)\n- [Contributing](#contributing)\n- [Logging](#logging)\n- [Tech Stack](#tech-stack)\n- [Maintainer](#maintainer)\n- [Testing](#testing)\n\n## Releases\n\n[Download the latest release](https://github.com/blockstack/blockstack-browser/releases)\n\n## Developing\n\n### macOS\n\n*Please note these instructions have only been tested on macOS 10.13*\n\n1. Download and install the [latest release of Blockstack for Mac](https://github.com/blockstack/blockstack-browser/releases).\n1. Start Blockstack\n1. Option-click the Blockstack menu bar item and select \"Enable Development Mode\"\n1. Clone this repo: `git clone https://github.com/blockstack/blockstack-browser.git`\n1. Install node dependencies: `npm install`\n1. Run `npm run dev`\n\n\n### Linux\n\n1. Clone this repo: `git clone https://github.com/blockstack/blockstack-browser.git`\n1. Install node dependencies: `npm install`\n2. Run `npm run dev`\n\n*Note: npm dev runs a BrowserSync process that watches the assets in `/app`, then builds them and places them in `/build`, and in turn serves them up on port 3000. When changes are made to the original files, they are rebuilt and re-synced to the browser frames you have open.*\n\n##### Troubleshooting\n\nCommon problems and solutions:\n\n* **The sign-in page does not load**:  These instructions run the Browser in development\n  mode, which uses a different port (3000) than the production mode (8888).\nHowever, existing applications will direct you to `http://localhost:8888` on\nsign-in.  You will need to *manually* edit the URL to change `8888` to `3000`\nand refresh the page.\n\n* **The sign-in page does not load with localhost:3000**:  If you have taken the\n  above step and the page still does not load, check your `auth=` query\nparameter.  If it starts with any number of `/` characters, remove them and\nreload the page.  For example, if your `auth=` query looks like\n`auth=///abcdef...`, then you will need to change it to `auth=abcdef...`.\n\n## Building for macOS\n\n1. Make sure you have a working installation of Xcode \u003e=9 and Node.js \u003e=10.\n1. Run `npm run mac:release:dev` to build an unsigned application bundle. \n1. The output bundle is located at `native/macos/export/Blockstack.app`.\n\n*Note: This has only been tested on macOS High Sierra 10.13*\n\n### Building a macOS release for distribution\n\n1. Ensure you have valid Developer ID signing credentials in your Keychain. (See https://developer.apple.com/developer-id/ for more information)\n1. Open the Blockstack macOS project in Xcode and configure your code signing development team (You only need to do this once)\n1. Make sure you have an OpenSSL ready for bottling by homebrew by running `brew install openssl --build-bottle`\n1. Open the Blockstack macOS project in Xcode.\n1. Select the Product menu and click Archive.\n1. When the archive build completes, the Organizer window will open. Select your new build.\n1. Click \"Export...\"\n1. Click \"Export a Developer ID-signed Application\"\n1. Choose the development team with the Developer ID you'd like to use to sign the application.\n1. Click \"Export\" and select the location to which you would like to save the signed build.\n\n\n## Building for Windows\n\nPrerequisites:\n* Wix Toolset v3.11.1 (download and run wix311.exe from https://github.com/wixtoolset/wix3/releases/tag/wix3111rtm)\n* Visual Studio 2017 (https://visualstudio.microsoft.com/downloads/)\n\nRun `npm run win32`.\n\nThis will:\n* Run the webpack build.\n* Setup the resources used by msbuild and the WiX msi project.\n* Run msbuild to compile the native app and create the msi installation file.\n\nThe output file can be found at `native\\windows\\BlockstackSetup\\bin\\Release\\en-us\\BlockstackSetup.msi`.\n\nThis does not perform any code or installer file signing.\n\n\n## Building for the Web\n\n1. Make sure you've cloned the repo and installed all npm assets (as shown above)\n1. Run `npm run web`\n\n\n## Building for Linux (dpkg)\n\n1. Install [`fpm`](http://fpm.readthedocs.io/en/latest/)\n1. Run `./native/linux/make_deb.sh`\n1. A `.deb` package will be placed in `./native/linux/dist/`\n\n## Contributing\n\nWe do project-wide sprints every two weeks and we're always looking for more help.\n\nIf you'd like to contribute, head to the [contributing guidelines](/CONTRIBUTING.md). Inside you'll find directions for opening issues, coding standards, and notes on development.\n\n## Logging\n\nThe Browser uses `log4js` for logging. The macOS app uses macOS's unified logging\nAPI, `os_log` for logging.\n\n### macOS\n\nOn macOS, the Browser sends log events to the macOS app's log server. These are\nthen included in macOS's unified logging API. You can view logs by starting\n`Console.app`.\n\nTo see only `Blockstack` process logs, filter by process by typing\n`process: Blockstack` in the search box. You can also filter for only log\nentries proactively generated by the BLockstack project using this query:\n`subsystem:org.blockstack.portal subsystem:org.blockstack.core subsystem:org.blockstack.mac`\nIf you'd like to see more detail, enable the inclusion of Info and Debug\nmessages in the Action menu. Please note that in our experience, `Console.app`\ndoesn't always show debug messages in real time and only shows them when doing a\nlog dump as described below.\n\n#### Sending logs to developers\n\nBlockstack logs are included in macOS's unified logging system. This allows us\nto easily collect a large amount of information about the user's system when we\nneed to troubleshoot a problem while protecting their privacy.\n\n1. Press Shift-Control-Option-Command-Period. Your screen will briefly flash.\n2. After a few minutes, a Finder window will automatically open to `/private/var/tmp`\n3. Send the most recent `sysdiagnose_DATE_TIME.tar.gz` file to your friendly developers.\n\nThe most important file in this archive is `system_logs.logarchive`, which will\ninclude recent system logs including Blockstack's logs. You can open it on\na Mac using `Console.app`. The other files include information about your computer\nthat may help in diagnosing problems.\n\nIf you're worried about inadvertently sending some private information,\nyou can select the log entries you'd like to send inside `Console.app` and copy\nthem into an email or github issue. To help us debug your problem, we ask that\nat a minimum you enable Info and Debug messages and filter by `process: Blockstack`.\n\nMore technical users (with admin permission) can use the `sysdiagnose` command\nto generate a custom dump of information.\n\n## Tech Stack\n\nThis app uses the latest versions of the following libraries:\n\n- [React Rocket Boilerplate](https://github.com/jakemmarsh/react-rocket-boilerplate)\n- [ReactJS](https://github.com/facebook/react)\n- [React Router](https://github.com/rackt/react-router)\n- [RefluxJS](https://github.com/spoike/refluxjs)\n- [Redux](https://github.com/reactjs/redux)\n- [Babel](https://github.com/babel/babel)\n- [Webpack](https://github.com/webpack/webpack)\n\nAnd a few other smaller modules (these can be found in `package.json`).\n\n## Maintainer\n\nThis repository is maintained by [hankstoever.id](https://explorer.blockstack.org/name/hankstoever.id).\n\n## Testing\n\nRun all tests in the `test/` directory with the `npm run test` command. A single\nfile can be run by specifing an `-f` flag: `npm run test \u003cPATH_TO_TEST_FILE\u003e`.\n\n*Note: When running tests, code coverage will be automatically calculated and output to an HTML file using the [Istanbul](https://istanbul.js.org/) library. These files can be seen in the generated `__coverage__/` directory.*\n\n## App Development\n### Run the browser in the Blockstack Test Environment\n\nWhen developing apps, the browser can be run in a Docker test environment that\nis backed by the regtest bitcoin network, hence no real money involved.\n\n**Note**: The `Dockerfile` creates an image that release on AMD64 architecture. \n\nThe easiest way to get that setup is through Docker containers for the api, the\nbrowser and the cors-proxy. There is a\n[docker-compose.yaml file](https://github.com/blockstack/blockstack-todos/blob/master/docker-compose.yaml)\npublished in the Blockstack todo app repo that does this. To use it, first [install Docker](https://docs.docker.com/engine/installation/)\nand stop any running Blockstack applications (blockstack-browser or blockstack\napi) then:\n\n```\n$ docker-compose up -d\n```\n\nThis brings up\n* A `blockstack-core api` node that is backed\n   * by a `bitcoind` instance running **regtest** and\n   * by a [`blockstack-core`](https://github.com/blockstack/blockstack-core) node built from the test chain.\n\n   The initialization script generates 50 BTCs for the core wallet.\n* a blockstack-browser node. It uses bitcoin addresses that are mapped to regtest bitcoin addresses.\n* a [cors-proxy](https://www.npmjs.com/package/corsproxy) to bypass origin policy issues.\n\nThe easiest way to work with this setup is in **Incognito mode** in your browser. Once the images have been pulled down and the containers are started you can open http://localhost:8888.\n\nChoose the Advanced Mode setup and enter the API Password as `blockstack_integration_test_api_password`\n\n### Common Tasks\n* You can send bitcoins from the core wallet to the browser wallet by opening the hidden url [http://localhost:8888/wallet/send-core](http://localhost:8888/wallet/send-core)\n\n* You can inspect the mapped bitcoin addresses from the browser node to the regtest address by looking into the log file of the api node (execute `bash` in the api container and look at /tmp/blockstack-run-scenario.blockstack_integration_tests.scenarios.portal_test_env/client/api_endpoint.log).\n\n* You can inspect the api password by looking into the client.ini file of the api node (execute `bash` in the api container and look at /tmp/blockstack-run-scenario.blockstack_integration_tests.scenarios.portal_test_env/client/client.ini)\n\n* You can verify the blockstack version of the api node by running `curl localhost:6270/v1/node/ping`\n","funding_links":[],"categories":["Applications","JavaScript"],"sub_categories":["Utilities"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstacks-archive%2Fblockstack-browser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstacks-archive%2Fblockstack-browser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstacks-archive%2Fblockstack-browser/lists"}