Mine Equium

Mine $EQM with your GPU.

Single Rust binary. No CUDA, no Electron, no proprietary driver — cross-platform via wgpu. Any modern GPU works; CPU and browser fallbacks ship too.

Renting a GPU is the easiest path — start there if you don't already have one.

Rent a GPU and mine in 3 steps.

No GPU at home? Rent one for ~$0.20/hr. vast.ai and Runpod both rent NVIDIA cards by the hour with one-click Ubuntu + CUDA images. We don't use CUDA directly — the miner talks to the GPU via Vulkan, which NVIDIA's driver supports natively — so any of the standard "PyTorch / CUDA 12" templates work out of the box.
1 · Pick an instance

We haven't benchmarked specific cards yet — these are starting recommendations based on Equihash 96,5 being memory-bandwidth bound. Mid-range NVIDIAs are usually better $/hashrate than flagships.

Rent a GPU with our templateUbuntu 22.04 · CUDA 12.4 · pre-filtered
  • Start mid-range. RTX 30/40-series 6-12 GB cards (3060, 4060, 3070, 4070) often beat flagships on $/hashrate — flagship ALUs don't help a memory-bound workload. Report your numbers and we'll publish a real comparison.
  • One GPU is plenty. The miner uses a single device.
  • On-demand, not interruptible. Spot instances get killed mid-block.
  • Verified host + Ubuntu 22.04 PyTorch/CUDA template. Saves driver-debugging time.
  • Check the Driver Version column. 535 / 545 / 550 are confirmed working; avoid 555 / 565 / 570 / 575 — that open-driver branch crashes our compute pipelines with a SPIR-V compiler bug. Most current vast.ai hosts run 555+, so our template can't filter them out structurally — eyeball the column on each candidate. If you land on a bad one anyway, the miner's auto-probe tells you within ~5 seconds and you can stop the rental before it costs anything.
2 · SSH in and run the installer
./equium-install.sh

The template's on-start script stages it at ~/equium-install.sh with an SSH MOTD reminder. The installer takes you from a bare box to an actively mining miner: tools, build, keypair, RPC prompt, balance wait, mine. Re-runnable — Ctrl-C + rerun resumes instantly.

3 · Fund + mine

Send ~0.01 SOL to the printed address for tx fees, paste a Helius RPC URL when prompted, done.

Survives SSH disconnect by default. The miner runs inside a tmux session named eqm. Press Ctrl-B then D to detach — miner keeps running. Close your laptop, lose Wi-Fi, whatever; reattach later with ./equium-install.sh (rerun) or tmux attach -t eqm. Output is also tee'd to ~/.config/equium/mine.log.
Built to handle the weird cases. Backend auto-probe runs in subprocesses so a driver SIGSEGV kills the probe, not your shell. NVIDIA 555-575 SPIR-V crash branch is detected and the installer offers a one-keypress fix (apt-install driver 535 + reboot). Override the backend choice with EQUIUM_BACKEND=cuda|vulkan|gl or force the hybrid path with EQUIUM_HYBRID=1. Stuck? Run ./equium-install.sh --doctor for a redacted report you can paste in a GitHub issue.
Save the wallet before destroying the rental. vast.ai instances are ephemeral. The installer prints a seed phrase + keypair path on every run — copy them off the box, or your mined EQM goes with the rental. The browser miner gives you the same wallet on any device, no rental required.

macOS

Native macOS — Apple Silicon or Intel, both work. Open Terminal:

1 · Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"
2 · Install the Solana CLI (for keypair generation)
sh -c "$(curl -sSfL https://release.anza.xyz/stable/install)"
export PATH="$HOME/.local/share/solana/install/active_release/bin:$PATH"
3 · Generate a mining keypair
solana-keygen new -o ~/.config/solana/id.json --no-bip39-passphrase
solana-keygen pubkey ~/.config/solana/id.json   # send a bit of SOL here
4 · Build + run the GPU miner
git clone https://github.com/HannaPrints/equium.git
cd equium
cargo build --release -p equium-gpu-miner

# Quick sanity check — auto-probes Metal and confirms the shader
# matches the CPU reference byte-for-byte.
./target/release/equium-gpu-miner verify

# --full-gpu runs all five Wagner rounds on the GPU. Drops the flag
# if you want the hybrid path (CPU does Wagner, GPU does BLAKE2b).
./target/release/equium-gpu-miner mine --full-gpu \
  --rpc-url https://mainnet.helius-rpc.com/?api-key=YOUR_KEY \
  --keypair ~/.config/solana/id.json

Apple Silicon talks to the GPU over Metal; everything stays on-device, no driver install. Once it's mining, see Tune your GPU miner for benchmarks.

Linux

Easiest: one command does everything. Installs Rust, the Solana CLI, Vulkan, and nvcc (on NVIDIA), builds the miner with the CUDA backend, generates a keypair, asks for an RPC URL, and starts mining with --full-gpu. Works on Ubuntu, Debian, Arch, Fedora — anything with apt, pacman, or dnf.
curl -fsSL https://raw.githubusercontent.com/HannaPrints/equium/master/scripts/install.sh \
  -o ~/equium-install.sh && chmod +x ~/equium-install.sh && ~/equium-install.sh
Detach-safe — launches the miner inside a tmux session, so SSH drops and laptop closes don't kill it. Ctrl-B then D to detach. Prefer to build by hand? Manual steps below.
1 · Install build tools
# Debian / Ubuntu
sudo apt update && sudo apt install -y build-essential pkg-config libssl-dev curl git

# Arch
sudo pacman -S --needed base-devel openssl curl git

# Fedora
sudo dnf install -y @development-tools openssl-devel curl git
2 · Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"
3 · Install the Solana CLI
sh -c "$(curl -sSfL https://release.anza.xyz/stable/install)"
export PATH="$HOME/.local/share/solana/install/active_release/bin:$PATH"
4 · Generate a keypair
solana-keygen new -o ~/.config/solana/id.json --no-bip39-passphrase
solana-keygen pubkey ~/.config/solana/id.json
5 · Build + run the GPU miner
# Vulkan loader (the wgpu fallback path; AMD/Intel use it,
# NVIDIA on healthy drivers does too).
# Debian / Ubuntu
sudo apt install -y libvulkan1 vulkan-tools
# Arch
sudo pacman -S vulkan-icd-loader vulkan-tools
# Fedora
sudo dnf install -y vulkan-loader vulkan-tools

# NVIDIA only — install nvcc so we can build the CUDA backend.
# Skip this on AMD/Intel.
sudo apt install -y nvidia-cuda-toolkit

git clone https://github.com/HannaPrints/equium.git
cd equium

# NVIDIA → enable the CUDA backend (fastest path, also bypasses
# the SPIR-V crash on driver 555-575).
cargo build --release -p equium-gpu-miner --features cuda
# AMD / Intel / no nvcc → drop --features cuda:
# cargo build --release -p equium-gpu-miner

# Sanity check. The miner self-probes CUDA → Vulkan → GL in
# subprocesses so a buggy driver kills the probe, not your terminal.
./target/release/equium-gpu-miner verify

# --full-gpu runs all five Wagner rounds on the GPU. On a 4090 with
# CUDA this is ~20× the hybrid path. Drop the flag for hybrid mode.
./target/release/equium-gpu-miner mine --full-gpu \
  --rpc-url https://mainnet.helius-rpc.com/?api-key=YOUR_KEY \
  --keypair ~/.config/solana/id.json

Works on NVIDIA (CUDA or Vulkan), AMD, and Intel GPUs that support Vulkan 1.1+ (or GL 4.5 as fallback). If vulkaninfo lists your adapter or nvidia-smi shows a healthy GPU, the miner will pick it up. Once mining works, see Tune your GPU miner.

Windows

WSL2 is the path of least resistance. Native Windows + Rust + Solana CLI is theoretically possible but accumulates papercuts fast (path handling, OpenSSL, line endings). Run Linux inside Windows via WSL2 and skip them.
Easiest: one command inside WSL. After installing WSL2 + Ubuntu (step 1), drop into Ubuntu and run:
curl -fsSL https://raw.githubusercontent.com/HannaPrints/equium/master/scripts/install.sh \
  -o ~/equium-install.sh && chmod +x ~/equium-install.sh && ~/equium-install.sh
Installs everything (Rust, Solana CLI, Vulkan, nvcc for NVIDIA), builds the miner, and starts mining with --full-gpu. Skip steps 2-5 below.
1 · Install WSL2 + Ubuntu (one-time)

Open PowerShell as Administrator and run:

wsl --install -d Ubuntu

Reboot when prompted, then open the new "Ubuntu" app from the Start menu and set a UNIX username + password. You're now inside Linux — everything below runs in the Ubuntu terminal, not PowerShell.

2 · Install build tools (inside WSL)
sudo apt update && sudo apt install -y build-essential pkg-config libssl-dev curl git
3 · Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"
4 · Install the Solana CLI
sh -c "$(curl -sSfL https://release.anza.xyz/stable/install)"
export PATH="$HOME/.local/share/solana/install/active_release/bin:$PATH"
5 · Generate a keypair + build the GPU miner
solana-keygen new -o ~/.config/solana/id.json --no-bip39-passphrase
solana-keygen pubkey ~/.config/solana/id.json    # send SOL here

# WSL2 exposes your Windows GPU via Vulkan (NVIDIA + AMD have full
# support; Intel works on recent drivers). Install Vulkan + nvcc
# (the latter only if you have an NVIDIA card):
sudo apt install -y libvulkan1 vulkan-tools
sudo apt install -y nvidia-cuda-toolkit   # NVIDIA only

git clone https://github.com/HannaPrints/equium.git
cd equium

# NVIDIA → enable the CUDA backend. AMD/Intel → drop --features cuda.
cargo build --release -p equium-gpu-miner --features cuda

# Sanity check. Auto-probes CUDA → Vulkan → GL in subprocesses so
# a buggy driver kills the probe, not your shell.
./target/release/equium-gpu-miner verify

# --full-gpu = all five Wagner rounds on the GPU. The fast path.
./target/release/equium-gpu-miner mine --full-gpu \
  --rpc-url https://mainnet.helius-rpc.com/?api-key=YOUR_KEY \
  --keypair ~/.config/solana/id.json
Native Windows build? Run the same cargo build from PowerShell after installing rustup-init.exe, Build Tools for Visual Studio (C++ workload), and the Solana Windows installer. wgpu picks up DX12 automatically. File a GitHub issue if something specific breaks and we'll document a workaround.

Tune & verify

Validate the full-GPU pipeline on your card
./target/release/equium-gpu-miner verify-rounds --nonces 4

--full-gpu runs all five Wagner rounds on the GPU. verify-rounds reruns the pipeline alongside the CPU reference and asserts they find the same solutions on your specific driver. Reference point: ~320 H/s on a 4090 + CUDA, vs ~15 H/s on the hybrid path.

Knobs
  • EQUIUM_BACKEND=cuda|vulkan|gl|metal|dx12 — force a specific backend instead of auto-probing.
  • EQUIUM_HYBRID=1 — force the CPU-Wagner + GPU-BLAKE2b path (fallback if --full-gpu misbehaves).
  • --threads N — workers used for header bookkeeping + hybrid Wagner. Defaults to num_cpus.
  • bench / bench-wagner subcommands print raw BLAKE2b / Wagner throughput in case you want a number to compare cards.
Full source + the WGSL/CUDA kernel implementations are at clients/gpu-miner.

No GPU? CPU still earns.

Equihash 96,5 is memory-bound, so commodity CPUs stay viable — auto-retargeting tracks total network hashrate, and your share scales with yours.

Build + run the CPU miner
cd equium
cargo build --release -p equium-cli-miner
./target/release/equium-miner \
  --rpc-url https://mainnet.helius-rpc.com/?api-key=YOUR_KEY \
  --keypair ~/.config/solana/id.json \
  --threads $(nproc 2>/dev/null || sysctl -n hw.physicalcpu)

Stuck?

The full source is at github.com/HannaPrints/equium. Open an issue if you hit something specific or post in the X replies on @EquiumEQM.