Stronghands current official branch of original code
Clone or download
Pull request Compare This branch is 1774 commits ahead, 1712 commits behind stronghands:master.
Latest commit 6643abc Oct 26, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
contrib qt5 update, search/replace Jan 13, 2018
doc qt5 update, search/replace Jan 13, 2018
share qt5 update, search/replace Jan 13, 2018
src 0154 bump Oct 26, 2018
.gitattributes Build identification strings Apr 10, 2012
.gitignore minor changes Jul 22, 2018
COPYING qt5 update, search/replace Jan 13, 2018
INSTALL qt5 update, search/replace Jan 13, 2018 update ubuntu build notes Apr 5, 2018
stronghands.conf qt5 update, search/replace Jan 13, 2018 0154 bump Oct 26, 2018 qt5 update, search/replace Jan 13, 2018

this is a short term extension of v0122 it will be deprecated soon by an updated code base

StrongHands Official Development Repository

Repo Info

Changes for QT5 taken from

What is StrongHands?

StrongHands is a StrongHands network-compatible, community-developed wallet client.

The project has been designed to provide people with a stable, secure, and feature-rich alternative to the Peercoin reference wallet (

To help faciliate broad community cooperation, a number of trusted StrongHands/Peershares community leaders have write permissions to the project's codebase, allowing for decentralization and continuity. Community members, old and new, are encouraged to find ways to contribute to the success of the project. If you have experience with programming, product design, QA engineering, translation, or have a different set of skills that you want to bring to the project, your involvement is appreciated!

StrongHands Resources

About StrongHands

StrongHands (abbreviated SHND), also known as StrongHands and Peer-to-Peer Coin is the first cryptocurrency design introducing proof-of-stake consensus as a security model, with a combined proof-of-stake/proof-of-work minting system. StrongHands is based on Bitcoin, while introducing many important innovations to cryptocurrency field including new security model, energy efficiency, better minting model and more adaptive response to rapid change in network computation power.

Repo Guidelines

  • Developers work in their own forks, then submit pull requests when they think their feature or bug fix is ready.
  • If it is a simple/trivial/non-controversial change, then one of the development team members simply pulls it.
  • If it is a more complicated or potentially controversial change, then the change may be discussed in the pull request, or the requester may be asked to start a discussion StrongHands Talk for a broader community discussion.
  • The patch will be accepted if there is broad consensus that it is a good thing. Developers should expect to rework and resubmit patches if they don't match the project's coding conventions (see coding.txt) or are controversial.
  • From time to time a pull request will become outdated. If this occurs, and the pull is no longer automatically mergeable; a comment on the pull will be used to issue a warning of closure. Pull requests closed in this manner will have their corresponding issue labeled 'stagnant'.
  • For development ideas and help see here.

Translation Guidelines

Changes to translations as well as new translations can be submitted to StrongHands's Get Localization page.

Translations are periodically pulled from Get Localization and merged into the git repository.

Important: We do not accept translation changes as GitHub pull requests because the next pull from Get Localization would automatically overwrite them again.

Build Qt client on Ubuntu 16.04

Standard build tool is Qt qmake, the following is executed in /home/${USER}.

sudo apt-get install git build-essential libssl-dev libdb++-dev dev libboost-all-dev libminiupnpc-dev qt5-default qt5-qmake qttools5-dev-tools -y
git clone
cd stronghands

if you get error undefined reference to symbol 'dlclose@@GLIBC_2.2.5' add to #407

    # prevents error "undefined reference to symbol dlclose@@GLIBC_2.2.5" when using `-Wl,-Bstatic`
    LIBS += -ldl

Build Qt client on OS X

Install Homebrew

The recommended way of installing the Homebrew OS X package manager is via Terminal command:

ruby -e "$(curl -fsSL"

About Homebrew

Homebrew is tractable. The standard script installs Homebrew to /usr/local so that sudo is not required for brew install. It is a careful script, it can be run even if other packages have already been installed to /usr/local. It informs the user exactly what it will do before it does it, enabling the user to confirm the details before permitting brew to execute the action.

How do I uninstall Homebrew?

To uninstall Homebrew, paste the command below in a terminal prompt.

 ruby -e "$(curl -fsSL"

By default, this command will uninstall homebrew and remove its footprint, i.e. will remove brew and restore /usr/local to its prior state.

Install SLIMCoin dependencies

brew install autoconf automake libtool miniupnpc openssl pkg-config
brew install boost protobuf libevent libqrencode
brew install berkeley-db4
brew install berkeley-db
brew install qt5 --with-dbus
brew link qt5 --force --overwrite

Compile OSX app

In a new Terminal window:

$ git clone
$ cd stronghands
$ /usr/local/opt/qt/bin/qmake RELEASE=1 USE_UPNP=1 USE_QRCODE=1
$ make
$ export QTDIR=/usr/local/opt/qt5
$ T=$(contrib/ $QTDIR/translations src/qt/locale)
$ python2.7 contrib/macdeploy/macdeployqtplus  -add-qt-tr $T -dmg -fancy contrib/macdeploy/fancy.plist

Ubuntu-hosted cross-compilation of Windows 32bit binary

Installing the MXE cross-compilation tool.

Make the distribution ppa known to the APT package system:

$ echo "deb wheezy main" > \

Add the GPG key to the APT package system:

$ apt-key adv --keyserver --recv-keys D43A795B73B16ABE9643FE1AFD8FFF16DB45C6AB

Update the APT cache:

$ apt-get update

Install some MXE package:

$ apt-get install mxe-i686-w64-mingw32.static-qt

Names of packages are mxe-<target>-<package>.

Possible targets:

  • i686-w64-mingw32.static
  • x86-64-w64-mingw32.static (note that _ replaced with -)
  • i686-w64-mingw32.shared
  • x86-64-w64-mingw32.shared (note that _ replaced with -)

(A complete list of packages can be found on the MXE site and in the build matrix.)

Packages are installed to /usr/lib/mxe/<target>/. The location acts as the root of the MXE source tree.

For example, cross-compile CMake project:

$ target=i686-w64-mingw32.static
$ mxedir=/usr/lib/mxe/
$ $mxedir/usr/bin/$target-cmake project-source
$ make

(Generally, Windows cross-compiled products are 32-bit and will run on both 32-bit and 64-bit Windows systems.)

Cross-compiling STRONGHANDS


# Working setup to cross-compile Windows binaries for StrongHands hosted on a
# Vagrant Ubuntu 16.04 VM using non-Canonical ppas for MXE and Qt5.7:
# deb wheezy main

# Doesn't seem to pass the QT directives through, though. Tough.

# Basic path bindings
# Belt and braces
CXXFLAGS="-std=gnu++11 -march=i686"

# Particularise for cross-compiling
export BOOST_THREAD_LIB_SUFFIX=_win32-mt
export QMAKE_LRELEASE=${MXE_PATH}/usr/${target}/qt5/bin/lrelease

# Call qmake to create Makefile.[Release|Debug]
${target}-qmake-qt5 \
    MXE=1 \
    USE_O3=1 \
    USE_QRCODE=1 \
    RELEASE=1 \
    USE_UPNPC=1 \

# Go for it. If successful, Windows binary will be written out to ./release/stronghands-qt.exe
make -f Makefile.Release CXXFLAGS="-DQT_GUI -DQT_NO_PRINTER -std=gnu++11 -march=i686" LDFLAGS="-march=i686"

The cross-compilation product is saved in the release directory under the name stronghands-qt.exe and can be tested on Ubuntu with:

$ wine release/stronghands-qt.exe

(be prepared for a long wait during the loading of the index, e.g. 15-20 mins on a low-end machine)