about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/altcoins
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2019-01-07 02:18:36 +0000
committerAlyssa Ross <hi@alyssa.is>2019-01-07 02:18:47 +0000
commit36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2 (patch)
treeb3faaf573407b32aa645237a4d16b82778a39a92 /nixpkgs/pkgs/applications/altcoins
parent4e31070265257dc67d120c27e0f75c2344fdfa9a (diff)
parentabf060725d7614bd3b9f96764262dfbc2f9c2199 (diff)
downloadnixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.gz
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.bz2
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.lz
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.xz
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.zst
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.zip
Add 'nixpkgs/' from commit 'abf060725d7614bd3b9f96764262dfbc2f9c2199'
git-subtree-dir: nixpkgs
git-subtree-mainline: 4e31070265257dc67d120c27e0f75c2344fdfa9a
git-subtree-split: abf060725d7614bd3b9f96764262dfbc2f9c2199
Diffstat (limited to 'nixpkgs/pkgs/applications/altcoins')
-rw-r--r--nixpkgs/pkgs/applications/altcoins/aeon/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/altcoins/bitcoin-abc.nix46
-rw-r--r--nixpkgs/pkgs/applications/altcoins/bitcoin-classic.nix54
-rw-r--r--nixpkgs/pkgs/applications/altcoins/bitcoin-unlimited-const-comparators.patch38
-rw-r--r--nixpkgs/pkgs/applications/altcoins/bitcoin-unlimited.nix68
-rw-r--r--nixpkgs/pkgs/applications/altcoins/bitcoin-xt.nix51
-rw-r--r--nixpkgs/pkgs/applications/altcoins/bitcoin.nix56
-rw-r--r--nixpkgs/pkgs/applications/altcoins/btc1.nix41
-rw-r--r--nixpkgs/pkgs/applications/altcoins/clightning.nix57
-rw-r--r--nixpkgs/pkgs/applications/altcoins/cryptop/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/altcoins/dashpay.nix43
-rw-r--r--nixpkgs/pkgs/applications/altcoins/dcrd.nix34
-rw-r--r--nixpkgs/pkgs/applications/altcoins/dcrwallet.nix43
-rw-r--r--nixpkgs/pkgs/applications/altcoins/default.nix100
-rw-r--r--nixpkgs/pkgs/applications/altcoins/dero.nix27
-rw-r--r--nixpkgs/pkgs/applications/altcoins/dogecoin.nix41
-rw-r--r--nixpkgs/pkgs/applications/altcoins/ethabi.nix27
-rw-r--r--nixpkgs/pkgs/applications/altcoins/fix-bitcoin-qt-build.patch15
-rw-r--r--nixpkgs/pkgs/applications/altcoins/freicoin.nix36
-rw-r--r--nixpkgs/pkgs/applications/altcoins/go-ethereum-classic/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/altcoins/go-ethereum-classic/deps.nix39
-rw-r--r--nixpkgs/pkgs/applications/altcoins/go-ethereum.nix28
-rw-r--r--nixpkgs/pkgs/applications/altcoins/litecoin.nix51
-rw-r--r--nixpkgs/pkgs/applications/altcoins/masari.nix27
-rw-r--r--nixpkgs/pkgs/applications/altcoins/memorycoin.nix56
-rw-r--r--nixpkgs/pkgs/applications/altcoins/mist.nix72
-rw-r--r--nixpkgs/pkgs/applications/altcoins/monero-gui/default.nix93
-rw-r--r--nixpkgs/pkgs/applications/altcoins/monero-gui/move-log-file.patch27
-rw-r--r--nixpkgs/pkgs/applications/altcoins/monero-gui/move-translations-dir.patch13
-rw-r--r--nixpkgs/pkgs/applications/altcoins/monero/default.nix45
-rw-r--r--nixpkgs/pkgs/applications/altcoins/namecoin.nix48
-rw-r--r--nixpkgs/pkgs/applications/altcoins/nano-wallet/CMakeLists.txt.patch13
-rw-r--r--nixpkgs/pkgs/applications/altcoins/nano-wallet/default.nix57
-rw-r--r--nixpkgs/pkgs/applications/altcoins/parity-ui/default.nix50
-rw-r--r--nixpkgs/pkgs/applications/altcoins/parity-ui/env.nix19
-rw-r--r--nixpkgs/pkgs/applications/altcoins/parity/beta.nix6
-rw-r--r--nixpkgs/pkgs/applications/altcoins/parity/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/altcoins/parity/parity.nix42
-rw-r--r--nixpkgs/pkgs/applications/altcoins/particl/particl-core.nix53
-rw-r--r--nixpkgs/pkgs/applications/altcoins/polkadot/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/altcoins/stellar-core-dirty-version.patch15
-rw-r--r--nixpkgs/pkgs/applications/altcoins/stellar-core.nix47
-rw-r--r--nixpkgs/pkgs/applications/altcoins/sumokoin.nix35
-rw-r--r--nixpkgs/pkgs/applications/altcoins/wownero.nix51
-rw-r--r--nixpkgs/pkgs/applications/altcoins/zcash/default.nix49
-rw-r--r--nixpkgs/pkgs/applications/altcoins/zcash/librustzcash/default.nix30
46 files changed, 1868 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/altcoins/aeon/default.nix b/nixpkgs/pkgs/applications/altcoins/aeon/default.nix
new file mode 100644
index 000000000000..42717d3a2667
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/aeon/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, git, doxygen, graphviz
+, boost, miniupnpc, openssl, unbound, cppzmq
+, zeromq, pcsclite, readline, libsodium
+}:
+
+let
+  version = "0.12.8.0";
+in
+stdenv.mkDerivation {
+  name = "aeon-${version}";
+
+  src = fetchFromGitHub {
+    owner = "aeonix";
+    repo = "aeon";
+    rev = "v${version}-aeon";
+    fetchSubmodules = true;
+    sha256 = "1qmlz820mjs0b60d7i90lxcwwxmsdy6swq67v6n8mbb79zmcx8ii";
+  };
+
+  nativeBuildInputs = [ cmake pkgconfig git doxygen graphviz ];
+
+  buildInputs = [
+    boost miniupnpc openssl unbound
+    cppzmq zeromq pcsclite readline libsodium
+  ];
+
+  cmakeFlags = [
+    "-DCMAKE_BUILD_TYPE=Release"
+    "-DBUILD_GUI_DEPS=ON"
+    "-DReadline_ROOT_DIR=${readline.dev}"
+  ];
+
+  hardeningDisable = [ "fortify" ];
+
+  meta = with stdenv.lib; {
+    description = "Private, secure, untraceable currency";
+    homepage = http://www.aeon.cash/;
+    license = licenses.bsd3;
+    maintainers = [ maintainers.aij ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/bitcoin-abc.nix b/nixpkgs/pkgs/applications/altcoins/bitcoin-abc.nix
new file mode 100644
index 000000000000..3b65b06d8db8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/bitcoin-abc.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchFromGitHub, pkgconfig, autoreconfHook, openssl, db53, boost
+, zlib, miniupnpc, qtbase ? null , qttools ? null, utillinux, protobuf, qrencode, libevent
+, withGui }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+
+  name = "bitcoin" + (toString (optional (!withGui) "d")) + "-abc-" + version;
+  version = "0.18.2";
+
+  src = fetchFromGitHub {
+    owner = "bitcoin-ABC";
+    repo = "bitcoin-abc";
+    rev = "v${version}";
+    sha256 = "1ha219xnd61qicf7r3j0wbfrifh7blwp3lyk3ycgdn381q1qln29";
+  };
+
+  patches = [ ./fix-bitcoin-qt-build.patch ];
+
+  nativeBuildInputs = [ pkgconfig autoreconfHook ];
+  buildInputs = [ openssl db53 boost zlib
+                  miniupnpc utillinux protobuf libevent ]
+                  ++ optionals withGui [ qtbase qttools qrencode ];
+
+  configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ]
+                     ++ optionals withGui [ "--with-gui=qt5" ];
+
+  enableParallelBuilding = true;
+
+  meta = {
+    description = "Peer-to-peer electronic cash system (Cash client)";
+    longDescription= ''
+      Bitcoin ABC is the name of open source software which enables the use of Bitcoin.
+      It is designed to facilite a hard fork to increase Bitcoin's block size limit.
+      "ABC" stands for "Adjustable Blocksize Cap".
+
+      Bitcoin ABC is a fork of the Bitcoin Core software project.
+    '';
+    homepage = https://bitcoinabc.org/;
+    maintainers = with maintainers; [ lassulus ];
+    license = licenses.mit;
+    broken = stdenv.isDarwin;
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/bitcoin-classic.nix b/nixpkgs/pkgs/applications/altcoins/bitcoin-classic.nix
new file mode 100644
index 000000000000..ad48ea2a6257
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/bitcoin-classic.nix
@@ -0,0 +1,54 @@
+{ stdenv, fetchFromGitHub, pkgconfig, autoreconfHook, openssl, db48, boost
+, zlib, miniupnpc, qtbase ? null, qttools ? null, utillinux, protobuf, qrencode, libevent
+, withGui }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+
+  name = "bitcoin" + (toString (optional (!withGui) "d")) + "-classic-" + version;
+  version = "1.3.8";
+
+  src = fetchFromGitHub {
+    owner = "bitcoinclassic";
+    repo = "bitcoinclassic";
+    rev = "v${version}";
+    sha256 = "06ij9v7zbdnhxq9429nnxiw655cp8idldj18l7fmj94gqx07n5vh";
+  };
+
+  patches = [ ./fix-bitcoin-qt-build.patch ];
+
+  nativeBuildInputs = [ pkgconfig autoreconfHook ];
+  buildInputs = [ openssl db48 boost zlib
+                  miniupnpc utillinux protobuf libevent ]
+                  ++ optionals withGui [ qtbase qttools qrencode ];
+
+  configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ]
+                     ++ optionals withGui [ "--with-gui=qt5" ];
+
+  enableParallelBuilding = true;
+
+  meta = {
+    description = "Peer-to-peer electronic cash system (Classic client)";
+    longDescription= ''
+      Bitcoin is a free open source peer-to-peer electronic cash system that is
+      completely decentralized, without the need for a central server or trusted
+      parties. Users hold the crypto keys to their own money and transact directly
+      with each other, with the help of a P2P network to check for double-spending.
+
+      Bitcoin Classic stands for the original Bitcoin as Satoshi described it,
+      "A Peer-to-Peer Electronic Cash System". We are writing the software that
+      miners and users say they want. We will make sure it solves their needs, help
+      them deploy it, and gracefully upgrade the bitcoin network's capacity
+      together. The data shows that Bitcoin can grow, on-chain, to welcome many
+      more users onto our coin in a safe and distributed manner. In the future we
+      will continue to release updates that are in line with Satoshi’s whitepaper &
+      vision, and are agreed upon by the community.
+    '';
+    homepage = https://bitcoinclassic.com/;
+    maintainers = with maintainers; [ jefdaj ];
+    license = licenses.mit;
+    broken = stdenv.isDarwin;
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/bitcoin-unlimited-const-comparators.patch b/nixpkgs/pkgs/applications/altcoins/bitcoin-unlimited-const-comparators.patch
new file mode 100644
index 000000000000..1b74a48a84aa
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/bitcoin-unlimited-const-comparators.patch
@@ -0,0 +1,38 @@
+--- a/src/txmempool.h
++++ b/src/txmempool.h
+@@ -204,7 +204,7 @@
+ class CompareTxMemPoolEntryByDescendantScore
+ {
+ public:
+-    bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b)
++    bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b) const
+     {
+         bool fUseADescendants = UseDescendantScore(a);
+         bool fUseBDescendants = UseDescendantScore(b);
+@@ -226,7 +226,7 @@
+     }
+ 
+     // Calculate which score to use for an entry (avoiding division).
+-    bool UseDescendantScore(const CTxMemPoolEntry &a)
++    bool UseDescendantScore(const CTxMemPoolEntry &a) const
+     {
+         double f1 = (double)a.GetModifiedFee() * a.GetSizeWithDescendants();
+         double f2 = (double)a.GetModFeesWithDescendants() * a.GetTxSize();
+@@ -241,7 +241,7 @@
+ class CompareTxMemPoolEntryByScore
+ {
+ public:
+-    bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b)
++    bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b) const
+     {
+         double f1 = (double)a.GetModifiedFee() * b.GetTxSize();
+         double f2 = (double)b.GetModifiedFee() * a.GetTxSize();
+@@ -255,7 +255,7 @@
+ class CompareTxMemPoolEntryByEntryTime
+ {
+ public:
+-    bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b)
++    bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b) const
+     {
+         return a.GetTime() < b.GetTime();
+     }
diff --git a/nixpkgs/pkgs/applications/altcoins/bitcoin-unlimited.nix b/nixpkgs/pkgs/applications/altcoins/bitcoin-unlimited.nix
new file mode 100644
index 000000000000..13ec55bb589d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/bitcoin-unlimited.nix
@@ -0,0 +1,68 @@
+{ stdenv, fetchFromGitHub, pkgconfig, autoreconfHook, openssl, db48, boost
+, zlib, miniupnpc, qt4, utillinux, protobuf, qrencode, libevent
+, withGui
+, Foundation, ApplicationServices, AppKit }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+
+  name = "bitcoin" + (toString (optional (!withGui) "d")) + "-unlimited-" + version;
+  version = "1.0.3.0";
+
+  src = fetchFromGitHub {
+    owner = "bitcoinunlimited";
+    repo = "bitcoinunlimited";
+    rev = "v${version}";
+    sha256 = "0l02a7h502msrp4c02wgm7f3159ap8l61k4890vas99gq7ywxkcx";
+  };
+
+  nativeBuildInputs = [ pkgconfig autoreconfHook ];
+  buildInputs = [ openssl db48 boost zlib
+                  miniupnpc utillinux protobuf libevent ]
+                  ++ optionals withGui [ qt4 qrencode ]
+                  ++ optionals stdenv.isDarwin [ Foundation ApplicationServices AppKit ];
+
+  patches = [
+    ./bitcoin-unlimited-const-comparators.patch
+  ];
+
+  configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ]
+                     ++ optionals withGui [ "--with-gui=qt4" ];
+  enableParallelBuilding = true;
+
+  meta = {
+    description = "Peer-to-peer electronic cash system (Unlimited client)";
+    longDescription= ''
+      Bitcoin is a free open source peer-to-peer electronic cash system that is
+      completely decentralized, without the need for a central server or trusted
+      parties. Users hold the crypto keys to their own money and transact directly
+      with each other, with the help of a P2P network to check for double-spending.
+
+      The Bitcoin Unlimited (BU) project seeks to provide a voice to all
+      stakeholders in the Bitcoin ecosystem.
+
+      Every node operator or miner can currently choose their own blocksize limit
+      by modifying their client. Bitcoin Unlimited makes the process easier by
+      providing a configurable option for the accepted and generated blocksize via
+      a GUI menu. Bitcoin Unlimited further provides a user-configurable failsafe
+      setting allowing you to accept a block larger than your maximum accepted
+      blocksize if it reaches a certain number of blocks deep in the chain.
+
+      The Bitcoin Unlimited client is not a competitive block scaling proposal
+      like BIP-101, BIP-102, etc. Instead it tracks consensus. This means that it
+      tracks the blockchain that the hash power majority follows, irrespective of
+      blocksize, and signals its ability to accept larger blocks via protocol and
+      block versioning fields.
+
+      If you support an increase in the blocksize limit by any means - or just
+      support Bitcoin conflict resolution as originally envisioned by its founder -
+      consider running a Bitcoin Unlimited client.
+    '';
+    homepage = https://www.bitcoinunlimited.info/;
+    maintainers = with maintainers; [ DmitryTsygankov ];
+    license = licenses.mit;
+    broken = stdenv.isDarwin;
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/bitcoin-xt.nix b/nixpkgs/pkgs/applications/altcoins/bitcoin-xt.nix
new file mode 100644
index 000000000000..499bc4be4c83
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/bitcoin-xt.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchFromGitHub, pkgconfig, autoreconfHook, openssl, db48, boost
+, zlib, miniupnpc, qt4, utillinux, protobuf, qrencode, curl, libevent
+, withGui
+, Foundation, ApplicationServices, AppKit }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec{
+
+  name = "bitcoin" + (toString (optional (!withGui) "d")) + "-xt-" + version;
+  version = "0.11H";
+
+  src = fetchFromGitHub {
+    owner = "bitcoinxt";
+    repo = "bitcoinxt";
+    rev = "v${version}";
+    sha256 = "1v43bynmidn2zdpky939km721x3ks91bzyh4200gji61qzsmyg62";
+  };
+
+  nativeBuildInputs = [ pkgconfig autoreconfHook ];
+  buildInputs = [ openssl db48 boost zlib libevent
+                  miniupnpc utillinux protobuf curl ]
+                  ++ optionals withGui [ qt4 qrencode ]
+                  ++ optionals stdenv.isDarwin [ Foundation ApplicationServices AppKit ];
+
+  configureFlags = [
+    "--with-boost-libdir=${boost.out}/lib"
+    "--with-libcurl-headers=${curl.dev}/include"
+  ] ++ optionals withGui [ "--with-gui=qt4" ];
+
+  enableParallelBuilding = true;
+
+  meta = {
+    description = "Peer-to-peer electronic cash system (XT client)";
+    longDescription= ''
+      Bitcoin is a free open source peer-to-peer electronic cash system that is
+      completely decentralized, without the need for a central server or trusted
+      parties. Users hold the crypto keys to their own money and transact directly
+      with each other, with the help of a P2P network to check for double-spending.
+
+      Bitcoin XT is an implementation of a Bitcoin full node, based upon the
+      source code of Bitcoin Core. It is built by taking the latest stable
+      Core release, applying a series of patches, and then doing deterministic
+      builds so anyone can check the downloads correspond to the source code.
+    '';
+    homepage = https://bitcoinxt.software/;
+    maintainers = with maintainers; [ jefdaj ];
+    license = licenses.mit;
+    broken = stdenv.isDarwin;
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/bitcoin.nix b/nixpkgs/pkgs/applications/altcoins/bitcoin.nix
new file mode 100644
index 000000000000..c266fa2fef25
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/bitcoin.nix
@@ -0,0 +1,56 @@
+{ stdenv, fetchurl, pkgconfig, autoreconfHook, openssl, db48, boost, zeromq
+, zlib, miniupnpc, qtbase ? null, qttools ? null, utillinux, protobuf, python3, qrencode, libevent
+, withGui }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec{
+  name = "bitcoin" + (toString (optional (!withGui) "d")) + "-" + version;
+  version = "0.17.0";
+
+  src = fetchurl {
+    urls = [ "https://bitcoincore.org/bin/bitcoin-core-${version}/bitcoin-${version}.tar.gz"
+             "https://bitcoin.org/bin/bitcoin-core-${version}/bitcoin-${version}.tar.gz"
+           ];
+    sha256 = "0pkq28d2dj22qrxyyg9kh0whmhj7ghyabnhyqldbljv4a7l3kvwq";
+  };
+
+  nativeBuildInputs = [ pkgconfig autoreconfHook ]
+                   ++ optionals doCheck [ python3 ];
+  buildInputs = [ openssl db48 boost zlib zeromq
+                  miniupnpc protobuf libevent]
+                  ++ optionals stdenv.isLinux [ utillinux ]
+                  ++ optionals withGui [ qtbase qttools qrencode ];
+
+  configureFlags = [ "--with-boost-libdir=${boost.out}/lib"
+                     "--disable-bench"
+                   ] ++ optionals (!doCheck) [
+                     "--disable-tests"
+                     "--disable-gui-tests"
+                   ]
+                     ++ optionals withGui [ "--with-gui=qt5"
+                                            "--with-qt-bindir=${qtbase.dev}/bin:${qttools.dev}/bin"
+                                          ];
+
+  doCheck = true;
+
+  # QT_PLUGIN_PATH needs to be set when executing QT, which is needed when testing Bitcoin's GUI.
+  # See also https://github.com/NixOS/nixpkgs/issues/24256
+  checkFlags = optionals withGui [ "QT_PLUGIN_PATH=${qtbase}/lib/qt-5.${versions.minor qtbase.version}/plugins" ];
+
+  enableParallelBuilding = true;
+
+  meta = {
+    description = "Peer-to-peer electronic cash system";
+    longDescription= ''
+      Bitcoin is a free open source peer-to-peer electronic cash system that is
+      completely decentralized, without the need for a central server or trusted
+      parties. Users hold the crypto keys to their own money and transact directly
+      with each other, with the help of a P2P network to check for double-spending.
+    '';
+    homepage = http://www.bitcoin.org/;
+    maintainers = with maintainers; [ roconnor AndersonTorres ];
+    license = licenses.mit;
+    # bitcoin needs hexdump to build, which doesn't seem to build on darwin at the moment.
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/btc1.nix b/nixpkgs/pkgs/applications/altcoins/btc1.nix
new file mode 100644
index 000000000000..2f85a8947972
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/btc1.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, pkgconfig, autoreconfHook, hexdump, openssl, db48
+, boost, zlib, miniupnpc, qt4, utillinux, protobuf, qrencode, libevent
+, AppKit
+, withGui ? !stdenv.isDarwin
+}:
+
+with stdenv.lib;
+stdenv.mkDerivation rec{
+  name = "bit1" + (toString (optional (!withGui) "d")) + "-" + version;
+  version = "1.15.1";
+
+  src = fetchurl {
+    url = "https://github.com/btc1/bitcoin/archive/v${version}.tar.gz";
+    sha256 = "0v0g2wb4nsnhddxzb63vj2bc1mgyj05vqm5imicjfz8prvgc0si8";
+  };
+
+  nativeBuildInputs = [ pkgconfig autoreconfHook hexdump ];
+  buildInputs = [ openssl db48 boost zlib miniupnpc protobuf libevent ]
+    ++ optionals withGui [ qt4 qrencode ]
+    ++ optional stdenv.isDarwin AppKit;
+
+  configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ]
+                     ++ optionals withGui [ "--with-gui=qt4" ];
+
+  meta = {
+    description = "Peer-to-peer electronic cash system (btc1 client)";
+    longDescription= ''
+      Bitcoin is a free open source peer-to-peer electronic cash system that is
+      completely decentralized, without the need for a central server or trusted
+      parties. Users hold the crypto keys to their own money and transact directly
+      with each other, with the help of a P2P network to check for double-spending.
+
+      btc1 is an implementation of a Bitcoin full node with segwit2x hard fork
+      support.
+    '';
+    homepage = "https://github.com/btc1/bitcoin";
+    license = licenses.mit;
+    maintainers = with maintainers; [ sorpaas ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/clightning.nix b/nixpkgs/pkgs/applications/altcoins/clightning.nix
new file mode 100644
index 000000000000..6ae6ae7801f2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/clightning.nix
@@ -0,0 +1,57 @@
+{ stdenv, python3, pkgconfig, which, libtool, autoconf, automake,
+  autogen, sqlite, gmp, zlib, fetchFromGitHub, fetchpatch }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+  name = "clightning-${version}";
+  version = "0.6.2";
+
+  src = fetchFromGitHub {
+    fetchSubmodules = true;
+    owner = "ElementsProject";
+    repo = "lightning";
+    rev = "v${version}";
+    sha256 = "18yns0yyf7kc4p4n1crxdqh37j9faxkx216nh2ip7cxj4x8bf9gx";
+  };
+
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [ autoconf autogen automake libtool pkgconfig which ];
+  buildInputs = [ sqlite gmp zlib python3 ];
+
+  makeFlags = [ "prefix=$(out)" ];
+
+  configurePhase = ''
+    ./configure --prefix=$out --disable-developer --disable-valgrind
+  '';
+
+  # NOTE: remove me in 0.6.3
+  patches = [
+    (fetchpatch {
+      name = "clightning_0_6_2-compile-error.patch";
+      url = https://patch-diff.githubusercontent.com/raw/ElementsProject/lightning/pull/2070.patch;
+      sha256 = "1576fqik5zcpz5zsvp2ks939bgiz0jc22yf24iv61000dd5j6na9";
+    })
+  ];
+
+  postPatch = ''
+    echo "" > tools/refresh-submodules.sh
+    patchShebangs tools/generate-wire.py
+  '';
+
+  doCheck = false;
+
+  meta = {
+    description = "A Bitcoin Lightning Network implementation in C";
+    longDescription= ''
+      c-lightning is a standard compliant implementation of the Lightning
+      Network protocol. The Lightning Network is a scalability solution for
+      Bitcoin, enabling secure and instant transfer of funds between any two
+      parties for any amount.
+    '';
+    homepage = https://github.com/ElementsProject/lightning;
+    maintainers = with maintainers; [ jb55 ];
+    license = licenses.mit;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/cryptop/default.nix b/nixpkgs/pkgs/applications/altcoins/cryptop/default.nix
new file mode 100644
index 000000000000..01c47b320de5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/cryptop/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildPythonApplication, fetchPypi, requests, requests-cache }:
+
+buildPythonApplication rec {
+  pname = "cryptop";
+  version = "0.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0akrrz735vjfrm78plwyg84vabj0x3qficq9xxmy9kr40fhdkzpb";
+  };
+
+  propagatedBuildInputs = [ requests requests-cache ];
+
+  # No tests in archive
+  doCheck = false;
+
+  meta = {
+    homepage = https://github.com/huwwp/cryptop;
+    description = "Command line Cryptocurrency Portfolio";
+    license = with lib.licenses; [ mit ];
+    maintainers = with lib.maintainers; [ bhipple ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/dashpay.nix b/nixpkgs/pkgs/applications/altcoins/dashpay.nix
new file mode 100644
index 000000000000..b2f2a457a99d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/dashpay.nix
@@ -0,0 +1,43 @@
+{ fetchFromGitHub, stdenv, pkgconfig, autoreconfHook
+, openssl, db48, boost, zlib, miniupnpc
+, qrencode, glib, protobuf, yasm, libevent
+, utillinux
+, enable_Upnp ? false
+, disable_Wallet ? false
+, disable_Daemon ? false }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+  name = "dashpay-${version}";
+  version = "0.12.2.3";
+
+  src = fetchFromGitHub {
+    owner = "dashpay";
+    repo= "dash";
+    rev = "v${version}";
+    sha256 = "0l1gcj2xf2bal9ph9y11x8yd28fd25f55f48xbm45bfw3ij7nbaa";
+  };
+
+  nativeBuildInputs = [ pkgconfig autoreconfHook ];
+  buildInputs = [ glib openssl db48 yasm boost zlib libevent
+                  miniupnpc protobuf qrencode utillinux ];
+
+
+  configureFlags = [ "--with-boost-libdir=${boost.out}/lib --with-gui=no" ]
+                    ++ optional enable_Upnp "--enable-upnp-default"
+                    ++ optional disable_Wallet "--disable-wallet"
+                    ++ optional disable_Daemon "--disable-daemon"
+                    ;
+
+  meta = {
+    description = "A decentralized key/value registration and transfer system";
+    longDescription = ''
+      Dash (DASH) is an open sourced, privacy-centric digital currency
+      with instant transactions.  It allows you to keep your finances
+      private as you make transactions without waits, similar to cash.
+    '';
+    homepage = https://www.dash.org;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/dcrd.nix b/nixpkgs/pkgs/applications/altcoins/dcrd.nix
new file mode 100644
index 000000000000..cc3e83befa64
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/dcrd.nix
@@ -0,0 +1,34 @@
+{ stdenv, lib, go, buildGoPackage, dep, fetchgit, git, cacert }:
+
+buildGoPackage rec {
+  name = "dcrd-${version}";
+  version = "1.1.2";
+  rev = "refs/tags/v${version}";
+  goPackagePath = "github.com/decred/dcrd";
+
+  buildInputs = [ go git dep cacert ];
+
+  GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt";
+  NIX_SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt";
+
+  src = fetchgit {
+    inherit rev;
+    url = "https://${goPackagePath}";
+    sha256 = "0xcynipdn9zmmralxj0hjrwyanvhkwfj2b1vvjk5zfc95s2xc1q9";
+  };
+
+  preBuild = ''
+    export CWD=$(pwd)
+    cd go/src/github.com/decred/dcrd
+    dep ensure
+    go install . ./cmd/...
+    cd $CWD
+  '';
+
+  meta = {
+    homepage = "https://decred.org";
+    description = "Decred daemon in Go (golang)";
+    license = with lib.licenses; [ isc ];
+    broken = stdenv.isLinux; # 2018-04-10
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/dcrwallet.nix b/nixpkgs/pkgs/applications/altcoins/dcrwallet.nix
new file mode 100644
index 000000000000..8d966684b23c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/dcrwallet.nix
@@ -0,0 +1,43 @@
+{ stdenv, lib, go, buildGoPackage, dep, fetchgit, git, cacert }:
+
+buildGoPackage rec {
+  name = "dcrwallet-${version}";
+  version = "1.1.2";
+  rev = "refs/tags/v${version}";
+  goPackagePath = "github.com/decred/dcrwallet";
+
+  buildInputs = [ go git dep cacert ];
+
+  GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt";
+  NIX_SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt";
+
+  src = fetchgit {
+    inherit rev;
+    url = "https://${goPackagePath}";
+    sha256 = "058im4vmcmxcl5ir14h17wik5lagp2ay0p8qc3r99qmpfwvvz39x";
+  };
+
+  preBuild = ''
+    export CWD=$(pwd)
+    cd go/src/github.com/decred/dcrwallet
+    dep ensure
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+    go build
+  '';
+
+  installPhase = ''
+    mkdir -pv $bin/bin
+    cp -v dcrwallet $bin/bin
+  '';
+
+
+  meta = {
+    homepage = "https://decred.org";
+    description = "Decred daemon in Go (golang)";
+    license = with lib.licenses; [ isc ];
+    broken = stdenv.isLinux; # 2018-04-10
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/default.nix b/nixpkgs/pkgs/applications/altcoins/default.nix
new file mode 100644
index 000000000000..c7a81b6b11fd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/default.nix
@@ -0,0 +1,100 @@
+{ callPackage, boost155, boost165, openssl_1_1, haskellPackages, darwin, libsForQt5, miniupnpc_2, python3, buildGo110Package }:
+
+rec {
+
+  aeon = callPackage ./aeon { };
+
+  bitcoin  = libsForQt5.callPackage ./bitcoin.nix { miniupnpc = miniupnpc_2; withGui = true; };
+  bitcoind = callPackage ./bitcoin.nix { miniupnpc = miniupnpc_2; withGui = false; };
+  clightning = callPackage ./clightning.nix { };
+
+  bitcoin-abc  = libsForQt5.callPackage ./bitcoin-abc.nix { boost = boost165; withGui = true; };
+  bitcoind-abc = callPackage ./bitcoin-abc.nix { boost = boost165; withGui = false; };
+
+  bitcoin-unlimited  = callPackage ./bitcoin-unlimited.nix {
+    inherit (darwin.apple_sdk.frameworks) Foundation ApplicationServices AppKit;
+    withGui = true;
+  };
+  bitcoind-unlimited = callPackage ./bitcoin-unlimited.nix {
+    inherit (darwin.apple_sdk.frameworks) Foundation ApplicationServices AppKit;
+    withGui = false;
+  };
+
+  bitcoin-classic  = libsForQt5.callPackage ./bitcoin-classic.nix { boost = boost165; withGui = true; };
+  bitcoind-classic = callPackage ./bitcoin-classic.nix { boost = boost165; withGui = false; };
+
+  bitcoin-xt  = callPackage ./bitcoin-xt.nix {
+    inherit (darwin.apple_sdk.frameworks) Foundation ApplicationServices AppKit;
+    boost = boost165; withGui = true;
+  };
+  bitcoind-xt = callPackage ./bitcoin-xt.nix {
+    inherit (darwin.apple_sdk.frameworks) Foundation ApplicationServices AppKit;
+    boost = boost165; withGui = false;
+  };
+
+  btc1 = callPackage ./btc1.nix {
+    inherit (darwin.apple_sdk.frameworks) AppKit;
+    boost = boost165;
+  };
+  btc1d = btc1.override { withGui = false; };
+
+  cryptop = python3.pkgs.callPackage ./cryptop { };
+
+  dashpay = callPackage ./dashpay.nix { };
+
+  dcrd = callPackage ./dcrd.nix { };
+  dcrwallet = callPackage ./dcrwallet.nix { };
+
+  dero = callPackage ./dero.nix { boost = boost165; };
+
+  dogecoin  = callPackage ./dogecoin.nix { boost = boost165; withGui = true; };
+  dogecoind = callPackage ./dogecoin.nix { boost = boost165; withGui = false; };
+
+
+  freicoin = callPackage ./freicoin.nix { boost = boost155; };
+  go-ethereum = callPackage ./go-ethereum.nix {
+    inherit (darwin) libobjc;
+    inherit (darwin.apple_sdk.frameworks) IOKit;
+  };
+  go-ethereum-classic = callPackage ./go-ethereum-classic {
+    buildGoPackage = buildGo110Package;
+  };
+
+  litecoin  = callPackage ./litecoin.nix {
+    inherit (darwin.apple_sdk.frameworks) AppKit;
+  };
+  litecoind = litecoin.override { withGui = false; };
+
+  masari = callPackage ./masari.nix { boost = boost165; };
+
+  memorycoin  = callPackage ./memorycoin.nix { boost = boost165; withGui = true; };
+  memorycoind = callPackage ./memorycoin.nix { boost = boost165; withGui = false; };
+
+  mist = callPackage ./mist.nix { };
+
+  namecoin  = callPackage ./namecoin.nix  { withGui = true; };
+  namecoind = callPackage ./namecoin.nix { withGui = false; };
+
+  ethabi = callPackage ./ethabi.nix { };
+
+  stellar-core = callPackage ./stellar-core.nix { };
+
+  sumokoin = callPackage ./sumokoin.nix { boost = boost165; };
+
+  wownero = callPackage ./wownero.nix {
+    inherit (darwin.apple_sdk.frameworks) CoreData IOKit PCSC;
+  };
+
+  zcash = callPackage ./zcash {
+    withGui = false;
+    openssl = openssl_1_1;
+  };
+
+  parity = callPackage ./parity { };
+  parity-beta = callPackage ./parity/beta.nix { };
+  parity-ui = callPackage ./parity-ui { };
+
+  polkadot = callPackage ./polkadot { };
+
+  particl-core = callPackage ./particl/particl-core.nix { miniupnpc = miniupnpc_2; };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/dero.nix b/nixpkgs/pkgs/applications/altcoins/dero.nix
new file mode 100644
index 000000000000..8405ea8f842b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/dero.nix
@@ -0,0 +1,27 @@
+{ lib, stdenv, fetchFromGitHub, cmake, pkgconfig, unbound, openssl, boost
+, lmdb, miniupnpc, readline }:
+
+stdenv.mkDerivation rec {
+  name = "dero-${version}";
+  version = "0.11.6";
+
+  src = fetchFromGitHub {
+    owner = "deroproject";
+    repo = "dero";
+    rev = "v${version}";
+    sha256 = "0jc5rh2ra4wra04dwv9sydid5ij5930s38mhzq3qkdjyza1ahmsr";
+  };
+
+  nativeBuildInputs = [ cmake pkgconfig ];
+  buildInputs = [ boost miniupnpc openssl lmdb unbound readline ];
+
+  enableParallelBuilding = true;
+
+  meta = with lib; {
+    description = "Secure, private blockchain with smart contracts based on Monero";
+    homepage = "https://dero.io/";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ fpletz ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/dogecoin.nix b/nixpkgs/pkgs/applications/altcoins/dogecoin.nix
new file mode 100644
index 000000000000..0452f4013345
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/dogecoin.nix
@@ -0,0 +1,41 @@
+{ stdenv , fetchFromGitHub
+, pkgconfig, autoreconfHook
+, db5, openssl, boost, zlib, miniupnpc
+, protobuf, utillinux, qt4, qrencode
+, withGui }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+  name = "dogecoin" + (toString (optional (!withGui) "d")) + "-" + version;
+  version = "1.10.0";
+
+  src = fetchFromGitHub {
+    owner = "dogecoin";
+    repo = "dogecoin";
+    rev = "v${version}";
+    sha256 = "04rddx20d4fps2w3h1jxa2j8iyqpjv2fh897z0z3r06qjvjzf7rr";
+  };
+
+  nativeBuildInputs = [ pkgconfig autoreconfHook ];
+  buildInputs = [ openssl db5 openssl utillinux
+                  protobuf boost zlib miniupnpc ]
+                  ++ optionals withGui [ qt4 qrencode ];
+
+  configureFlags = [ "--with-incompatible-bdb"
+                     "--with-boost-libdir=${boost.out}/lib" ]
+                     ++ optionals withGui [ "--with-gui" ];
+
+  meta = {
+    description = "Wow, such coin, much shiba, very rich";
+    longDescription = ''
+      Dogecoin is a decentralized, peer-to-peer digital currency that
+      enables you to easily send money online. Think of it as "the
+      internet currency."
+      It is named after a famous Internet meme, the "Doge" - a Shiba Inu dog.
+    '';
+    homepage = http://www.dogecoin.com/;
+    license = licenses.mit;
+    maintainers = with maintainers; [ edwtjo offline AndersonTorres ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/ethabi.nix b/nixpkgs/pkgs/applications/altcoins/ethabi.nix
new file mode 100644
index 000000000000..d0bc700eb70f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/ethabi.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, rustPlatform }:
+
+with rustPlatform;
+
+buildRustPackage rec {
+  name = "ethabi-${version}";
+  version = "4.1.0";
+
+  src = fetchFromGitHub {
+    owner = "paritytech";
+    repo = "ethabi";
+    rev = "v${version}";
+    sha256 = "0kxflixmgycdh7sv73zf2mrkbcfzzw7f5sjbsjks9crc9cvjqi6p";
+  };
+
+  cargoSha256 = "18rigpsmfiv6im2sspnxadgqrlfdp9dd75ji8s56ksc9g7hrc3wz";
+
+  cargoBuildFlags = ["--features cli"];
+
+  meta = with stdenv.lib; {
+    description = "Ethereum function call encoding (ABI) utility";
+    homepage = https://github.com/ethcore/ethabi/;
+    maintainers = [ maintainers.dbrock ];
+    license = licenses.gpl3;
+    inherit version;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/fix-bitcoin-qt-build.patch b/nixpkgs/pkgs/applications/altcoins/fix-bitcoin-qt-build.patch
new file mode 100644
index 000000000000..cbbfd85fe5bf
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/fix-bitcoin-qt-build.patch
@@ -0,0 +1,15 @@
+--- bitcoin-abc-v0.15.0-src/build-aux/m4/bitcoin_qt.m4	1970-01-01 01:00:01.000000000 +0100
++++ bitcoin-abc-v0.15.0-src.org/build-aux/m4/bitcoin_qt.m4	2017-09-27 23:38:44.748384197 +0100
+@@ -35,11 +35,7 @@
+ dnl Output: $1 is set to the path of $2 if found. $2 are searched in order.
+ AC_DEFUN([BITCOIN_QT_PATH_PROGS],[
+   BITCOIN_QT_CHECK([
+-    if test "x$3" != "x"; then
+-      AC_PATH_PROGS($1,$2,,$3)
+-    else
+-      AC_PATH_PROGS($1,$2)
+-    fi
++    AC_PATH_PROGS($1,$2)
+     if test "x$$1" = "x" && test "x$4" != "xyes"; then
+       BITCOIN_QT_FAIL([$1 not found])
+     fi
diff --git a/nixpkgs/pkgs/applications/altcoins/freicoin.nix b/nixpkgs/pkgs/applications/altcoins/freicoin.nix
new file mode 100644
index 000000000000..1e9192bc6e40
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/freicoin.nix
@@ -0,0 +1,36 @@
+{ fetchFromGitHub, stdenv, db, boost, gmp, mpfr, qt4, qmake4Hook }:
+
+stdenv.mkDerivation rec {
+  version = "0.8.6-2";
+  name = "freicoin-${version}";
+
+  src = fetchFromGitHub {
+    owner = "freicoin";
+    repo = "freicoin";
+    rev = "v${version}";
+    sha256 = "1v1qwv4x5agjba82s1vknmdgq67y26wzdwbmwwqavv7f7y3y860h";
+  };
+
+  qmakeFlags = ["USE_UPNP=-"];
+
+  # I think that openssl and zlib are required, but come through other
+  # packages
+
+  preBuild = "unset AR";
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp freicoin-qt $out/bin
+  '';
+
+  nativeBuildInputs = [ qmake4Hook ];
+  buildInputs = [ db boost gmp mpfr qt4 ];
+
+  meta = with stdenv.lib; {
+    description = "Peer-to-peer currency with demurrage fee";
+    homepage = http://freicoi.in/;
+    license = licenses.mit;
+    maintainers = [ maintainers.viric ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/go-ethereum-classic/default.nix b/nixpkgs/pkgs/applications/altcoins/go-ethereum-classic/default.nix
new file mode 100644
index 000000000000..7461e4c376ab
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/go-ethereum-classic/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoPackage, fetchgit }:
+
+buildGoPackage rec {
+  name = "go-ethereum-classic-${version}";
+  version = "4.0.0";
+
+  goPackagePath = "github.com/ethereumproject/go-ethereum";
+  subPackages = [ "cmd/evm" "cmd/geth" ];
+
+  src = fetchgit {
+    rev = "v${version}";
+    url = "https://github.com/ethereumproject/go-ethereum";
+    sha256 = "06f1w7s45q4zva1xjrx92xinsdrixl0m6zhx5hvdjmg3xqcbwr79";
+  };
+
+  goDeps = ./deps.nix;
+
+  meta = {
+    description = "Golang implementation of Ethereum Classic";
+    homepage = https://github.com/ethereumproject/go-ethereum;
+    license = with lib.licenses; [ lgpl3 gpl3 ];
+    maintainers = with lib.maintainers; [ sorpaas ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/go-ethereum-classic/deps.nix b/nixpkgs/pkgs/applications/altcoins/go-ethereum-classic/deps.nix
new file mode 100644
index 000000000000..0aa6755ee960
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/go-ethereum-classic/deps.nix
@@ -0,0 +1,39 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.2.0
+[
+  {
+    goPackagePath = "github.com/maruel/panicparse";
+    fetch = {
+      type = "git";
+      url = "https://github.com/maruel/panicparse";
+      rev = "ae43f192cef2add653fe1481a3070ed00a4a6981";
+      sha256 = "11q8v4adbrazqvh24235s5nifck0d1083gbwv4dh5lhd10xlwdvr";
+    };
+  }
+  {
+    goPackagePath = "github.com/mattn/go-runewidth";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mattn/go-runewidth";
+      rev = "97311d9f7767e3d6f422ea06661bc2c7a19e8a5d";
+      sha256 = "0dxlrzn570xl7gb11hjy1v4p3gw3r41yvqhrffgw95ha3q9p50cg";
+    };
+  }
+  {
+    goPackagePath = "github.com/mitchellh/go-wordwrap";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mitchellh/go-wordwrap";
+      rev = "ad45545899c7b13c020ea92b2072220eefad42b8";
+      sha256 = "0ny1ddngvwfj3njn7pmqnf3l903lw73ynddw15x8ymp7hidv27v9";
+    };
+  }
+  {
+    goPackagePath = "github.com/nsf/termbox-go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/nsf/termbox-go";
+      rev = "4163cd39dda1c0dda883a713640bc01e08951c24";
+      sha256 = "1vzrhxf8823lrnwf1bfyxwlm52pph5iq2hgr1d0n07v8kjgqkrmx";
+    };
+  }
+]
diff --git a/nixpkgs/pkgs/applications/altcoins/go-ethereum.nix b/nixpkgs/pkgs/applications/altcoins/go-ethereum.nix
new file mode 100644
index 000000000000..14bf13d8828e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/go-ethereum.nix
@@ -0,0 +1,28 @@
+{ stdenv, buildGoPackage, fetchFromGitHub, libobjc, IOKit }:
+
+buildGoPackage rec {
+  name = "go-ethereum-${version}";
+  version = "1.8.20";
+  goPackagePath = "github.com/ethereum/go-ethereum";
+
+  # Fix for usb-related segmentation faults on darwin
+  propagatedBuildInputs =
+    stdenv.lib.optionals stdenv.isDarwin [ libobjc IOKit ];
+
+  # Fixes Cgo related build failures (see https://github.com/NixOS/nixpkgs/issues/25959 )
+  hardeningDisable = [ "fortify" ];
+
+  src = fetchFromGitHub {
+    owner = "ethereum";
+    repo = "go-ethereum";
+    rev = "v${version}";
+    sha256 = "0m2q1nz6f39pyr2rk6vflkwi4ykganzwr7wndpwr9rliw0x8jgi0";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = https://ethereum.github.io/go-ethereum/;
+    description = "Official golang implementation of the Ethereum protocol";
+    license = with licenses; [ lgpl3 gpl3 ];
+    maintainers = [ maintainers.adisbladis maintainers.lionello ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/litecoin.nix b/nixpkgs/pkgs/applications/altcoins/litecoin.nix
new file mode 100644
index 000000000000..33ac2be18322
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/litecoin.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchFromGitHub
+, pkgconfig, autoreconfHook
+, openssl, db48, boost, zlib, miniupnpc
+, glib, protobuf, utillinux, qt4, qrencode
+, AppKit
+, withGui ? true, libevent
+}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+
+  name = "litecoin" + (toString (optional (!withGui) "d")) + "-" + version;
+  version = "0.16.3";
+
+  src = fetchFromGitHub {
+    owner = "litecoin-project";
+    repo = "litecoin";
+    rev = "v${version}";
+    sha256 = "0vc184qfdkjky1qffa7309k6973k4197bkzwcmffc9r5sdfhrhkp";
+  };
+
+  nativeBuildInputs = [ pkgconfig autoreconfHook ];
+  buildInputs = [ openssl db48 boost zlib
+                  miniupnpc glib protobuf utillinux libevent ]
+                  ++ optionals stdenv.isDarwin [ AppKit ]
+                  ++ optionals withGui [ qt4 qrencode ];
+
+  configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ]
+                     ++ optionals withGui [ "--with-gui=qt4" ];
+
+  enableParallelBuilding = true;
+
+  meta = {
+    description = "A lite version of Bitcoin using scrypt as a proof-of-work algorithm";
+    longDescription= ''
+      Litecoin is a peer-to-peer Internet currency that enables instant payments
+      to anyone in the world. It is based on the Bitcoin protocol but differs
+      from Bitcoin in that it can be efficiently mined with consumer-grade hardware.
+      Litecoin provides faster transaction confirmations (2.5 minutes on average)
+      and uses a memory-hard, scrypt-based mining proof-of-work algorithm to target
+      the regular computers and GPUs most people already have.
+      The Litecoin network is scheduled to produce 84 million currency units.
+    '';
+    homepage = https://litecoin.org/;
+    platforms = platforms.unix;
+    license = licenses.mit;
+    broken = stdenv.isDarwin;
+    maintainers = with maintainers; [ offline AndersonTorres ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/masari.nix b/nixpkgs/pkgs/applications/altcoins/masari.nix
new file mode 100644
index 000000000000..02a6d25df516
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/masari.nix
@@ -0,0 +1,27 @@
+{ lib, stdenv, fetchFromGitHub, cmake, pkgconfig, unbound, openssl, boost
+, lmdb, miniupnpc, readline }:
+
+stdenv.mkDerivation rec {
+  name = "masari-${version}";
+  version = "0.1.4.0";
+
+  src = fetchFromGitHub {
+    owner = "masari-project";
+    repo = "masari";
+    rev = "v${version}";
+    sha256 = "0l6i21wkq5f6z8xr756i7vqgkzk7lixaa31ydy34fkfcqxppgxz3";
+  };
+
+  nativeBuildInputs = [ cmake pkgconfig ];
+  buildInputs = [ boost miniupnpc openssl lmdb unbound readline ];
+
+  enableParallelBuilding = true;
+
+  meta = with lib; {
+    description = "scalability-focused, untraceable, secure, and fungible cryptocurrency using the RingCT protocol";
+    homepage = "https://www.getmasari.org/";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ fpletz ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/memorycoin.nix b/nixpkgs/pkgs/applications/altcoins/memorycoin.nix
new file mode 100644
index 000000000000..944c82250d47
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/memorycoin.nix
@@ -0,0 +1,56 @@
+{ stdenv, fetchurl, pkgconfig, openssl, db48, boost
+, zlib, qt4, qmake4Hook, utillinux, protobuf, qrencode
+, withGui }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec{
+
+  name = "memorycoin" + (toString (optional (!withGui) "d")) + "-" + version;
+  version = "0.8.5";
+
+  src = fetchurl {
+    url = "https://github.com/memorycoin/memorycoin/archive/v${version}.tar.gz";
+    sha256 = "1iyh6dqrg0mirwci5br5n5qw3ghp2cs23wd8ygr56bh9ml4dr1m8";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ openssl db48 boost zlib utillinux protobuf ]
+                  ++ optionals withGui [ qt4 qmake4Hook qrencode ];
+
+  qmakeFlags = ["USE_UPNP=-"];
+  makeFlags = ["USE_UPNP=-"];
+
+  configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ]
+                     ++ optionals withGui [ "--with-gui=qt4" ];
+
+  preBuild = "unset AR;"
+             + (toString (optional (!withGui) "cd src; cp makefile.unix Makefile"));
+
+  installPhase =
+    if withGui
+    then "install -D bitcoin-qt $out/bin/memorycoin-qt"
+    else "install -D bitcoind $out/bin/memorycoind";
+
+  # `make build/version.o`:
+  # make: *** No rule to make target 'build/build.h', needed by 'build/version.o'.  Stop.
+  enableParallelBuilding = false;
+
+  meta = {
+    description = "Peer-to-peer, CPU-based electronic cash system";
+    longDescription= ''
+      Memorycoin is a cryptocurrency that aims to empower the
+      economically and financially marginalized. It allows individuals
+      to participate in the internet economy even when they live in
+      countries where credit card companies and PayPal(R) refuse to
+      operate. Individuals can store and transfer wealth with just a
+      memorized pass phrase.
+
+      Memorycoin is based on the Bitcoin code, but with some key
+      differences.
+    '';
+    homepage = http://www.bitcoin.org/;
+    maintainers = with maintainers; [ AndersonTorres ];
+    license = licenses.mit;
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/mist.nix b/nixpkgs/pkgs/applications/altcoins/mist.nix
new file mode 100644
index 000000000000..2990b44c7f4c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/mist.nix
@@ -0,0 +1,72 @@
+{ stdenv, makeWrapper, fetchurl, unzip, atomEnv, makeDesktopItem, buildFHSUserEnv, gtk2 }:
+
+let
+  version = "0.11.1";
+  pname = "mist";
+
+  throwSystem = throw "Unsupported system: ${stdenv.hostPlatform.system}";
+
+  meta = with stdenv.lib; {
+    description = "Browse and use Ðapps on the Ethereum network";
+    homepage = https://github.com/ethereum/mist;
+    license = licenses.gpl3;
+    maintainers = with maintainers; [];
+    platforms = [ "x86_64-linux" "i686-linux" ];
+  };
+
+  urlVersion = builtins.replaceStrings ["."] ["-"] version;
+
+  desktopItem = makeDesktopItem rec {
+    name = "Mist";
+    exec = "mist";
+    icon = "mist";
+    desktopName = name;
+    genericName = "Mist Browser";
+    categories = "Network;";
+  };
+
+  mist = stdenv.lib.appendToName "unwrapped" (stdenv.mkDerivation {
+    inherit pname version meta;
+
+    src = {
+      i686-linux = fetchurl {
+        url = "https://github.com/ethereum/mist/releases/download/v${version}/Mist-linux32-${urlVersion}.zip";
+        sha256 = "1ffzp9aa0g6w3d5pzp69fljk3sd51cbqdgxa1x16vj106sqm0gj7";
+      };
+      x86_64-linux = fetchurl {
+        url = "https://github.com/ethereum/mist/releases/download/v${version}/Mist-linux64-${urlVersion}.zip";
+        sha256 = "0yx4x72l8gk68yh9saki48zgqx8k92xnkm79dc651wdpd5c25cz3";
+      };
+    }.${stdenv.hostPlatform.system} or throwSystem;
+
+    buildInputs = [ unzip makeWrapper ];
+
+    buildCommand = ''
+      mkdir -p $out/lib/mist $out/bin
+      unzip -d $out/lib/mist $src
+      ln -s $out/lib/mist/mist $out/bin
+      fixupPhase
+      mkdir -p $out/share/applications
+      ln -s ${desktopItem}/share/applications/* $out/share/applications
+      patchelf \
+        --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+        --set-rpath "${atomEnv.libPath}:${gtk2}/lib:$out/lib/mist" \
+        $out/lib/mist/mist
+    '';
+  });
+in
+buildFHSUserEnv {
+  name = "mist";
+  inherit meta;
+
+  targetPkgs = pkgs: with pkgs; [
+     mist
+  ];
+
+  extraInstallCommands = ''
+    mkdir -p "$out/share/applications"
+    cp "${desktopItem}/share/applications/"* $out/share/applications
+  '';
+
+  runScript = "mist";
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/monero-gui/default.nix b/nixpkgs/pkgs/applications/altcoins/monero-gui/default.nix
new file mode 100644
index 000000000000..331ef6b92a4f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/monero-gui/default.nix
@@ -0,0 +1,93 @@
+{ stdenv, fetchFromGitHub
+, makeWrapper, makeDesktopItem
+, qtbase, qmake, qtmultimedia, qttools
+, qtgraphicaleffects, qtdeclarative
+, qtlocation, qtquickcontrols2, qtwebchannel
+, qtwebengine, qtx11extras, qtxmlpatterns
+, monero, unbound, readline, boost, libunwind
+, libsodium, pcsclite, zeromq, cppzmq, pkgconfig
+, hidapi
+}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "monero-gui-${version}";
+  version = "0.13.0.4";
+
+  src = fetchFromGitHub {
+    owner  = "monero-project";
+    repo   = "monero-gui";
+    rev    = "v${version}";
+    sha256 = "142yj5s15bhm300dislq3x5inw1f37shnrd5vyj78jjcvry3wymw";
+  };
+
+  nativeBuildInputs = [ qmake pkgconfig ];
+
+  buildInputs = [
+    qtbase qtmultimedia qtgraphicaleffects
+    qtdeclarative qtlocation qtquickcontrols2
+    qtwebchannel qtwebengine qtx11extras
+    qtxmlpatterns monero unbound readline
+    boost libunwind libsodium pcsclite zeromq
+    cppzmq makeWrapper hidapi
+  ];
+
+  patches = [
+    ./move-log-file.patch
+    ./move-translations-dir.patch
+  ];
+
+  postPatch = ''
+    echo '
+      var GUI_VERSION = "${version}";
+      var GUI_MONERO_VERSION = "${getVersion monero}";
+    ' > version.js
+    substituteInPlace monero-wallet-gui.pro \
+      --replace '$$[QT_INSTALL_BINS]/lrelease' '${getDev qttools}/bin/lrelease'
+    substituteInPlace src/daemon/DaemonManager.cpp \
+      --replace 'QApplication::applicationDirPath() + "' '"${monero}/bin'
+  '';
+
+  makeFlags = [ "INSTALL_ROOT=$(out)" ];
+
+  preBuild = ''
+    sed -i s#/opt/monero-wallet-gui##g Makefile
+    make -C src/zxcvbn-c
+  '';
+
+  desktopItem = makeDesktopItem {
+    name = "monero-wallet-gui";
+    exec = "monero-wallet-gui";
+    icon = "monero";
+    desktopName = "Monero";
+    genericName = "Wallet";
+    categories  = "Application;Network;Utility;";
+  };
+
+  postInstall = ''
+    # install desktop entry
+    mkdir -p $out/share/applications
+    cp ${desktopItem}/share/applications/* $out/share/applications
+
+    # install translations
+    mkdir -p $out/share/translations
+    cp translations/*.qm $out/share/translations/
+
+    # install icons
+    for n in 16 24 32 48 64 96 128 256; do
+      size=$n"x"$n
+      mkdir -p $out/share/icons/hicolor/$size/apps
+      cp $src/images/appicons/$size.png \
+         $out/share/icons/hicolor/$size/apps/monero.png
+    done;
+  '';
+
+  meta = {
+    description = "Private, secure, untraceable currency";
+    homepage    = https://getmonero.org/;
+    license     = licenses.bsd3;
+    platforms   = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ rnhmjoj ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/monero-gui/move-log-file.patch b/nixpkgs/pkgs/applications/altcoins/monero-gui/move-log-file.patch
new file mode 100644
index 000000000000..74f817d81350
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/monero-gui/move-log-file.patch
@@ -0,0 +1,27 @@
+diff --git a/main.cpp b/main.cpp
+index 79223c0..e80b317 100644
+--- a/main.cpp
++++ b/main.cpp
+@@ -115,6 +115,9 @@ int main(int argc, char *argv[])
+     QCommandLineOption logPathOption(QStringList() << "l" << "log-file",
+         QCoreApplication::translate("main", "Log to specified file"),
+         QCoreApplication::translate("main", "file"));
++    logPathOption.setDefaultValue(
++        QStandardPaths::writableLocation(QStandardPaths::CacheLocation)
++        + "/monero-wallet-gui.log");
+     parser.addOption(logPathOption);
+     parser.addHelpOption();
+     parser.process(app);
+diff --git a/Logger.cpp b/Logger.cpp
+index 660bafc..dae24d4 100644
+--- a/Logger.cpp
++++ b/Logger.cpp
+@@ -15,7 +15,7 @@ static const QString default_name = "monero-wallet-gui.log";
+ #elif defined(Q_OS_MAC)
+     static const QString osPath = QStandardPaths::standardLocations(QStandardPaths::HomeLocation).at(0) + "/Library/Logs";
+ #else // linux + bsd
+-    static const QString osPath = QStandardPaths::standardLocations(QStandardPaths::HomeLocation).at(0);
++    static const QString osPath = QStandardPaths::standardLocations(QStandardPaths::CacheLocation).at(0);
+ #endif
+ 
+ 
diff --git a/nixpkgs/pkgs/applications/altcoins/monero-gui/move-translations-dir.patch b/nixpkgs/pkgs/applications/altcoins/monero-gui/move-translations-dir.patch
new file mode 100644
index 000000000000..ff17ce5da1c0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/monero-gui/move-translations-dir.patch
@@ -0,0 +1,13 @@
+diff --git a/TranslationManager.cpp b/TranslationManager.cpp
+index e7fc52a..83534cc 100644
+--- a/TranslationManager.cpp
++++ b/TranslationManager.cpp
+@@ -25,7 +25,7 @@ bool TranslationManager::setLanguage(const QString &language)
+         return true;
+     }
+ 
+-    QString dir = qApp->applicationDirPath() + "/translations";
++    QString dir = qApp->applicationDirPath() + "/../share/translations";
+     QString filename = "monero-core_" + language;
+ 
+     qDebug("%s: loading translation file '%s' from '%s'",
diff --git a/nixpkgs/pkgs/applications/altcoins/monero/default.nix b/nixpkgs/pkgs/applications/altcoins/monero/default.nix
new file mode 100644
index 000000000000..3a962458632e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/monero/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchgit
+, cmake, pkgconfig, git
+, boost, miniupnpc, openssl, unbound, cppzmq
+, zeromq, pcsclite, readline, libsodium, hidapi
+, CoreData, IOKit, PCSC
+}:
+
+assert stdenv.isDarwin -> IOKit != null;
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name    = "monero-${version}";
+  version = "0.13.0.4";
+
+  src = fetchgit {
+    url    = "https://github.com/monero-project/monero.git";
+    rev    = "v${version}";
+    sha256 = "1ambgakapijhsi1pd70vw8vvnlwa3nid944lqkbfq3wl25lmc70d";
+  };
+
+  nativeBuildInputs = [ cmake pkgconfig git ];
+
+  buildInputs = [
+    boost miniupnpc openssl unbound
+    cppzmq zeromq pcsclite readline
+    libsodium hidapi
+  ] ++ optionals stdenv.isDarwin [ IOKit CoreData PCSC ];
+
+  cmakeFlags = [
+    "-DCMAKE_BUILD_TYPE=Release"
+    "-DBUILD_GUI_DEPS=ON"
+    "-DReadline_ROOT_DIR=${readline.dev}"
+  ] ++ optional stdenv.isDarwin "-DBoost_USE_MULTITHREADED=OFF";
+
+  hardeningDisable = [ "fortify" ];
+
+  meta = {
+    description = "Private, secure, untraceable currency";
+    homepage    = https://getmonero.org/;
+    license     = licenses.bsd3;
+    platforms   = platforms.all;
+    maintainers = with maintainers; [ ehmry rnhmjoj ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/namecoin.nix b/nixpkgs/pkgs/applications/altcoins/namecoin.nix
new file mode 100644
index 000000000000..93f9faf833a1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/namecoin.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchFromGitHub, openssl, boost, libevent, autoreconfHook, db4, miniupnpc, eject, pkgconfig, qt4, protobuf, libqrencode, hexdump
+, withGui }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+  version = "nc0.15.99-name-tab-beta2";
+  name = "namecoin" + toString (optional (!withGui) "d") + "-" + version;
+
+  src = fetchFromGitHub {
+    owner = "namecoin";
+    repo = "namecoin-core";
+    rev = version;
+    sha256 = "1r0v0yvlazmidxp6xhapbdawqb8fhzrdp11d4an5vgxa208s6wdf";
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook
+    pkgconfig
+    hexdump
+  ];
+
+  buildInputs = [
+    openssl
+    boost
+    libevent
+    db4
+    miniupnpc
+    eject
+  ] ++ optionals withGui [
+    qt4
+    protobuf
+    libqrencode
+  ];
+
+  enableParallelBuilding = true;
+
+  configureFlags = [
+    "--with-boost-libdir=${boost.out}/lib"
+  ];
+
+  meta = {
+    description = "Decentralized open source information registration and transfer system based on the Bitcoin cryptocurrency";
+    homepage = https://namecoin.org;
+    license = licenses.mit;
+    maintainers = with maintainers; [ doublec AndersonTorres infinisil ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/nano-wallet/CMakeLists.txt.patch b/nixpkgs/pkgs/applications/altcoins/nano-wallet/CMakeLists.txt.patch
new file mode 100644
index 000000000000..5bbec1d39bea
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/nano-wallet/CMakeLists.txt.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index b43f02f6..4470abbf 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -119,7 +119,7 @@ endif (RAIBLOCKS_SECURE_RPC)
+ 
+ include_directories (${CMAKE_SOURCE_DIR})
+ 
+-set(Boost_USE_STATIC_LIBS        ON)
++add_definitions(-DBOOST_LOG_DYN_LINK)
+ set(Boost_USE_MULTITHREADED      ON)
+ 
+ if (BOOST_CUSTOM)
diff --git a/nixpkgs/pkgs/applications/altcoins/nano-wallet/default.nix b/nixpkgs/pkgs/applications/altcoins/nano-wallet/default.nix
new file mode 100644
index 000000000000..62e725928741
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/nano-wallet/default.nix
@@ -0,0 +1,57 @@
+{lib, stdenv, fetchFromGitHub, cmake, pkgconfig, boost, libGL, qtbase}:
+
+stdenv.mkDerivation rec {
+
+  name = "nano-wallet-${version}";
+  version = "16.3";
+
+  src = fetchFromGitHub {
+    owner = "nanocurrency";
+    repo = "raiblocks";
+    rev = "V${version}";
+    sha256 = "1rhq7qzfd8li33pmzcjxrhbbgdklxlcijam62s385f8yqjwy80dz";
+    fetchSubmodules = true;
+  };
+
+  # Use a patch to force dynamic linking
+  patches = [
+    ./CMakeLists.txt.patch
+  ];
+
+  cmakeFlags = let
+    options = {
+      BOOST_ROOT = "${boost}";
+      Boost_USE_STATIC_LIBS = "OFF";
+      RAIBLOCKS_GUI = "ON";
+      RAIBLOCKS_TEST = "ON";
+      Qt5_DIR = "${qtbase.dev}/lib/cmake/Qt5";
+      Qt5Core_DIR = "${qtbase.dev}/lib/cmake/Qt5Core";
+      Qt5Gui_INCLUDE_DIRS = "${qtbase.dev}/include/QtGui";
+      Qt5Widgets_INCLUDE_DIRS = "${qtbase.dev}/include/QtWidgets";
+    };
+    optionToFlag = name: value: "-D${name}=${value}";
+  in lib.mapAttrsToList optionToFlag options;
+
+  nativeBuildInputs = [ cmake pkgconfig ];
+  buildInputs = [ boost libGL qtbase ];
+
+  buildPhase = ''
+    make nano_wallet
+  '';
+
+  checkPhase = ''
+    ./core_test
+  '';
+
+  meta = {
+    inherit version;
+    description = "Wallet for Nano cryptocurrency";
+    homepage = https://nano.org/en/wallet/;
+    license = lib.licenses.bsd2;
+    # Fails on Darwin. See:
+    # https://github.com/NixOS/nixpkgs/pull/39295#issuecomment-386800962
+    platforms = lib.platforms.linux;
+    maintainers = with lib.maintainers; [ jluttine ];
+  };
+
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/parity-ui/default.nix b/nixpkgs/pkgs/applications/altcoins/parity-ui/default.nix
new file mode 100644
index 000000000000..ec2e571e3f0b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/parity-ui/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, pkgs, fetchurl, makeWrapper, nodePackages }:
+
+let
+
+uiEnv = pkgs.callPackage ./env.nix { };
+
+in stdenv.mkDerivation rec {
+  name = "parity-ui-${version}";
+  version = "0.3.4";
+
+  src = fetchurl {
+    url = "https://github.com/parity-js/shell/releases/download/v${version}/parity-ui_${version}_amd64.deb";
+    sha256 = "1xbd00r9ph8w2d6d2c5xg4b5l74ljzs50rpc6kahfznypmh4kr73";
+    name = "${name}.deb";
+  };
+
+  nativeBuildInputs = [ makeWrapper nodePackages.asar ];
+
+  buildCommand = ''
+    mkdir -p $out/usr/
+    ar p $src data.tar.xz | tar -C $out -xJ .
+    substituteInPlace $out/usr/share/applications/parity-ui.desktop \
+      --replace "/opt/Parity UI" $out/bin
+    mv $out/usr/* $out/
+    mv "$out/opt/Parity UI" $out/share/parity-ui
+    rm -r $out/usr/
+    rm -r $out/opt/
+
+    fixupPhase
+
+    patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+      --set-rpath "${uiEnv.libPath}:$out/share/parity-ui" \
+      $out/share/parity-ui/parity-ui
+
+    find $out/share/parity-ui -name "*.node" -exec patchelf --set-rpath "${uiEnv.libPath}:$out/share/parity-ui" {} \;
+
+    paxmark m $out/share/parity-ui/parity-ui
+
+    mkdir -p $out/bin
+    ln -s $out/share/parity-ui/parity-ui $out/bin/parity-ui
+  '';
+
+  meta = with stdenv.lib; {
+    description = "UI for Parity. Fast, light, robust Ethereum implementation";
+    homepage = http://parity.io;
+    license = licenses.gpl3;
+    maintainers = [ maintainers.sorpaas ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/parity-ui/env.nix b/nixpkgs/pkgs/applications/altcoins/parity-ui/env.nix
new file mode 100644
index 000000000000..625a008af917
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/parity-ui/env.nix
@@ -0,0 +1,19 @@
+{ stdenv, lib, zlib, glib, alsaLib, dbus, gtk2, atk, pango, freetype, fontconfig
+, libgnome-keyring3, gdk_pixbuf, cairo, cups, expat, libgpgerror, nspr
+, nss, xorg, libcap, systemd, libnotify, libsecret, gnome2 }:
+
+let
+  packages = [
+    stdenv.cc.cc zlib glib dbus gtk2 atk pango freetype libgnome-keyring3
+    fontconfig gdk_pixbuf cairo cups expat libgpgerror alsaLib nspr nss
+    xorg.libXrender xorg.libX11 xorg.libXext xorg.libXdamage xorg.libXtst
+    xorg.libXcomposite xorg.libXi xorg.libXfixes xorg.libXrandr
+    xorg.libXcursor xorg.libxkbfile xorg.libXScrnSaver libcap systemd libnotify
+    xorg.libxcb libsecret gnome2.GConf
+  ];
+
+  libPathNative = lib.makeLibraryPath packages;
+  libPath64 = lib.makeSearchPathOutput "lib" "lib64" packages;
+  libPath = "${libPathNative}:${libPath64}";
+
+in { inherit packages libPath; }
diff --git a/nixpkgs/pkgs/applications/altcoins/parity/beta.nix b/nixpkgs/pkgs/applications/altcoins/parity/beta.nix
new file mode 100644
index 000000000000..46985fd065e1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/parity/beta.nix
@@ -0,0 +1,6 @@
+let
+  version     = "2.2.5";
+  sha256      = "0q9vgwc0jlja73r4na7yil624iagq1607ac47wh8a7xgfjmjjai1";
+  cargoSha256 = "0ibdmyh1jvfq51vhwn4riyhilqwhf71hjd4vyj525smn95p75b14";
+in
+  import ./parity.nix { inherit version sha256 cargoSha256; }
diff --git a/nixpkgs/pkgs/applications/altcoins/parity/default.nix b/nixpkgs/pkgs/applications/altcoins/parity/default.nix
new file mode 100644
index 000000000000..81923849094f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/parity/default.nix
@@ -0,0 +1,6 @@
+let
+  version     = "2.1.10";
+  sha256      = "1l4yl8i24q8v4hzljzai37f587x8m3cz3byzifhvq3bjky7p8h80";
+  cargoSha256 = "04pni9cmz8nhlqznwafz9d81006808kh24aqnb8rjdcr84d11zis";
+in
+  import ./parity.nix { inherit version sha256 cargoSha256; }
diff --git a/nixpkgs/pkgs/applications/altcoins/parity/parity.nix b/nixpkgs/pkgs/applications/altcoins/parity/parity.nix
new file mode 100644
index 000000000000..9eb189f014e2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/parity/parity.nix
@@ -0,0 +1,42 @@
+{ version
+, sha256
+, cargoSha256
+}:
+
+{ stdenv
+, fetchFromGitHub
+, rustPlatform 
+, pkgconfig
+, openssl
+, systemd
+, cmake
+, perl
+}:
+
+rustPlatform.buildRustPackage rec {
+  name = "parity-${version}";
+  inherit cargoSha256;
+
+  src = fetchFromGitHub {
+    owner = "paritytech";
+    repo = "parity-ethereum";
+    rev = "v${version}";
+    inherit sha256;
+  };
+
+  buildInputs = [
+    pkgconfig cmake perl
+    systemd.lib systemd.dev openssl openssl.dev
+  ];
+
+  # test result: FAILED. 80 passed; 12 failed; 0 ignored; 0 measured; 0 filtered out
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Fast, light, robust Ethereum implementation";
+    homepage = http://parity.io;
+    license = licenses.gpl3;
+    maintainers = [ maintainers.akru ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/particl/particl-core.nix b/nixpkgs/pkgs/applications/altcoins/particl/particl-core.nix
new file mode 100644
index 000000000000..d3b20ef2ea36
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/particl/particl-core.nix
@@ -0,0 +1,53 @@
+{ stdenv
+, autoreconfHook
+, boost
+, db48
+, fetchurl
+, libevent
+, miniupnpc
+, openssl
+, pkgconfig
+, zeromq
+, zlib
+, unixtools
+, python3
+}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "particl-core-${version}";
+  version = "0.17.0.2";
+
+  src = fetchurl {
+    url = "https://github.com/particl/particl-core/archive/v${version}.tar.gz";
+    sha256 = "0bkxdayl0jrfhgz8qzqqpwzv0yavz3nwsn6c8k003jnbcw65fkhx";
+  };
+
+  nativeBuildInputs = [ pkgconfig autoreconfHook ];
+  buildInputs = [ openssl db48 boost zlib miniupnpc libevent zeromq unixtools.hexdump python3 ];
+
+  configureFlags = [
+    "--disable-bench"
+    "--with-boost-libdir=${boost.out}/lib"
+  ] ++ optionals (!doCheck) [
+    "--enable-tests=no"
+  ];
+
+  # Always check during Hydra builds
+  doCheck = true;
+  preCheck = "patchShebangs test";
+  enableParallelBuilding = true;
+
+  meta = {
+    description = "Privacy-Focused Marketplace & Decentralized Application Platform";
+    longDescription= ''
+      An open source, decentralized privacy platform built for global person to person eCommerce.
+      RPC daemon and CLI client only.
+    '';
+    homepage = https://particl.io/;
+    maintainers = with maintainers; [ demyanrogozhin ];
+    license = licenses.mit;
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/polkadot/default.nix b/nixpkgs/pkgs/applications/altcoins/polkadot/default.nix
new file mode 100644
index 000000000000..6d4e0417cde7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/polkadot/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, fetchFromGitHub
+, rustPlatform
+, pkgconfig
+, openssl
+}:
+
+rustPlatform.buildRustPackage rec {
+  name = "polkadot-${version}";
+  version = "0.2.17";
+
+  src = fetchFromGitHub {
+    owner = "paritytech";
+    repo = "substrate";
+    rev = "19f4f4d4df3bb266086b4e488739f73d3d5e588c";
+    sha256 = "0v7g03rbml2afw0splmyjh9nqpjg0ldjw09hyc0jqd3qlhgxiiyj";
+  }; 
+
+  cargoSha256 = "0wwkaxqj2v5zach5xcqfzf6prc0gxy2v47janglp44xbxbx9xk08";
+
+  buildInputs = [ pkgconfig openssl openssl.dev ];
+
+  meta = with stdenv.lib; {
+    description = "Polkadot Node Implementation";
+    homepage = http://polkadot.network;
+    license = licenses.gpl3;
+    maintainers = [ maintainers.akru ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/stellar-core-dirty-version.patch b/nixpkgs/pkgs/applications/altcoins/stellar-core-dirty-version.patch
new file mode 100644
index 000000000000..57d66ce5919a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/stellar-core-dirty-version.patch
@@ -0,0 +1,15 @@
+Subject: Prevent "-dirty" from being erroneously added to the version
+
+diff --git a/src/Makefile.am b/src/Makefile.am
+index d36d1a3..00048fc 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -28,7 +28,7 @@ always:
+ # Always rebuild because .git/HEAD is a symbolic ref one can't depend on
+ StellarCoreVersion.h: always
+ 	@vers=$$(cd "$(srcdir)" \
+-		&& git describe --always --dirty --tags 2>/dev/null \
++		&& git describe --always --tags 2>/dev/null \
+ 		|| echo "$(PACKAGE) $(VERSION)"); \
+ 	    echo "#define STELLAR_CORE_VERSION \"$$vers\"" > $@~
+ 	@if cmp -s $@~ $@; then rm -f $@~; else \
diff --git a/nixpkgs/pkgs/applications/altcoins/stellar-core.nix b/nixpkgs/pkgs/applications/altcoins/stellar-core.nix
new file mode 100644
index 000000000000..4c3f9fe0760b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/stellar-core.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchgit, autoconf, libtool, automake, pkgconfig, git
+, bison, flex, postgresql }:
+
+let
+  pname = "stellar-core";
+  version = "0.5.1";
+
+in stdenv.mkDerivation {
+  name = "${pname}-${version}";
+
+  src = fetchgit {
+    url = "https://github.com/stellar/stellar-core.git";
+    rev = "refs/tags/v${version}";
+    sha256 = "0ldw3qr0sajgam38z2w2iym0214ial6iahbzx3b965cw92n8n88z";
+    fetchSubmodules = true;
+    leaveDotGit = true;
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ autoconf automake libtool git ];
+
+  propagatedBuildInputs = [ bison flex postgresql ];
+
+  patches = [ ./stellar-core-dirty-version.patch ];
+
+  preConfigure = ''
+    # Everything needs to be staged in git because the build uses
+    # `git ls-files` to search for source files to compile.
+    git add .
+
+    ./autogen.sh
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Implements the Stellar Consensus Protocol, a federated consensus protocol";
+    longDescription = ''
+      Stellar-core is the backbone of the Stellar network. It maintains a
+      local copy of the ledger, communicating and staying in sync with other
+      instances of stellar-core on the network. Optionally, stellar-core can
+      store historical records of the ledger and participate in consensus.
+    '';
+    homepage = https://www.stellar.org/;
+    platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ chris-martin ];
+    license = licenses.asl20;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/sumokoin.nix b/nixpkgs/pkgs/applications/altcoins/sumokoin.nix
new file mode 100644
index 000000000000..026008b2761a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/sumokoin.nix
@@ -0,0 +1,35 @@
+{ lib, stdenv, fetchFromGitHub, cmake, unbound, openssl, boost
+, libunwind, lmdb, miniupnpc }:
+
+stdenv.mkDerivation rec {
+  name = "sumokoin-${version}";
+  version = "0.2.0.0";
+
+  src = fetchFromGitHub {
+    owner = "sumoprojects";
+    repo = "sumokoin";
+    rev = "v${version}";
+    sha256 = "0ndgcawhxh3qb3llrrilrwzhs36qpxv7f53rxgcansbff9b3za6n";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ unbound openssl boost libunwind lmdb miniupnpc ];
+
+  postPatch = ''
+    substituteInPlace src/blockchain_db/lmdb/db_lmdb.cpp --replace mdb_size_t size_t
+  '';
+
+  cmakeFlags = [
+    "-DLMDB_INCLUDE=${lmdb}/include"
+  ];
+
+  enableParallelBuilding = true;
+
+  meta = with lib; {
+    description = "Sumokoin is a fork of Monero and a truely fungible cryptocurrency";
+    homepage = "https://www.sumokoin.org/";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ fpletz ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/wownero.nix b/nixpkgs/pkgs/applications/altcoins/wownero.nix
new file mode 100644
index 000000000000..4b62ba759f36
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/wownero.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, git
+, boost, miniupnpc, openssl, unbound, cppzmq
+, zeromq, pcsclite, readline, libsodium
+, CoreData, IOKit, PCSC
+}:
+
+assert stdenv.isDarwin -> IOKit != null;
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "wownero-${version}";
+
+  version = "0.4.0.0";
+  src = fetchFromGitHub {
+    owner = "wownero";
+    repo = "wownero";
+    fetchSubmodules = true;
+    rev    = "v${version}";
+    sha256 = "1z5fpl4gwys4v8ffrymlzwrbnrbg73x553a9lxwny7ba8yg2k14p";
+  };
+
+  nativeBuildInputs = [ cmake pkgconfig git ];
+
+  buildInputs = [
+    boost miniupnpc openssl unbound
+    cppzmq zeromq pcsclite readline libsodium
+  ] ++ optionals stdenv.isDarwin [ IOKit CoreData PCSC ];
+
+  cmakeFlags = [
+    "-DReadline_ROOT_DIR=${readline.dev}"
+    "-DMANUAL_SUBMODULES=ON"
+  ] ++ optional stdenv.isDarwin "-DBoost_USE_MULTITHREADED=OFF";
+
+  hardeningDisable = [ "fortify" ];
+
+  meta = {
+    description = "Wownero is a fork of the cryptocurrency Monero with primary alterations";
+    longDescription = ''
+      Wownero’s emission is capped and supply is finite. Wownero is a fairly
+      launched coin with no premine. It’s not a fork of another blockchain. With
+      its own genesis block there is no degradation of privacy caused by ring
+      signatures using different participants for the same transaction outputs.
+      Unlike opposing forks.
+    '';
+    homepage    = http://wownero.org/;
+    license     = licenses.bsd3;
+    platforms   = platforms.all;
+    maintainers = with maintainers; [ fuwa ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/zcash/default.nix b/nixpkgs/pkgs/applications/altcoins/zcash/default.nix
new file mode 100644
index 000000000000..6a8fba3c2bb7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/zcash/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, libsodium, fetchFromGitHub, wget, pkgconfig, autoreconfHook, openssl, db62, boost
+, zlib, gtest, gmock, callPackage, gmp, qt4, utillinux, protobuf, qrencode, libevent
+, withGui }:
+
+let librustzcash = callPackage ./librustzcash {};
+in
+with stdenv.lib;
+stdenv.mkDerivation rec {
+
+  name = "zcash" + (toString (optional (!withGui) "d")) + "-" + version;
+  version = "1.0.13";
+
+  src = fetchFromGitHub {
+    owner = "zcash";
+    repo  = "zcash";
+    rev = "v${version}";
+    sha256 = "05y7wxs66anxr5akbf05r36mmjfzqpwawn6vyh3jhpva51hzzzyz";
+  };
+
+  # Dependencies are underspecified: "make -C src gtest/zcash_gtest-test_merkletree.o"
+  # fails with "fatal error: test/data/merkle_roots.json.h: No such file or directory"
+  enableParallelBuilding = false;
+
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  buildInputs = [ gtest gmock gmp openssl wget db62 boost zlib
+                  protobuf libevent libsodium librustzcash ]
+                  ++ optionals stdenv.isLinux [ utillinux ]
+                  ++ optionals withGui [ qt4 qrencode ];
+
+  configureFlags = [ "--with-boost-libdir=${boost.out}/lib"
+                   ] ++ optionals withGui [ "--with-gui=qt4" ];
+
+  patchPhase = ''
+    sed -i"" 's,-lboost_system-mt,-lboost_system,' configure.ac
+    sed -i"" 's,-fvisibility=hidden,,g'            src/Makefile.am
+  '';
+
+  postInstall = ''
+    cp zcutil/fetch-params.sh $out/bin/zcash-fetch-params
+  '';
+
+  meta = {
+    description = "Peer-to-peer, anonymous electronic cash system";
+    homepage = https://z.cash/;
+    maintainers = with maintainers; [ rht ];
+    license = licenses.mit;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/zcash/librustzcash/default.nix b/nixpkgs/pkgs/applications/altcoins/zcash/librustzcash/default.nix
new file mode 100644
index 000000000000..b89582c09e60
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/zcash/librustzcash/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+  name = "librustzcash-unstable-${version}";
+  version = "2017-03-17";
+
+  src = fetchFromGitHub {
+    owner = "zcash";
+    repo = "librustzcash";
+    rev = "91348647a86201a9482ad4ad68398152dc3d635e";
+    sha256 = "02l1f46frpvw1r6k1wfh77mrsnmsdvifqx0vnscxz4xgb9ia9d1c";
+  };
+
+  cargoSha256 = "1b0kal53ggcr59hbrsdj8fifjycahrmzwq677n9h3fywv4r237m6";
+
+  installPhase = ''
+    mkdir -p $out/lib
+    cp target/release/librustzcash.a $out/lib/
+    mkdir -p $out/include
+    cp include/librustzcash.h $out/include/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Rust-language assets for Zcash";
+    homepage = https://github.com/zcash/librustzcash;
+    maintainers = with maintainers; [ rht ];
+    license = with licenses; [ mit asl20 ];
+    platforms = platforms.unix;
+  };
+}