Universal Molecule is a clone of Photon with a difficulty-responsive reward system. The first 1,440 blocks (~2 days) awarded a minimal amount to allow everyone to get in. After that, the block reward adjusts based on a 3-hour moving average of difficulty — rewarding miners more when the network is stable and less during difficulty spikes.
- Uses the Blake-256 hashing algorithm — a SHA-3 candidate faster than Scrypt, SHA-256D, Keccak, and Groestl
- Forked from Bitcoin 0.8.5
- Optimized 8-round Blake-256 with reduced double-hashing for efficiency
- Maintains proven ECDSA security
| Network Info | |
|---|---|
| Algorithm | Blake-256 (8 rounds) |
| Block time | 2 minutes |
| Block reward | 2 UMO (stable/falling difficulty), 0.05 UMO (rising difficulty) |
| Difficulty retarget | Every 10 blocks (~20 min), max 3% increase |
| Block maturity | 120 confirmations |
| Default port | 24785 |
| RPC port | 19738 |
| Max supply | 105,120,001 UMO |
git clone https://github.com/BlueDragon747/universalmol.git
cd universalmol
sudo add-apt-repository ppa:bitcoin/bitcoin
sudo apt update
sudo apt install build-essential libssl-dev libboost-all-dev \
libdb4.8-dev libdb4.8++-dev libminiupnpc-dev \
qt5-qmake qtbase5-dev qttools5-dev-tools
bash ./build.sh --native --both- Builds both the daemon (
universalmoleculed) and Qt wallet (universalmolecule-qt) natively on Ubuntu 18.04 - Binaries go to
outputs/native/ - On Linux, Qt builds automatically install a
.desktoplauncher and icon so the wallet appears in Activities search - For other Ubuntu versions, use Docker or AppImage
- See below for macOS, Windows, and other build options
bash ./build.sh [PLATFORM] [TARGET] [OPTIONS]
Platforms:
--native Build on Linux/Ubuntu 18.04, macOS, or Windows
--appimage Portable Linux AppImage (requires Docker)
--windows Cross-compile for Windows from Linux (requires Docker)
--macos Cross-compile for macOS from Linux (requires Docker)
Targets:
--daemon Daemon only (universalmoleculed)
--qt Qt wallet only (universalmolecule-qt)
--both Both (default)
Docker options (for --appimage, --windows, --macos, or --native on Linux):
--pull-docker Pull prebuilt Docker images from Docker Hub
--build-docker Build Docker images locally from repo Dockerfiles
Other options:
--jobs N Parallel make jobs (default: CPU cores - 1)
git clone https://github.com/BlueDragon747/universalmol.git
cd universalmolUse --pull-docker to pull prebuilt images from Docker Hub, or --build-docker to build them locally from the Dockerfiles in docker/.
bash ./build.sh --native --both --pull-docker # Daemon + Qt (pull from Hub)
bash ./build.sh --native --qt --pull-docker # Qt wallet only
bash ./build.sh --native --daemon --pull-docker # Daemon only
bash ./build.sh --native --both --build-docker # Build Docker image locally first
bash ./build.sh --appimage --pull-docker # Portable AppImage
bash ./build.sh --appimage --build-docker # AppImage (build image locally)There are two ways to build for Windows:
Native (MSYS2/MinGW64) — builds on Windows directly. Produces a ~10MB exe with DLLs bundled alongside it in the output folder.
Install MSYS2, then from the MINGW64 shell:
pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-boost \
mingw-w64-x86_64-openssl mingw-w64-x86_64-qt5-base \
mingw-w64-x86_64-qt5-tools mingw-w64-x86_64-miniupnpc \
mingw-w64-x86_64-dbThen build:
bash ./build.sh --native --both # Daemon + Qt wallet
bash ./build.sh --native --qt # Qt wallet only
bash ./build.sh --native --daemon # Daemon onlyDocker cross-compile (from Linux) — builds a single ~30MB static exe with no DLL dependencies.
bash ./build.sh --windows --both --pull-docker # Daemon + Qt (pull from Hub)
bash ./build.sh --windows --qt --pull-docker # Qt wallet only
bash ./build.sh --windows --daemon --pull-docker # Daemon only
bash ./build.sh --windows --both --build-docker # Build MXE image locally first
bash ./build.sh --windows --qt --build-docker # Qt only (build image locally)
bash ./build.sh --windows --daemon --build-docker # Daemon only (build image locally)Uses sidgrip/mxe-base:latest Docker image with MXE cross-compiler. Everything (Qt, Boost, OpenSSL, etc.) is statically linked into one self-contained exe.
Why the difference?
- MXE compiles all dependencies from source with the same toolchain, so everything links statically into one binary
- MSYS2's static Qt5 package uses a different C runtime (UCRT) than the MinGW64 toolchain (MSVCRT), making fully static linking impossible
- The native build auto-bundles all required DLLs in the output folder instead
There are two ways to build for macOS:
Native (Homebrew) — builds directly on a Mac.
Install dependencies:
brew install openssl boost@1.85 miniupnpc berkeley-db@4 qt@5Then build:
bash ./build.sh --native --both # Daemon + Qt wallet
bash ./build.sh --native --qt # Qt wallet only
bash ./build.sh --native --daemon # Daemon onlyDocker cross-compile (from Linux) — builds a macOS binary from a Linux host.
bash ./build.sh --macos --both --pull-docker # Daemon + Qt (pull from Hub)
bash ./build.sh --macos --qt --pull-docker # Qt wallet only
bash ./build.sh --macos --daemon --pull-docker # Daemon only
bash ./build.sh --macos --both --build-docker # Build osxcross image locally first
bash ./build.sh --macos --qt --build-docker # Qt only (build image locally)
bash ./build.sh --macos --daemon --build-docker # Daemon only (build image locally)Uses sidgrip/osxcross-base:latest Docker image with osxcross cross-compiler.
outputs/
├── universalmolecule.conf Auto-generated config with RPC credentials and peers
├── native/
│ ├── daemon/ universalmoleculed
│ └── qt/ universalmolecule-qt
├── linux-appimage/
│ └── qt/ UniversalMolecule-x86_64.AppImage
├── windows/
│ ├── daemon/
│ └── qt/ universalmolecule-qt.exe
└── macos/
├── daemon/ universalmoleculed
└── qt/ UniversalMolecule-Qt.app
The config file is auto-generated on first build with random RPC credentials, active peers from the network, and default settings. Copy it to ~/.universalmolecule/universalmolecule.conf before running the daemon.
Use --pull-docker to pull prebuilt images from Docker Hub, or --build-docker to build locally from the Dockerfiles in docker/.
| Image | Platform | Hub Size | Local Build Time |
|---|---|---|---|
sidgrip/native-base:18.04 |
Linux native builds (daemon + Qt) | ~450 MB | ~10 min |
sidgrip/appimage-base:22.04 |
Linux AppImage | ~515 MB | ~15 min |
sidgrip/mxe-base:latest |
Windows cross-compile | ~4.2 GB | ~2-4 hours |
sidgrip/osxcross-base:latest |
macOS cross-compile | ~7.2 GB | ~1-2 hours |
Local builds are cached by Docker — subsequent builds are instant.
macOS
--build-dockernote:
- The macOS cross-compile Dockerfile requires an Apple SDK tarball that cannot be redistributed
- Place
MacOSX26.2.sdk.tar.xzindocker/sdk/before running--build-docker- Extract it from Xcode:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/- Using
--pull-dockerdoes not require the SDK — it is already included in the prebuilt Docker Hub image
For building wallets for all Blake-family coins Blakecoin, Photon, BlakeBitcoin, Electron, Universal Molecule, Lithium, see the Blakestream Installer.
Universal Molecule is released under the terms of the MIT license. See COPYING for more information.