Emerald is a non-custodial desktop cryptocurrency wallet. Official website: https://emerald.cash
Features:
-
Windows, macOS and Linux
-
Ethereum, Ethereum Classic, Tether and Dai
-
Imports Private Key from JSON or Raw Hex
-
Supports Mnemonic Phrase (BIP-39) and HD Accounts (BIP-32)
-
Supports Hardware Wallets, Ledger Nano S and Nano X
-
Doesn’t require a local full node
The project is based on
-
Electron + NodeJS
-
Typescript
-
React + Redux
-
Rust for some modules
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 required version of node
>= v12
.
You need libudev
, libusb-1.0-0
, libusb-1.0-0-dev
installed on Linux
sudo apt-get install libudev-dev libusb-1.0-0 libusb-1.0-0-dev
npm install -g node-gyp lerna yarn
npm install -g npm [email protected]
lerna bootstrap
$ lerna run build
$ lerna run start:electron
Electron may show error, like:
[emerald-vault-native] was compiled against a different Node.js version using NODE_MODULE_VERSION 64. This version of Node.js requires NODE_MODULE_VERSION 69. Please try re-compiling or re-installing the module (for instance, using npm rebuild or npm install)
At this case you’ll need to recompile Emerald Vault for your platform and version of Electron. You will need to have Rust compiler and LLVM installed, please follow instructions on:
After installing Rust and LLVM run following to recompile the module:
export RUSTFLAGS=-C target-feature=+crt-static npm run build:neon
Electron and Emerald logs persisted in:
-
OSX:
~/Library/Logs/EmeraldWallet/log.log
-
Linux:
~/.config/EmeraldWallet/log.log
You can run a distribution build in your development environment. Assuming
you’ve already compiled ./src/
and ./electron/
, you’ll be able to run:
yarn build: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.
Copyright 2020 EmeraldPay, Inc
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.