PrimoLab Download
v1.0.7 · GPL-3.0 · open source

A minimal, pure ARM-native cryptocurrency miner.

No x86 translation layer — Verus, Monero, scrypt and SHA256d written directly in ARM intrinsics and AArch64 assembly.

One ~508 KB binary. Linux SBCs · Termux · Android APK. Open source, GPL-3.0.

Download Get started
primo — Galaxy S10+ · 8 threads
  >>> Primo ARM Miner v1.0.7
      Native ARMv8 crypto | NEON | SHA2 | AES

[06:22:42] 8 miner thread(s) configured, using 'verus' algorithm
[06:22:42] CPU topology: 8 cores (4 big + 4 LITTLE)
[06:22:42] Dev fee: 2.0% (60s per 50 min) for verus
[06:22:42] Connecting to stratum+tcp://pool.verus.io:9998
[06:22:43] Stratum authorization succeeded
[06:22:43] Connected and authorized
[06:22:43] Thread 0 pinned to CPU 6 (big @ 2730 MHz)
[06:22:43] Thread 1 pinned to CPU 7 (big @ 2730 MHz)
[06:22:43] Thread 4 pinned to CPU 0 (LITTLE @ 1950 MHz)
[06:22:44] Accepted share 1/1 (diff 9.856)
[06:22:46] Accepted share 2/2 (diff 2.367)
[06:22:47] Accepted share 3/3 (diff 1.071)
[06:22:47] Accepted share 4/4 (diff 1.909)
[06:22:47] Accepted share 5/5 (diff 1.986)
[06:30:10] #0: 1.02 MH/s  #1: 1.03 MH/s  #2: 1.05 MH/s  #3: 1.08 MH/s
           #4: 453 kH/s  #5: 470 kH/s  #6: 419 kH/s  #7: 457 kH/s
           Total: 5.98 MH/s | Temp: 83c
Primo ARM Miner Android app dashboard mining Verus at 5.91 MH/s with 8 thread chips, 37 accepted shares

Built for ARM. Not ported to it.

What one binary does on every ARMv8 device.

Pure ARM-native

No SSE-to-NEON translation layer; hot paths are ARM intrinsics and hand-tuned AArch64 assembly using PMULL, AES and SHA2 hardware crypto.

Four algorithms

VerusHash 2.2 (Verus), RandomX (Monero), scrypt (Litecoin + Dogecoin merged), SHA256d (Bitcoin).

Per-core runtime optimization

Detects big.LITTLE topology at startup and picks the fastest kernel per core; one binary is optimal on every device.

Hotplug-resilient core pinning

Pins reconcile continuously; the miner re-adopts cores Android parks and wakes instead of losing them.

Self-verifying

Every optimized kernel (including the assembly) is cross-checked against a reference implementation at startup; the miner refuses to run on mismatch.

Full stratum

Multi-pool failover, TLS (stratum+ssl://), Verus/standard/Monero dialects, ccminer-compatible CLI, config format, and monitoring API.

Tiny footprint

Single ~508 KB binary, two runtime libraries (libcurl, libjansson).

Android APK

The same native miner in a one-tap app: per-algo profiles, pool failover, live dashboard, in-app log viewer.

Measured, not projected.

Measured on RK3588 (4×Cortex-A55 + 4×Cortex-A76). Real hashrate depends on cooling, governor, and SoC.

Algorithm A76 single core 8 threads
VERUSVerusHash 2.2 ~1.44 MH/s ~7.5 MH/s
RANDOMXMonero ~160 H/s ~690 H/s
SCRYPTN=1024, LTC+DOGE ~4.8 kH/s ~25.9 kH/s
SHA256DBitcoin ~16.3 MH/s ~90 MH/s

Galaxy S10+ (Exynos 9820): ~5.5–5.9 MH/s Verus, ~700 H/s RandomX across 8 threads.
RandomX fast mode needs ~2.5 GiB free RAM (automatic light-mode fallback on low-RAM devices) and runs hotter than the other algorithms.

The app, as it runs.

Real captures from a Galaxy S10+ — no mockups.

Dashboard mining Verus: 5.91 MH/s, 8 thread chips, 37 accepted, 0 rejected, live temperature
Mining Verus — 5.91 MH/s, thread chips, shares, temp.
Dashboard mining Monero RandomX: 760 H/s on moneroocean, 8 thread chips in Monero orange, share accepted
Mining Monero (RandomX) — 760 H/s, Monero-orange accent.
Dashboard mining scrypt on litecoinpool: 20.17 kH/s, 8 thread chips, live temperature
Mining scrypt (LTC+DOGE) — 20.17 kH/s on litecoinpool.
Dashboard mining SHA256d: 76.32 MH/s, 8 thread chips in Bitcoin orange, 2 accepted shares
Mining SHA256d — 76.32 MH/s via ARMv8 hardware crypto.
Termux session mining Verus: startup banner, CPU topology, dev fee line, thread pinning, accepted shares in green
Same binary in Termux — topology detection, pinning, accepted shares.
App configuration: algorithm dropdown set to verus, thread count, primary pool URL and wallet fields
Config — pick an algorithm, paste pool + wallet, done.
App configuration: pool list with failover explainer, network monitoring toggle and save button
Up to 3 failover pools; optional LAN monitoring API.
In-app log viewer showing accepted shares and per-thread hashrate lines
In-app log viewer — the full miner console, on the phone.

Download

Pick your platform. Verify the SHA-256 before running.

one-line installer — Linux & Termux
$ curl -fsSL https://primolab.dev/install.sh | sh

Linux arm64 (SBC)

Static tarball for Raspberry Pi-class boards and up.

Requires: 64-bit ARMv8 CPU, 64-bit OS, libcurl + libjansson.

tar.gz GitHub GitLab

SHA-256: SHA256SUMS

Android Termux

Same binary, built against Termux libs. Installed by the one-liner above.

Requires: Termux (F-Droid build recommended), arm64 device.

tar.gz GitHub GitLab

SHA-256: SHA256SUMS

Android APK (sideload)

One-tap app: profiles per algorithm, failover pools, live dashboard, log viewer.

Requires: Android 7+, arm64.

Not on the Play Store (Google bans mining apps). Sideload the APK: enable "install unknown apps", tap the file.

APK GitHub F-Droid

SHA-256: SHA256SUMS

Build from source

make with clang; make test runs the self-checks. Full provenance in-repo.

Requires: ARMv8 crypto extensions, clang, libcurl + libjansson dev headers.

GitHub GitLab

GPL-3.0-or-later

Nothing hidden.

A miner you can't audit is a miner you shouldn't run.

Dev fee, disclosed

One 60-second slice of mining per cycle on the developer's pool:

  • Verus — 2% (60 s per 50 min)
  • RandomX / scrypt / SHA256d — 1% (60 s per 100 min)

If the dev pool is unreachable your mining is never interrupted — the slice is skipped. It's GPL: forks may remove it. The fee logs itself in the console.

Open source

GPL-3.0-or-later. Full provenance of every optimized kernel is documented in-repo (PROVENANCE.md, NOTICE). Build it yourself and compare.

Verified at startup

Self-tests gate mining at startup — every optimized kernel is checked against a reference implementation. The monitoring API is read-only.

Donations

Donations fund ARMv9 test hardware (SVE2 boards and phones) for the next generation of optimizations.

VRSC RDArJkrPSKPhX8zwUJHLu2SJWrL4GwCgKz
XMR 42oukEEbeW8ippUDnUrexGS53QZ5gi28ELofq8KPgEoya1yghHACvNwbr9fJHGQWJUPz16cyJeFXcEexLuy7pBcdBzrzxvZ
LTC ltc1qguj48xprktyeqm4dqrje5cr7f8g76e0mvrdjh6
BTC 15nR6PuUkjTyjv9dnkYd2GbjbgiMxs4dLi
Before you mine: mining runs your CPU at 100% for long periods — heat, power draw, battery wear. Monitor temperatures, mine plugged in, never under a pillow. Provided as-is, no warranty; you're responsible for local regulations and double-checking wallet addresses. Full disclaimer →