about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/blockchains
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2019-09-08 00:46:04 +0000
committerAlyssa Ross <hi@alyssa.is>2019-09-16 22:13:21 +0000
commitafcf2d55332c5c01c2d989e9d010577d257cb6cc (patch)
treee1c816a271686b014a6403bcad7c57dd2ee4d9c7 /nixpkgs/pkgs/applications/blockchains
parent175b9acd282aaf65b5f354ea6e95c1348fe3daa3 (diff)
parent4e60699fa727e4a0f9a3e78948012f86da32cfef (diff)
downloadnixlib-afcf2d55332c5c01c2d989e9d010577d257cb6cc.tar
nixlib-afcf2d55332c5c01c2d989e9d010577d257cb6cc.tar.gz
nixlib-afcf2d55332c5c01c2d989e9d010577d257cb6cc.tar.bz2
nixlib-afcf2d55332c5c01c2d989e9d010577d257cb6cc.tar.lz
nixlib-afcf2d55332c5c01c2d989e9d010577d257cb6cc.tar.xz
nixlib-afcf2d55332c5c01c2d989e9d010577d257cb6cc.tar.zst
nixlib-afcf2d55332c5c01c2d989e9d010577d257cb6cc.zip
Merge commit '4e60699fa727e4a0f9a3e78948012f86da32cfef'
Diffstat (limited to 'nixpkgs/pkgs/applications/blockchains')
-rw-r--r--nixpkgs/pkgs/applications/blockchains/aeon/default.nix43
-rw-r--r--nixpkgs/pkgs/applications/blockchains/bitcoin-abc.nix46
-rw-r--r--nixpkgs/pkgs/applications/blockchains/bitcoin-classic.nix54
-rw-r--r--nixpkgs/pkgs/applications/blockchains/bitcoin-unlimited.nix66
-rw-r--r--nixpkgs/pkgs/applications/blockchains/bitcoin.nix61
-rw-r--r--nixpkgs/pkgs/applications/blockchains/btc1.nix41
-rw-r--r--nixpkgs/pkgs/applications/blockchains/clightning.nix49
-rw-r--r--nixpkgs/pkgs/applications/blockchains/cryptop/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/blockchains/dashpay.nix43
-rw-r--r--nixpkgs/pkgs/applications/blockchains/dcrd.nix34
-rw-r--r--nixpkgs/pkgs/applications/blockchains/dcrwallet.nix43
-rw-r--r--nixpkgs/pkgs/applications/blockchains/dero.nix27
-rw-r--r--nixpkgs/pkgs/applications/blockchains/dogecoin.nix41
-rw-r--r--nixpkgs/pkgs/applications/blockchains/ethabi.nix27
-rw-r--r--nixpkgs/pkgs/applications/blockchains/exodus/default.nix78
-rw-r--r--nixpkgs/pkgs/applications/blockchains/fix-bitcoin-qt-build.patch15
-rw-r--r--nixpkgs/pkgs/applications/blockchains/freicoin.nix41
-rw-r--r--nixpkgs/pkgs/applications/blockchains/go-ethereum-classic/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/blockchains/go-ethereum-classic/deps.nix39
-rw-r--r--nixpkgs/pkgs/applications/blockchains/go-ethereum.nix29
-rw-r--r--nixpkgs/pkgs/applications/blockchains/jormungandr/default.nix55
-rw-r--r--nixpkgs/pkgs/applications/blockchains/ledger-live-desktop/default.nix50
-rw-r--r--nixpkgs/pkgs/applications/blockchains/litecoin.nix51
-rw-r--r--nixpkgs/pkgs/applications/blockchains/lnd.nix22
-rw-r--r--nixpkgs/pkgs/applications/blockchains/masari.nix27
-rw-r--r--nixpkgs/pkgs/applications/blockchains/mist.nix72
-rw-r--r--nixpkgs/pkgs/applications/blockchains/monero-gui/default.nix87
-rw-r--r--nixpkgs/pkgs/applications/blockchains/monero-gui/move-log-file.patch15
-rw-r--r--nixpkgs/pkgs/applications/blockchains/monero/default.nix47
-rw-r--r--nixpkgs/pkgs/applications/blockchains/namecoin.nix48
-rw-r--r--nixpkgs/pkgs/applications/blockchains/nano-wallet/CMakeLists.txt.patch13
-rw-r--r--nixpkgs/pkgs/applications/blockchains/nano-wallet/default.nix57
-rw-r--r--nixpkgs/pkgs/applications/blockchains/parity-ui/default.nix48
-rw-r--r--nixpkgs/pkgs/applications/blockchains/parity-ui/env.nix19
-rw-r--r--nixpkgs/pkgs/applications/blockchains/parity/beta.nix6
-rw-r--r--nixpkgs/pkgs/applications/blockchains/parity/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/blockchains/parity/parity.nix44
-rw-r--r--nixpkgs/pkgs/applications/blockchains/particl/particl-core.nix53
-rw-r--r--nixpkgs/pkgs/applications/blockchains/pivx.nix61
-rw-r--r--nixpkgs/pkgs/applications/blockchains/polkadot/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/blockchains/stellar-core-dirty-version.patch15
-rw-r--r--nixpkgs/pkgs/applications/blockchains/stellar-core.nix47
-rw-r--r--nixpkgs/pkgs/applications/blockchains/sumokoin.nix35
-rw-r--r--nixpkgs/pkgs/applications/blockchains/wasabiwallet/default.nix44
-rw-r--r--nixpkgs/pkgs/applications/blockchains/wownero.nix46
-rw-r--r--nixpkgs/pkgs/applications/blockchains/zcash/default.nix49
-rw-r--r--nixpkgs/pkgs/applications/blockchains/zcash/librustzcash/default.nix30
47 files changed, 1901 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/blockchains/aeon/default.nix b/nixpkgs/pkgs/applications/blockchains/aeon/default.nix
new file mode 100644
index 000000000000..d65889be3ac0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/aeon/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, git, doxygen, graphviz
+, boost, miniupnpc, openssl, unbound, cppzmq
+, zeromq, pcsclite, readline, libsodium
+}:
+
+let
+  version = "0.12.9.0";
+in
+stdenv.mkDerivation {
+  pname = "aeon";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "aeonix";
+    repo = "aeon";
+    rev = "v${version}-aeon";
+    fetchSubmodules = true;
+    sha256 = "194nxf8c8ihkmdsxyhkhrxc2xiinipifk0ng1rmxiiyr2gjgxzga";
+  };
+
+  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/blockchains/bitcoin-abc.nix b/nixpkgs/pkgs/applications/blockchains/bitcoin-abc.nix
new file mode 100644
index 000000000000..479d175020b7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/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.19.4";
+
+  src = fetchFromGitHub {
+    owner = "bitcoin-ABC";
+    repo = "bitcoin-abc";
+    rev = "v${version}";
+    sha256 = "1z4x25ygcw1pqml2ww02vqrvmihlv4f5gnnn1iyfirrjxgpfaxd7";
+  };
+
+  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/blockchains/bitcoin-classic.nix b/nixpkgs/pkgs/applications/blockchains/bitcoin-classic.nix
new file mode 100644
index 000000000000..ddce5c3f7150
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/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";
+  };
+
+  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"
+                                            "--with-qt-bindir=${qtbase.dev}/bin:${qttools.dev}/bin"
+                                          ];
+
+  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/blockchains/bitcoin-unlimited.nix b/nixpkgs/pkgs/applications/blockchains/bitcoin-unlimited.nix
new file mode 100644
index 000000000000..a75b20b39109
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/bitcoin-unlimited.nix
@@ -0,0 +1,66 @@
+{ stdenv, fetchFromGitHub, pkgconfig, autoreconfHook, openssl, db48, boost
+, zlib, miniupnpc, utillinux, protobuf, qrencode, libevent, python3
+, withGui, wrapQtAppsHook ? null, qtbase ? null, qttools ? null
+, Foundation, ApplicationServices, AppKit }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "bitcoin" + (toString (optional (!withGui) "d")) + "-unlimited-" + version;
+  version = "1.6.0.1";
+
+  src = fetchFromGitHub {
+    owner = "bitcoinunlimited";
+    repo = "bitcoinunlimited";
+    rev = "bucash${version}";
+    sha256 = "0f0mnal4jf8xdj7w5m4rdlcqkrkbpxi88c006m5k45lmjmj141zr";
+  };
+
+  nativeBuildInputs = [ pkgconfig autoreconfHook python3 ]
+    ++ optionals withGui [ wrapQtAppsHook qttools ];
+  buildInputs = [ openssl db48 boost zlib
+                  miniupnpc utillinux protobuf libevent ]
+                  ++ optionals withGui [ qtbase qttools qrencode ]
+                  ++ optionals stdenv.isDarwin [ Foundation ApplicationServices AppKit ];
+
+  configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ]
+                     ++ optionals withGui [ "--with-gui=qt5"
+                                            "--with-qt-bindir=${qtbase.dev}/bin:${qttools.dev}/bin"
+                                          ];
+  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/blockchains/bitcoin.nix b/nixpkgs/pkgs/applications/blockchains/bitcoin.nix
new file mode 100644
index 000000000000..b1d84f91251e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/bitcoin.nix
@@ -0,0 +1,61 @@
+{ stdenv, fetchurl, pkgconfig, autoreconfHook, openssl, db48, boost, zeromq, rapidcheck
+, zlib, miniupnpc, qtbase ? null, qttools ? null, wrapQtAppsHook ? null, utillinux, protobuf, python3, qrencode, libevent
+, withGui }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec{
+  name = "bitcoin" + (toString (optional (!withGui) "d")) + "-" + version;
+  version = "0.18.1";
+
+  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 = "5c7d93f15579e37aa2d1dc79e8f5ac675f59045fceddf604ae0f1550eb03bf96";
+  };
+
+  nativeBuildInputs =
+    [ pkgconfig autoreconfHook ]
+    ++ optional withGui wrapQtAppsHook;
+  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"
+                                          ];
+
+  checkInputs = [ rapidcheck python3 ];
+
+  doCheck = true;
+
+  checkFlags =
+    [ "LC_ALL=C.UTF-8" ]
+    # 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
+    ++ optional withGui "QT_PLUGIN_PATH=${qtbase}/${qtbase.qtPluginPrefix}";
+
+  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/blockchains/btc1.nix b/nixpkgs/pkgs/applications/blockchains/btc1.nix
new file mode 100644
index 000000000000..3241148aee12
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/btc1.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, pkgconfig, autoreconfHook, hexdump, openssl, db48
+, boost, zlib, miniupnpc, qt4, 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/blockchains/clightning.nix b/nixpkgs/pkgs/applications/blockchains/clightning.nix
new file mode 100644
index 000000000000..b20a6b3e8aa8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/clightning.nix
@@ -0,0 +1,49 @@
+{ stdenv, python3, pkgconfig, which, libtool, autoconf, automake,
+  autogen, sqlite, gmp, zlib, fetchurl, unzip, fetchpatch }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+  pname = "clightning";
+  version = "0.7.2.1";
+
+  src = fetchurl {
+    url = "https://github.com/ElementsProject/lightning/releases/download/v${version}/clightning-v${version}.zip";
+    sha256 = "3be716948efc1208b5e6a41e3034e4e4eecc5abbdac769fd1d999a104ac3a2ec";
+  };
+
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [ autoconf autogen automake libtool pkgconfig which unzip ];
+  buildInputs =
+    let py3 = python3.withPackages (p: [ p.Mako ]);
+    in [ sqlite gmp zlib py3 ];
+
+  makeFlags = [ "prefix=$(out) VERSION=v${version}" ];
+
+  configurePhase = ''
+    ./configure --prefix=$out --disable-developer --disable-valgrind
+  '';
+
+  postPatch = ''
+    patchShebangs \
+      tools/generate-wire.py \
+      tools/update-mocks.sh \
+      tools/mockup.sh
+  '';
+
+  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/blockchains/cryptop/default.nix b/nixpkgs/pkgs/applications/blockchains/cryptop/default.nix
new file mode 100644
index 000000000000..01c47b320de5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/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/blockchains/dashpay.nix b/nixpkgs/pkgs/applications/blockchains/dashpay.nix
new file mode 100644
index 000000000000..03dcd6cb54e6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/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 {
+  pname = "dashpay";
+  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/blockchains/dcrd.nix b/nixpkgs/pkgs/applications/blockchains/dcrd.nix
new file mode 100644
index 000000000000..16d39e85da15
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/dcrd.nix
@@ -0,0 +1,34 @@
+{ stdenv, lib, go, buildGoPackage, dep, fetchgit, git, cacert }:
+
+buildGoPackage rec {
+  pname = "dcrd";
+  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/blockchains/dcrwallet.nix b/nixpkgs/pkgs/applications/blockchains/dcrwallet.nix
new file mode 100644
index 000000000000..163ed2615d33
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/dcrwallet.nix
@@ -0,0 +1,43 @@
+{ stdenv, lib, go, buildGoPackage, dep, fetchgit, git, cacert }:
+
+buildGoPackage rec {
+  pname = "dcrwallet";
+  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/blockchains/dero.nix b/nixpkgs/pkgs/applications/blockchains/dero.nix
new file mode 100644
index 000000000000..0ab63bb53951
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/dero.nix
@@ -0,0 +1,27 @@
+{ lib, stdenv, fetchFromGitHub, cmake, pkgconfig, unbound, openssl, boost
+, lmdb, miniupnpc, readline }:
+
+stdenv.mkDerivation rec {
+  pname = "dero";
+  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/blockchains/dogecoin.nix b/nixpkgs/pkgs/applications/blockchains/dogecoin.nix
new file mode 100644
index 000000000000..e5f149a0efe7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/dogecoin.nix
@@ -0,0 +1,41 @@
+{ stdenv , fetchFromGitHub
+, pkgconfig, autoreconfHook
+, db5, openssl, boost, zlib, miniupnpc, libevent
+, protobuf, utillinux, qt4, qrencode
+, withGui }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+  name = "dogecoin" + (toString (optional (!withGui) "d")) + "-" + version;
+  version = "1.14.1";
+
+  src = fetchFromGitHub {
+    owner = "dogecoin";
+    repo = "dogecoin";
+    rev = "v${version}";
+    sha256 = "0nmbi5gmms16baqs3fmdp2xm0yf8wawnyz80gcmca4j5ph2zka1v";
+  };
+
+  nativeBuildInputs = [ pkgconfig autoreconfHook ];
+  buildInputs = [ openssl db5 openssl utillinux
+                  protobuf boost zlib miniupnpc libevent ]
+                  ++ 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/blockchains/ethabi.nix b/nixpkgs/pkgs/applications/blockchains/ethabi.nix
new file mode 100644
index 000000000000..21d69f14d7f3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/ethabi.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, rustPlatform }:
+
+with rustPlatform;
+
+buildRustPackage rec {
+  name = "ethabi-${version}";
+  version = "7.0.0";
+
+  src = fetchFromGitHub {
+    owner = "paritytech";
+    repo = "ethabi";
+    rev = "v${version}";
+    sha256 = "1gqd3vwsvv1wvi659qcdywgmh41swblpwmmxb033k8irw581dwq4";
+  };
+
+  cargoSha256 = "0zkdai31jf8f5syklaxq43ydjvp5xclr8pd6y1q6vkwjz6z49hzm";
+
+  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/blockchains/exodus/default.nix b/nixpkgs/pkgs/applications/blockchains/exodus/default.nix
new file mode 100644
index 000000000000..bc354a5213ea
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/exodus/default.nix
@@ -0,0 +1,78 @@
+{ stdenv, lib, fetchurl, unzip, glib, systemd, nss, nspr, gtk3-x11, gnome2,
+atk, cairo, gdk-pixbuf, xorg, xorg_sys_opengl, utillinux, alsaLib, dbus, at-spi2-atk,
+cups, vivaldi-ffmpeg-codecs, libpulseaudio }:
+
+stdenv.mkDerivation rec {
+  pname = "exodus";
+  version = "19.5.24";
+
+  src = fetchurl {
+    url = "https://exodusbin.azureedge.net/releases/${pname}-linux-x64-${version}.zip";
+    sha256 = "1yx296i525qmpqh8f2vax7igffg826nr8cyq1l0if35374bdsqdw";
+  };
+
+  sourceRoot = ".";
+  unpackCmd = ''
+			${unzip}/bin/unzip "$src" -x "Exodus*/lib*so"
+  '';
+
+  installPhase = ''
+		mkdir -p $out/bin $out/share/applications
+		cd Exodus-linux-x64
+		cp -r . $out
+		ln -s $out/Exodus $out/bin/Exodus
+		ln -s $out/exodus.desktop $out/share/applications
+		substituteInPlace $out/share/applications/exodus.desktop \
+				  --replace 'Exec=bash -c "cd `dirname %k` && ./Exodus"' "Exec=Exodus"
+  '';
+
+  dontPatchELF = true;
+  dontBuild = true;
+
+  preFixup = let
+    libPath = lib.makeLibraryPath [
+			glib
+			nss
+			nspr
+			gtk3-x11
+			gnome2.pango
+			atk
+			cairo
+			gdk-pixbuf
+			xorg.libX11
+			xorg.libxcb
+			xorg.libXcomposite
+			xorg.libXcursor
+			xorg.libXdamage
+			xorg.libXext
+			xorg.libXfixes
+			xorg.libXi
+			xorg.libXrender
+			xorg.libXtst
+			xorg_sys_opengl
+			utillinux
+			xorg.libXrandr
+			xorg.libXScrnSaver
+			alsaLib
+			dbus.lib
+			at-spi2-atk
+			cups.lib
+			libpulseaudio
+			systemd
+			vivaldi-ffmpeg-codecs
+    ];
+  in ''
+    patchelf \
+      --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+      --set-rpath "${libPath}" \
+      $out/Exodus
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://www.exodus.io/";
+    description = "Top-rated cryptocurrency wallet with Trezor integration and built-in Exchange";
+    license = licenses.unfree;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.mmahut ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/blockchains/fix-bitcoin-qt-build.patch b/nixpkgs/pkgs/applications/blockchains/fix-bitcoin-qt-build.patch
new file mode 100644
index 000000000000..c49bbc432519
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/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/blockchains/freicoin.nix b/nixpkgs/pkgs/applications/blockchains/freicoin.nix
new file mode 100644
index 000000000000..6cf84f76f919
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/freicoin.nix
@@ -0,0 +1,41 @@
+{ fetchFromGitHub, stdenv, db, boost, gmp, mpfr, qt4, qmake4Hook }:
+
+stdenv.mkDerivation rec {
+  version = "0.8.6-2";
+  pname = "freicoin";
+
+  src = fetchFromGitHub {
+    owner = "freicoin";
+    repo = "freicoin";
+    rev = "v${version}";
+    sha256 = "1v1qwv4x5agjba82s1vknmdgq67y26wzdwbmwwqavv7f7y3y860h";
+  };
+
+  enableParallelBuilding = false;
+
+  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;
+
+    # upstream doesn't support newer openssl versions, use 1.0.1 for testing
+    broken = true;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/blockchains/go-ethereum-classic/default.nix b/nixpkgs/pkgs/applications/blockchains/go-ethereum-classic/default.nix
new file mode 100644
index 000000000000..ed8086f742f9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/go-ethereum-classic/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoPackage, fetchgit }:
+
+buildGoPackage rec {
+  pname = "go-ethereum-classic";
+  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/blockchains/go-ethereum-classic/deps.nix b/nixpkgs/pkgs/applications/blockchains/go-ethereum-classic/deps.nix
new file mode 100644
index 000000000000..0aa6755ee960
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/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/blockchains/go-ethereum.nix b/nixpkgs/pkgs/applications/blockchains/go-ethereum.nix
new file mode 100644
index 000000000000..740ecfa228fd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/go-ethereum.nix
@@ -0,0 +1,29 @@
+{ stdenv, buildGoPackage, fetchFromGitHub, libobjc, IOKit }:
+
+buildGoPackage rec {
+  pname = "go-ethereum";
+  version = "1.9.2";
+
+  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 = pname;
+    rev = "v${version}";
+    sha256 = "0lymwylh4j63fzj9jy7mcw676a2ksgpsj9mazif1r3d2q73h9m88";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = "https://geth.ethereum.org/";
+    description = "Official golang implementation of the Ethereum protocol";
+    license = with licenses; [ lgpl3 gpl3 ];
+    maintainers = with maintainers; [ adisbladis asymmetric lionello xrelkd ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/blockchains/jormungandr/default.nix b/nixpkgs/pkgs/applications/blockchains/jormungandr/default.nix
new file mode 100644
index 000000000000..8c276d6bb805
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/jormungandr/default.nix
@@ -0,0 +1,55 @@
+{ stdenv
+, lib
+, fetchgit
+, rustPlatform
+, openssl
+, pkgconfig
+, protobuf
+, darwin
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "jormungandr";
+  version = "0.3.3";
+
+  src = fetchgit {
+    url = "https://github.com/input-output-hk/${pname}";
+    rev = "v${version}";
+    sha256 = "1fw3cl2rxnw9mww1b1z96x2iapwbpdgyp4ra19dhvfzmlvaiml5j";
+    fetchSubmodules = true;
+  };
+
+  cargoSha256 = "1ilp9ffaz3njv38mnqics4b5d7wh52mj4rwi71h5c0wzx4ww3zal";
+
+  nativeBuildInputs = [ pkgconfig protobuf ];
+  buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ];
+
+  patchPhase = ''
+    sed -i "s~SCRIPTPATH=.*~SCRIPTPATH=$out/templates/~g" scripts/bootstrap
+  '';
+
+  installPhase = ''
+    install -d $out/bin $out/templates
+    install -m755 target/*/release/jormungandr $out/bin/
+    install -m755 target/*/release/jcli $out/bin/
+    install -m755 scripts/send-transaction $out/templates
+    install -m755 scripts/jcli-helpers $out/bin/
+    install -m755 scripts/bootstrap $out/bin/jormungandr-bootstrap
+    install -m644 scripts/faucet-send-money.shtempl $out/templates/
+    install -m644 scripts/create-account-and-delegate.shtempl $out/templates/
+    install -m644 scripts/faucet-send-certificate.shtempl $out/templates/
+  '';
+
+  PROTOC = "${protobuf}/bin/protoc";
+
+  # Disabling integration tests
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "An aspiring blockchain node";
+    homepage = "https://input-output-hk.github.io/jormungandr/";
+    license = licenses.mit;
+    maintainers = [ maintainers.mmahut ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/blockchains/ledger-live-desktop/default.nix b/nixpkgs/pkgs/applications/blockchains/ledger-live-desktop/default.nix
new file mode 100644
index 000000000000..0417d2913de5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/ledger-live-desktop/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchurl, makeDesktopItem, makeWrapper, appimage-run }:
+
+stdenv.mkDerivation rec {
+  pname = "ledger-live-desktop";
+  version = "1.12.0";
+
+  src = fetchurl {
+    url = "https://github.com/LedgerHQ/${pname}/releases/download/v${version}/${pname}-${version}-linux-x86_64.AppImage";
+    sha256 = "0sn0ri8kqvy36d6vjwsb0mh54nwic58416m6q5drl1schsn6wyvj";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ appimage-run ];
+
+  desktopIcon = fetchurl {
+    url = "https://raw.githubusercontent.com/LedgerHQ/${pname}/v${version}/build/icon.png";
+    sha256 = "1mmfaf0yk7xf1kgbs3ka8wsbz1qgh60xj6z91ica1i7lw2qbdd5h";
+  };
+
+  desktopItem = makeDesktopItem {
+    name = pname;
+    exec = "${placeholder "out"}/bin/${pname}";
+    icon = pname;
+    desktopName = "Ledger Live";
+    categories = "Utility;";
+  };
+
+  unpackPhase = ":";
+
+  installPhase = ''
+    runHook preInstall
+
+    ${desktopItem.buildCommand}
+    install -D $src $out/share/${src.name}
+    install -Dm -x ${desktopIcon} \
+      $out/share/icons/hicolor/1024x1024/apps/${pname}.png
+    makeWrapper ${appimage-run}/bin/appimage-run $out/bin/${pname} \
+      --add-flags $out/share/${src.name}
+
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Wallet app for Ledger Nano S and Ledger Blue";
+    homepage = "https://www.ledger.com/live";
+    license = licenses.mit;
+    maintainers = with maintainers; [ thedavidmeister ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/blockchains/litecoin.nix b/nixpkgs/pkgs/applications/blockchains/litecoin.nix
new file mode 100644
index 000000000000..33ac2be18322
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/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/blockchains/lnd.nix b/nixpkgs/pkgs/applications/blockchains/lnd.nix
new file mode 100644
index 000000000000..27f10c963c0f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/lnd.nix
@@ -0,0 +1,22 @@
+{ buildGoModule, fetchFromGitHub, lib }:
+
+buildGoModule rec {
+  pname = "lnd";
+  version = "0.7.1-beta";
+
+  src = fetchFromGitHub {
+    owner = "lightningnetwork";
+    repo = "lnd";
+    rev = "v${version}";
+    sha256 = "1c0sm0lavdai4w6d283q54knggw9d42vvqmglnv2h9swbw1l23ry";
+  };
+
+  modSha256 = "13hjaf4bswk8g57lyxzdlqqp4a6ddl3qm6n4jja4b1h58mlbil73";
+
+  meta = with lib; {
+    description = "Lightning Network Daemon";
+    homepage = "https://github.com/lightningnetwork/lnd";
+    license = lib.licenses.mit;
+    maintainers = with maintainers; [ cypherpunk2140 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/blockchains/masari.nix b/nixpkgs/pkgs/applications/blockchains/masari.nix
new file mode 100644
index 000000000000..dfa005abb6ec
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/masari.nix
@@ -0,0 +1,27 @@
+{ lib, stdenv, fetchFromGitHub, cmake, pkgconfig, unbound, openssl, boost
+, lmdb, miniupnpc, readline }:
+
+stdenv.mkDerivation rec {
+  pname = "masari";
+  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/blockchains/mist.nix b/nixpkgs/pkgs/applications/blockchains/mist.nix
new file mode 100644
index 000000000000..2990b44c7f4c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/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/blockchains/monero-gui/default.nix b/nixpkgs/pkgs/applications/blockchains/monero-gui/default.nix
new file mode 100644
index 000000000000..92f6f0080219
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/monero-gui/default.nix
@@ -0,0 +1,87 @@
+{ mkDerivation, lib, makeDesktopItem, fetchFromGitHub
+, qtbase, qmake, qtmultimedia, qttools
+, qtgraphicaleffects, qtdeclarative
+, qtlocation, qtquickcontrols, qtquickcontrols2
+, qtwebchannel, qtwebengine, qtx11extras, qtxmlpatterns
+, monero, unbound, readline, boost, libunwind
+, libsodium, pcsclite, zeromq, cppzmq, pkgconfig
+, hidapi
+}:
+
+with lib;
+
+mkDerivation rec {
+  pname = "monero-gui";
+  version = "0.14.1.2";
+
+  src = fetchFromGitHub {
+    owner  = "monero-project";
+    repo   = "monero-gui";
+    rev    = "v${version}";
+    sha256 = "1rm043r6y2mzy8pclnzbjjfxgps8pkfa2b92p66k8y8rdmgq6m1k";
+  };
+
+  nativeBuildInputs = [ qmake pkgconfig ];
+
+  buildInputs = [
+    qtbase qtmultimedia qtgraphicaleffects
+    qtdeclarative qtlocation
+    qtquickcontrols qtquickcontrols2
+    qtwebchannel qtwebengine qtx11extras
+    qtxmlpatterns monero unbound readline
+    boost libunwind libsodium pcsclite zeromq
+    cppzmq hidapi
+  ];
+
+  patches = [ ./move-log-file.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 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    = platforms.all;
+    badPlatforms = platforms.darwin;
+    maintainers  = with maintainers; [ rnhmjoj ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/blockchains/monero-gui/move-log-file.patch b/nixpkgs/pkgs/applications/blockchains/monero-gui/move-log-file.patch
new file mode 100644
index 000000000000..e540f1960d6c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/monero-gui/move-log-file.patch
@@ -0,0 +1,15 @@
+diff --git a/main.cpp b/main.cpp
+index a51568d..5a9f683 100644
+--- a/main.cpp
++++ b/main.cpp
+@@ -152,7 +152,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/nixpkgs/pkgs/applications/blockchains/monero/default.nix b/nixpkgs/pkgs/applications/blockchains/monero/default.nix
new file mode 100644
index 000000000000..b6f074528616
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/monero/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchgit
+, cmake, pkgconfig, git
+, boost, miniupnpc, openssl, unbound, cppzmq
+, zeromq, pcsclite, readline, libsodium, hidapi
+, python3Packages
+, CoreData, IOKit, PCSC
+}:
+
+assert stdenv.isDarwin -> IOKit != null;
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  pname = "monero";
+  version = "0.14.1.0";
+
+  src = fetchgit {
+    url    = "https://github.com/monero-project/monero.git";
+    rev    = "v${version}";
+    sha256 = "1asa197fad81jfv12qgaa7y7pdr1r1pda96m9pvivkh4v30cx0nh";
+  };
+
+  nativeBuildInputs = [ cmake pkgconfig git ];
+
+  buildInputs = [
+    boost miniupnpc openssl unbound
+    cppzmq zeromq pcsclite readline
+    libsodium hidapi
+    python3Packages.protobuf
+  ] ++ 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/blockchains/namecoin.nix b/nixpkgs/pkgs/applications/blockchains/namecoin.nix
new file mode 100644
index 000000000000..4b8dc5525dc4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/namecoin.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchFromGitHub, openssl, boost, libevent, autoreconfHook, db4, miniupnpc, eject, pkgconfig, qt4, protobuf, qrencode, 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
+    qrencode
+  ];
+
+  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/blockchains/nano-wallet/CMakeLists.txt.patch b/nixpkgs/pkgs/applications/blockchains/nano-wallet/CMakeLists.txt.patch
new file mode 100644
index 000000000000..5bbec1d39bea
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/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/blockchains/nano-wallet/default.nix b/nixpkgs/pkgs/applications/blockchains/nano-wallet/default.nix
new file mode 100644
index 000000000000..a8d29ae149d9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/nano-wallet/default.nix
@@ -0,0 +1,57 @@
+{lib, stdenv, fetchFromGitHub, cmake, pkgconfig, boost, libGL, qtbase}:
+
+stdenv.mkDerivation rec {
+
+  pname = "nano-wallet";
+  version = "18.0";
+
+  src = fetchFromGitHub {
+    owner = "nanocurrency";
+    repo = "raiblocks";
+    rev = "V${version}";
+    sha256 = "03f9g1x7rs7vic9yzsjxsh5ddx9ys78rssbfghbccfw9qrwylh3y";
+    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/blockchains/parity-ui/default.nix b/nixpkgs/pkgs/applications/blockchains/parity-ui/default.nix
new file mode 100644
index 000000000000..0615aed2ca03
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/parity-ui/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, pkgs, fetchurl, makeWrapper, nodePackages }:
+
+let
+
+uiEnv = pkgs.callPackage ./env.nix { };
+
+in stdenv.mkDerivation rec {
+  pname = "parity-ui";
+  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 = "${pname}-${version}.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" {} \;
+
+    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/blockchains/parity-ui/env.nix b/nixpkgs/pkgs/applications/blockchains/parity-ui/env.nix
new file mode 100644
index 000000000000..a878bbf2e3e3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/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/blockchains/parity/beta.nix b/nixpkgs/pkgs/applications/blockchains/parity/beta.nix
new file mode 100644
index 000000000000..a936691bd799
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/parity/beta.nix
@@ -0,0 +1,6 @@
+let
+  version     = "2.6.2";
+  sha256      = "1j4249m5k3bi7di0wq6fm64zv3nlpgmg4hr5hnn94fyc09nz9n1r";
+  cargoSha256 = "18zd91n04wck3gd8szj4vxn3jq0bzq0h3rg0wcs6nzacbzhcx2sw";
+in
+  import ./parity.nix { inherit version sha256 cargoSha256; }
diff --git a/nixpkgs/pkgs/applications/blockchains/parity/default.nix b/nixpkgs/pkgs/applications/blockchains/parity/default.nix
new file mode 100644
index 000000000000..9b5a72077d5c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/parity/default.nix
@@ -0,0 +1,6 @@
+let
+  version     = "2.5.7";
+  sha256      = "0aprs71cbf98dsvjz0kydngkvdg5x7dijji8j6xadgvsarl1ljnj";
+  cargoSha256 = "0aa0nkv3jr7cdzswbxghxxv0y65a59jgs1682ch8vrasi0x17m1x";
+in
+  import ./parity.nix { inherit version sha256 cargoSha256; }
diff --git a/nixpkgs/pkgs/applications/blockchains/parity/parity.nix b/nixpkgs/pkgs/applications/blockchains/parity/parity.nix
new file mode 100644
index 000000000000..fbc43cd3402c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/parity/parity.nix
@@ -0,0 +1,44 @@
+{ version
+, sha256
+, cargoSha256
+}:
+
+{ lib
+, fetchFromGitHub
+, rustPlatform
+
+, cmake
+, openssl
+, pkgconfig
+, systemd
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "parity";
+  inherit version;
+  inherit cargoSha256;
+
+  src = fetchFromGitHub {
+    owner = "paritytech";
+    repo = "parity-ethereum";
+    rev = "v${version}";
+    inherit sha256;
+  };
+
+  nativeBuildInputs = [ cmake pkgconfig ];
+
+  buildInputs = [ openssl systemd ];
+
+  cargoBuildFlags = [ "--features final" ];
+
+  # test result: FAILED. 80 passed; 12 failed; 0 ignored; 0 measured; 0 filtered out
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Fast, light, robust Ethereum implementation";
+    homepage = "http://parity.io";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ akru xrelkd ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/blockchains/particl/particl-core.nix b/nixpkgs/pkgs/applications/blockchains/particl/particl-core.nix
new file mode 100644
index 000000000000..613d57cd9c8c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/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 {
+  pname = "particl-core";
+  version = "0.17.1.2";
+
+  src = fetchurl {
+    url = "https://github.com/particl/particl-core/archive/v${version}.tar.gz";
+    sha256 = "16hcyxwp6yrypwvxz6i2987z3jmpk47xcgnsgh9klih8baqg64p5";
+  };
+
+  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/blockchains/pivx.nix b/nixpkgs/pkgs/applications/blockchains/pivx.nix
new file mode 100644
index 000000000000..c0833de7dbf3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/pivx.nix
@@ -0,0 +1,61 @@
+{ fetchFromGitHub, stdenv, pkgconfig, autoreconfHook
+, openssl, db48, boost, zlib, miniupnpc, gmp
+, qrencode, glib, protobuf, yasm, libevent
+, utillinux, qtbase ? null, qttools ? null
+, enableUpnp ? false
+, disableWallet ? false
+, disableDaemon ? false 
+, withGui ? false }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+  pname = "pivx";
+  version = "3.2.0";
+
+  src = fetchFromGitHub {
+    owner = "PIVX-Project";
+    repo= "PIVX";
+    rev = "v${version}";
+    sha256 = "1sym6254vhq8qqpxq9qhy10m5167v7x93kqaj1gixc1vwwbxyazy";
+  };
+
+  nativeBuildInputs = [ pkgconfig autoreconfHook ];
+  buildInputs = [ glib gmp openssl db48 yasm boost zlib libevent miniupnpc protobuf utillinux ]
+                  ++ optionals withGui [ qtbase qttools qrencode ];
+
+  configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ]
+                    ++ optional enableUpnp "--enable-upnp-default"
+                    ++ optional disableWallet "--disable-wallet"
+                    ++ optional disableDaemon "--disable-daemon"
+                    ++ optionals withGui [ "--with-gui=yes"
+                                           "--with-qt-bindir=${qtbase.dev}/bin:${qttools.dev}/bin"
+                                         ];
+  
+  enableParallelBuilding = true;
+  doChecks = true;
+  postBuild = ''
+    mkdir -p $out/share/applications $out/share/icons
+    cp contrib/debian/pivx-qt.desktop $out/share/applications/
+    cp share/pixmaps/*128.png $out/share/icons/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "An open source crypto-currency focused on fast private transactions";
+    longDescription = ''
+      PIVX is an MIT licensed, open source, blockchain-based cryptocurrency with
+      ultra fast transactions, low fees, high network decentralization, and
+      Zero Knowledge cryptography proofs for industry-leading transaction anonymity.
+    '';
+    license = licenses.mit;
+    homepage = https://www.dash.org;
+    maintainers = with maintainers; [ wucke13 ];
+    platforms = platforms.unix;
+
+    # upstream doesn't support newer openssl versions
+    # https://github.com/PIVX-Project/PIVX/issues/748
+    # "Your system is most probably using openssl 1.1 which is not the
+    # officialy supported version. Either use 1.0.1 or run again configure
+    # with the given option."
+    broken = true;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/blockchains/polkadot/default.nix b/nixpkgs/pkgs/applications/blockchains/polkadot/default.nix
new file mode 100644
index 000000000000..26c9192ee6fa
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/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 = "19xcxpbkrbygghz9qi52vzviksxg28m7ibvl359vlhqv1cjxmpsq";
+
+  buildInputs = [ pkgconfig openssl openssl.dev ];
+
+  meta = with stdenv.lib; {
+    description = "Polkadot Node Implementation";
+    homepage = https://polkadot.network;
+    license = licenses.gpl3;
+    maintainers = [ maintainers.akru ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/blockchains/stellar-core-dirty-version.patch b/nixpkgs/pkgs/applications/blockchains/stellar-core-dirty-version.patch
new file mode 100644
index 000000000000..57d66ce5919a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/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/blockchains/stellar-core.nix b/nixpkgs/pkgs/applications/blockchains/stellar-core.nix
new file mode 100644
index 000000000000..4c3f9fe0760b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/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/blockchains/sumokoin.nix b/nixpkgs/pkgs/applications/blockchains/sumokoin.nix
new file mode 100644
index 000000000000..ad65da057aec
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/sumokoin.nix
@@ -0,0 +1,35 @@
+{ lib, stdenv, fetchFromGitHub, cmake, unbound, openssl, boost
+, libunwind, lmdb, miniupnpc }:
+
+stdenv.mkDerivation rec {
+  pname = "sumokoin";
+  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/blockchains/wasabiwallet/default.nix b/nixpkgs/pkgs/applications/blockchains/wasabiwallet/default.nix
new file mode 100644
index 000000000000..7185b3510601
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/wasabiwallet/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchurl, makeDesktopItem, openssl, xorg, curl, fontconfig, krb5, zlib, dotnet-sdk }:
+
+stdenv.mkDerivation rec {
+  pname = "wasabiwallet";
+  version = "1.1.5";
+
+	src = fetchurl {
+		url = "https://github.com/zkSNACKs/WalletWasabi/releases/download/v${version}/WasabiLinux-${version}.tar.gz";
+		sha256 = "1iq7qkpq073yq1bz8pam4cbm2myznhpjr3g9afblvmxwgbdjxak0";
+	};
+
+	dontBuild = true;
+	dontPatchELF = true;
+
+	desktopItem = makeDesktopItem {
+		name = "wasabi";
+		exec = "wasabiwallet";
+		desktopName = "Wasabi";
+		genericName = "Bitcoin wallet";
+		comment = meta.description;
+		categories = "Application;Network;Utility;";
+	};
+
+  installPhase = ''
+		mkdir -p $out/opt/${pname} $out/bin $out/share/applications
+		cp -Rv . $out/opt/${pname}
+		cd $out/opt/${pname}
+		for i in $(find . -type f -name '*.so') wassabee
+			do
+				patchelf --set-rpath ${stdenv.lib.makeLibraryPath [ openssl stdenv.cc.cc.lib xorg.libX11 curl fontconfig.lib krb5 zlib dotnet-sdk ]} $i
+			done
+		patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" wassabee
+		ln -s $out/opt/${pname}/wassabee $out/bin/${pname}
+		cp -v $desktopItem/share/applications/* $out/share/applications
+	'';
+
+  meta = with stdenv.lib; {
+    description = "Privacy focused Bitcoin wallet";
+    homepage = "https://wasabiwallet.io/";
+    license = licenses.mit;
+    platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ mmahut ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/blockchains/wownero.nix b/nixpkgs/pkgs/applications/blockchains/wownero.nix
new file mode 100644
index 000000000000..365afb5a2411
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/wownero.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, git
+, boost, miniupnpc_2, openssl, unbound, cppzmq
+, zeromq, pcsclite, readline, libsodium, rapidjson
+}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  pname = "wownero";
+
+  version = "0.6.1.2";
+  src = fetchFromGitHub {
+    owner = "wownero";
+    repo = "wownero";
+    rev    = "v${version}";
+    sha256 = "03q3pviyhrldpa3f4ly4d97jr39hvrz37chl102bap0790d9lk09";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ cmake pkgconfig git ];
+
+  buildInputs = [
+    boost miniupnpc_2 openssl unbound rapidjson
+    cppzmq zeromq pcsclite readline libsodium
+  ];
+
+  cmakeFlags = [
+    "-DReadline_ROOT_DIR=${readline.dev}"
+    "-DMANUAL_SUBMODULES=ON"
+  ];
+
+  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.linux;
+    maintainers = with maintainers; [ fuwa ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/blockchains/zcash/default.nix b/nixpkgs/pkgs/applications/blockchains/zcash/default.nix
new file mode 100644
index 000000000000..6a8fba3c2bb7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/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/blockchains/zcash/librustzcash/default.nix b/nixpkgs/pkgs/applications/blockchains/zcash/librustzcash/default.nix
new file mode 100644
index 000000000000..3aeee7e6972f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/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 = "1xlq8vkzfyr5q8gxvzkwi8r1kxg4rg8l1ckdwfdxlkhnw0yscbra";
+
+  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;
+  };
+}