Emerald Wallet / Ethereum Classic Wallet
shanejonas Merge pull request #833 from ETCDEVTeam/fix/shapeshift
fix: remove deposit options/shapeshift support
Latest commit 5599a82 Nov 13, 2018
Failed to load latest commit information.
.circleci problem: Circle CI does not include emerald-cli into mac osx distribu… Feb 2, 2018
.storybook solution: new header Feb 26, 2018
build problem: need new background that works with retina Apr 2, 2018
electron Problem: protocol not working when wallet already open Oct 27, 2018
flow Flow Type added Aug 28, 2017
scripts Address book (#562) May 4, 2018
src Merge branch 'master' into fix/shapeshift Nov 12, 2018
stories problem: User should see totals in fiat currency (#585) May 16, 2018
.babelrc problem: linting errors Nov 25, 2017
.editorconfig Address book (#562) May 4, 2018
.eslintignore problem: eslint errors for lib May 9, 2017
.eslintrc problem: User should see block timestamp on Tx details page (#594) May 23, 2018
.flowconfig solution: fix flow error Jan 23, 2018
.gitignore Problem: No package-lock file, no vulnerability scans from github Jul 6, 2018
.node-version fix: npm install Oct 2, 2018
.travis.yml Problem: 4 remaining npm audit fixes Oct 16, 2018
LICENSE starting point Feb 6, 2017
README.adoc problem: User should see block timestamp on Tx details page (#594) May 23, 2018
appveyor.yml problem: User should see block timestamp on Tx details page (#594) May 23, 2018
build-web.js Version bump Nov 30, 2017
dependencies.sh Problem: Wallet stuck in 'open wallet' step May 14, 2018
gcloud-appveyor.json.enc Addressbook: contacts without descriptions (#586) May 17, 2018
gcloud-deploy.sh Problem: deploy AppImage package (#378) Jan 17, 2018
gcloud-travis.json.enc Electron Build (#190) Jun 29, 2017
package-lock.json update package lock Nov 1, 2018
package.json bump version Oct 25, 2018
webpack.config.js solution: remove font-awesome icons Apr 19, 2018


Emerald - Ethereum Classic Wallet

CircleCI emerald wallet Travis CI Build Status License AppVeyor Build Status Codecov

Development instructions

The recommended way to assert that you are using the correct version of node is to use nodenv, which will shim the node and npm commands and assert that the local version is set to what is specified in .node-version.

Once nodenv is installed:

$ nodenv install

The supported version of node is v6. If you run into build errors, please make sure that you are using NodeV6 by running node --version.


NPM packages

This will install dependencies saved in package.json and flow-typed repository.

$ npm run setup

Emerald and geth


If you haven’t got emerald already installed on your system, you can execute ./dependencies.sh to automatically rustup and use cargo to install emerald-cli and move it to the project’s base dir. Note: this command is idempotent for rust and cargo (it won’t try to install cargo if you’ve already got it), but it will use cargo’s -f flag to force install emerald-cli and copy that version to the project directory.


If geth isn’t available in your project directory, upon launching the app, it automatically be downloaded and placed in your project base dir.

Run for development

Firstly: a couple things aren’t working right. If you can fix either of these issues, @whilei will buy you a beer.

  • Issue 1: webpack-dev-server isn’t working right with the current babel-webpack-electron-izing setup. So you’ve got to do your development in Electron for now. Which means you can’t run npm run start:web. Bummer.

With these caveats in mind, you can run:

Terminal 1

# This will begin a live-watching compiler for ./src/ and ./electron/ folders
$ npm run build:all

Terminal 2

# This will begin the simulated electron app pulling from those compiled sources.
$ npm run start:electron


Emerald logs

Electron and Emerald logs persisted in:

  • OSX: ~/Library/Logs/EmeraldWallet/log.log

  • Linux: ~/.config/EmeraldWallet/log.log

Geth logs

During development, you’ll find geth’s logs in ./logs right in the project base directory.

In production, logs will be nestled in

  • OSX: ~/Library/Application Support/EmeraldWallet/

  • Windows: %USERPROFILE%\AppData\Roaming\EmeraldWallet\logs

Building alternatively

You can also use a variety of alternate build options, eg.

$ npm run build:all:nowatch
$ npm run build:web

Building distributions in development

You can run a distribution build in your development environment. Assuming you’ve already compiled ./src/ and ./electron/, you’ll be able to run:

$ npm run dist

This command will build for your current system. Note that there are configurations for several systems (OSX, Linux, Windows) specified in the "build" field of package.json, but the dist command will by default only build for the system it’s on.

Note: If you’re developing on OSX and have a developer signing identity on your machine, you can optionally disable that with CSC_IDENTITY_AUTO_DISCOVERY=false.

OSX is also able to build for Linux. Add -ml to that raw command to build for both OSX and Linux at the same time.


Some preliminary things to try in case you run into issues:

  • Clear out any persisted settings or userdata from previous trials

    • OSX: ~/Library/Application Support/EmeraldWallet

    • Linux: ~/.config/EmeraldWallet

    • Windows: %APPDATA%\EmeraldWallet

Run tests

npm run test:watch

or for single run:

npm test


Chat with us via Gitter


Apache 2.0