explaingit

ethereum/mist

7,438JavaScriptAudience · developerComplexity · 4/5Setup · hard

TLDR

A now-deprecated desktop browser and Ethereum wallet built with Electron that let users browse decentralized apps and manage Ether, kept as a historical reference only, not safe for real use today.

Mindmap

mindmap
  root((mist))
    What it was
      Ethereum desktop browser
      Integrated wallet
      Dapp browser
    Tech used
      Electron shell
      Meteor UI framework
      geth background node
      gulp build system
    Modes
      Full browser mode
      Wallet-only mode
    Status
      Officially deprecated
      Reference only
    Audience
      Blockchain developers
      Historical reference
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Study how an early Ethereum desktop browser integrated a blockchain node as a background process inside an Electron app.

USE CASE 2

Use as a reference architecture for building a modern desktop Web3 browser or wallet with Electron.

USE CASE 3

Understand how Meteor was bundled into an Electron shell for a desktop app with live reload during development.

Tech stack

JavaScriptElectronMeteorGogulp

Getting it running

Difficulty · hard Time to first run · 1day+

Project is deprecated and unsupported, do not use for managing real funds, geth compatibility and build toolchain may be broken on modern systems.

In plain English

Mist was a desktop browser designed for the Ethereum blockchain network. Its main purpose was to let people browse and use decentralized applications, sometimes called Dapps, which are programs that run on the Ethereum network rather than on a central server. It also functioned as an Ethereum wallet, meaning you could store and send Ether (the Ethereum currency) from within the same application. This project is now officially deprecated and is no longer maintained. The application was built using Electron, which is a framework for creating desktop apps using web technology. The interface was built with Meteor, a JavaScript web framework, and bundled into a static package for each release. When you ran Mist, it also ran an Ethereum node (called geth) in the background to connect to the network and kept that node up to date automatically. Mist was available for Windows, macOS, and Linux. You could download a pre-built installer from the releases page and run it directly without any development setup. For those who wanted to connect to an existing node rather than run their own, there was a command-line flag to point Mist at an existing geth process. You could also run it in wallet-only mode rather than the full browser mode. For developers contributing to the project, the setup involved running a Meteor development server alongside the Electron shell, with live reload during development. The build system used gulp and electron-builder to produce distribution packages for each platform. Tests were run with Spectron, a testing tool built for Electron applications. Because the project is deprecated, it should not be used for managing real funds or interacting with the Ethereum network today. More recent Ethereum wallet and browser tools have replaced it.

Copy-paste prompts

Prompt 1
Explain how Mist ran geth (the Ethereum node) as a background process inside Electron and kept it in sync, I want to replicate this pattern for a modern blockchain desktop app.
Prompt 2
What role did Meteor play in the Mist architecture, and how was the Meteor frontend bundled into the Electron distribution package using gulp?
Prompt 3
Show me how Mist used Spectron to write automated tests for an Electron application, what test patterns did it use?
Prompt 4
How did Mist handle the wallet-only mode vs full Dapp browser mode at startup, and where is that logic in the codebase?
Open on GitHub → Explain another repo

← ethereum on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.