Veil ProgPOW miner with CPU mining support for Apple Silicon (ARM) and GPU mining via OpenCL and CUDA on Linux/Windows.
- Requirements
- Building on macOS (Apple Silicon)
- Building on Linux
- Building on Windows
- Running the miner
- Verifying a download
- Verifying the signature
- Notes
brew install cmake boost@1.85 openssl@3 pkg-config gitsudo apt-get install build-essential cmake libboost-all-dev libssl-dev git- CUDA Toolkit 12.8 or newer if you want to build CUDA support. 12.8 is the
first release that can target Blackwell (RTX 50-series,
sm_120). - Stay on 12.x. CUDA 13 dropped offline compilation for
sm_50throughsm_70, so a 13.x build will not run on GTX 900/10-series or Volta cards. - Older toolkits still build: the arch list trims itself to whatever the detected toolkit accepts. You just will not get Blackwell support below 12.8.
- Visual Studio 2019 or 2022 with the Desktop development with C++ workload
- CMake 3.16+
- Git for Windows
- vcpkg for dependencies. The clone is pinned to
the
2024.07.12tag: it is the last baseline shipping boost 1.85, and newer boost removed the Process v1 API this code uses. A current vcpkg will not build the miner. - Nvidia GPU: CUDA Toolkit 11+
- AMD GPU: AMD drivers include OpenCL — no extra install needed
# 1. Clone the repo
git clone https://github.com/ohcee/Veil-Miner.git
cd Veil-Miner/veil-progpow-miner
# 2. Pull the cmake submodules
git clone https://github.com/ethereum/cable cmake/cable
git clone https://github.com/hunter-packages/disabled-mode cmake/Hunter/disabled-mode
# 3. Create build directory
mkdir build && cd build
# 4. Configure — CPU mining is auto-enabled on Apple Silicon
cmake -DETHASHCPU=ON -DETHASHCL=OFF -DETHASHCUDA=OFF ..
# 5. Build
make -j$(sysctl -n hw.logicalcpu)Binary: build/veilminer/veilminer
# 1. Clone the repo
git clone https://github.com/ohcee/Veil-Miner.git
cd Veil-Miner/veil-progpow-miner
# 2. Pull the cmake submodules
git clone https://github.com/ethereum/cable cmake/cable
git clone https://github.com/hunter-packages/disabled-mode cmake/Hunter/disabled-mode
mkdir build && cd build
# GPU — OpenCL + CUDA (most common)
cmake -DETHASHCL=ON -DETHASHCUDA=ON -DETHASHCPU=OFF ..
# GPU — OpenCL only (AMD / Intel)
cmake -DETHASHCL=ON -DETHASHCUDA=OFF -DETHASHCPU=OFF ..
# CPU only
cmake -DETHASHCL=OFF -DETHASHCUDA=OFF -DETHASHCPU=ON ..
make -j$(nproc)Binary: build/veilminer/veilminer
Open a Developer Command Prompt for VS 2022 (or 2019).
git clone --branch 2024.07.12 https://github.com/microsoft/vcpkg.git C:\vcpkg
C:\vcpkg\bootstrap-vcpkg.bat
C:\vcpkg\vcpkg install boost-algorithm boost-array boost-asio boost-bind boost-container-hash boost-dll boost-exception boost-fiber boost-filesystem boost-format boost-lexical-cast boost-lockfree boost-multiprecision boost-process boost-smart-ptr boost-system boost-thread boost-throw-exception --triplet x64-windowsOpenSSL comes separately, not from vcpkg: the pinned baseline's openssl port downloads
build tools from msys2 mirrors that no longer host those files. Install
Win64 OpenSSL v3.x (the full
installer, not the Light one) or choco install openssl, then pass
-DOPENSSL_ROOT_DIR="C:\Program Files\OpenSSL-Win64" on the cmake line.
git clone https://github.com/ohcee/Veil-Miner.git
cd Veil-Miner\veil-progpow-miner
git clone https://github.com/ethereum/cable cmake\cable
git clone https://github.com/hunter-packages/disabled-mode cmake\Hunter\disabled-mode
mkdir build
cd buildNvidia GPU (CUDA)
cmake -G "Visual Studio 17 2022" -A x64 ^
-DCMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts\buildsystems\vcpkg.cmake ^
-DETHASHCL=ON -DETHASHCUDA=ON -DETHASHCPU=OFF ..AMD GPU (OpenCL only)
cmake -G "Visual Studio 17 2022" -A x64 ^
-DCMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts\buildsystems\vcpkg.cmake ^
-DETHASHCL=ON -DETHASHCUDA=OFF -DETHASHCPU=OFF ..CPU only
cmake -G "Visual Studio 17 2022" -A x64 ^
-DCMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts\buildsystems\vcpkg.cmake ^
-DETHASHCL=OFF -DETHASHCUDA=OFF -DETHASHCPU=ON ..For Visual Studio 2019 replace
"Visual Studio 17 2022"with"Visual Studio 16 2019"
cmake --build . --config ReleaseBinary: veilminer\Release\veilminer.exe
./build/veilminer/veilminer --cpu -P stratum+tcp://WALLET_ADDRESS@POOL_HOST:PORT./build/veilminer/veilminer --opencl -P stratum+tcp://WALLET_ADDRESS@POOL_HOST:PORT./build/veilminer/veilminer --cuda -P stratum+tcp://WALLET_ADDRESS@POOL_HOST:PORTveilminer\Release\veilminer.exe --cuda -P stratum+tcp://WALLET_ADDRESS@POOL_HOST:PORT./build/veilminer/veilminer --cpu -P stratum+tcp://YOUR_VEIL_ADDRESS@veil.yadaminers.pl:3334Most miners take the pool, wallet and password as separate flags. veilminer packs
them into one -P URL, so this:
t-rex.exe -o stratum+tcp://veil.yadaminers.pl:3334 -u YOUR_VEIL_ADDRESS -p x
becomes this:
veilminer --cuda -P stratum+tcp://YOUR_VEIL_ADDRESS@veil.yadaminers.pl:3334
If your pool wants a password, it goes after the wallet as :x inside the URL.
Yada Miners does not need one.
The release ships a ready made custom miner package, source in hiveos/. In the
flight sheet pick your coin and wallet, set the miner to Custom, and configure:
| Field | Value |
|---|---|
| Miner name | veilminer |
| Installation URL | https://github.com/ohcee/Veil-Miner/releases/download/v1.1.3/veilminer-1.1.3.tar.gz |
| Hash algorithm | progpow-veil |
| Wallet and worker template | %WAL% |
| Pool URL | veil.yadaminers.pl:3334 |
| Pass | x |
The dashboard gets per card hashrate, temps, fans and share counts through the miner's api. Anything in Extra config arguments is appended to the command line.
./build/veilminer/veilminer --helpEvery release ships a SHA256SUMS.txt written by the same CI run that built the
archives, so you can confirm the file you downloaded is the one CI produced before
you run it or add an antivirus exclusion for it. Put it next to the archive and run:
# Linux
sha256sum -c SHA256SUMS.txt --ignore-missing
# macOS
shasum -a 256 -c SHA256SUMS.txt --ignore-missing# Windows, prints True when the zip matches its line in SHA256SUMS.txt
$zip = "veilminer-v1.1.3-windows-x64-cuda12.9.zip"
(Get-FileHash $zip).Hash.ToLower() -eq ((Get-Content SHA256SUMS.txt | Select-String $zip) -split '\s+')[0]The checksum file only proves your download matches what was published. It cannot prove
who published it, since anyone able to attach a release can also replace the sums file.
The signature is what covers that: SHA256SUMS.txt.asc is a detached signature made on
the maintainer's own machine, never in CI.
Import the key once:
gpg --keyserver keys.openpgp.org --recv-keys 5C2CFA030397FCD763F1A97BF8788EFB40E750E5If GnuPG cannot reach the keyserver (some macOS builds of GnuPG 2.5 fail with "Try again later"), fetch the key over plain HTTPS instead:
curl -s https://keys.openpgp.org/vks/v1/by-fingerprint/5C2CFA030397FCD763F1A97BF8788EFB40E750E5 | gpg --importThen check the sums file against it:
gpg --verify SHA256SUMS.txt.asc SHA256SUMS.txtYou want Good signature from "ohcee <donkeybabe123@hotmail.com>" with this primary key
fingerprint:
5C2C FA03 0397 FCD7 63F1 A97B F878 8EFB 40E7 50E5
A warning that the key is not certified with a trusted signature is normal and only means you have not personally certified it. The fingerprint match is the part that matters, so compare it against a source you already trust rather than against the download page alone.
Order of operations: verify the signature on SHA256SUMS.txt, then verify your download
against SHA256SUMS.txt, then run it.
-
DAG size: At epoch 218 (block ~3.9M) the DAG is ~4.55 GB. GPU miners need a card with at least 6 GB VRAM. CPU miners need at least 8 GB RAM (16 GB+ recommended on macOS due to unified memory sharing with the OS).
-
DAG epoch parameters: This miner uses Veil's correct epoch length — 5525 blocks before block 2,100,000, then 8175 blocks after. The DAG resets to epoch 0 at block 2,100,000 and grows more slowly (~750 MB/year) from there.
-
Apple Silicon thread affinity: macOS ARM does not support hard CPU affinity. The miner uses scheduling hints instead — this is normal and no action is needed.
-
RTX 50-series (Blackwell): needs an R570 or newer driver at runtime, plus a binary built with CUDA 12.8+. On a working setup the miner logs
Pre-compiled period N CUDA ProgPow kernel for arch 12.0on startup. If you see a compile error from NVRTC instead, the build used a toolkit older than 12.8. -
CUDA runtime dependency: the ProgPoW search kernel is compiled at runtime by NVRTC, so
libnvrtc.so.12(Linux) or the matchingnvrtc64_*.dll(Windows) must be present alongside a normal driver install. Windows release zips must ship that DLL. -
Which cards a build supports: CUDA builds bake in SASS for Maxwell through Blackwell (
sm_50tosm_120) plus PTX for the newest arch, so future cards can still JIT. Pin a single architecture with-DCOMPUTE=120to build faster. -
Hashrate reference, measured in the field on v1.1.3, August 2026:
Device Hashrate RTX 5060 ~24 Mh/s RTX 3080 ~23 Mh/s RTX 3060 Ti ~19 Mh/s RTX 3060 ~14 Mh/s