Ð
DOGEMINER

MUCHWOW.
REAL DOGECOIN MINING.

A full-stack, open-source Dogecoin pool miner with a live dashboard. Real Scrypt proof-of-work on your CPU or GPU, pools that need no registration, and blockchain telemetry with no API keys.

MIT licensed — free forever one-click start Windows · macOS · Linux CPU + OpenCL GPU no signup, no keys
100% open source · you only ever enter a PUBLIC wallet address · no private keys, ever

01  One click. Really.

Clone or download the repo, then start it the way your OS likes. The app opens at localhost:8000 — and announces itself as doge.local over mDNS, so you (and any device on your network) can browse to it by name. Enter your Dogecoin address, press START MINING, done.

WINDOWS

Double-click start.bat

That's the click. It creates a virtualenv, installs dependencies (GPU extras included when possible) and launches the server.

MACOS / LINUX

One command

./start.sh

Same deal: venv, dependencies, server. Python 3.10+ is all you need.

DOCKER

Container fans

docker compose up --build

Single container, health-checked, env-configurable pool.

02  Screenshots — from a real session

These are unedited captures of the app mining on a live pool (zpool) with an RTX 3080 Ti — real accepted shares, real blockchain data. Click any image for full size.

DOGE MINER dashboard mining live: 243 KH/s on GPU, 7 shares accepted, live charts
The dashboard, mid-session. 243 KH/s of real Scrypt on an OpenCL GPU, 7 shares accepted by the pool (0 rejected), rolling hashrate chart, live CPU/GPU utilization, on-chain wallet balance.
Setup screen: enter a Dogecoin address, pick a pool, press START MINING
Setup takes one field. Your public DOGE address (checksum-verified) — pick a pool, press START. The default pool needs no account.
Nerd mode and live feed: share target, last scrypt hash, per-worker sweeps
Nerd mode + live feed. Share target, last PoW hash, nonces searched — plus a feed of the miner's actual work, down to per-worker nonce sweeps in verbose mode.
Built-in Dogecoin blockchain explorer: height, difficulty, network hashrate, recent blocks, address lookup
Built-in blockchain explorer. Live height, difficulty, network hashrate, price, mempool, recent blocks and address lookups — no API keys, cached server-side so you never hit rate limits.

03  Never mined before? Start here

Plain-English answers, no jargon, no hype.

🤔What even is mining?

Your computer repeatedly hashes small "job" puzzles from the Dogecoin network. Finding a good enough hash is called a share — proof you did real work. Pools combine everyone's shares and split the block rewards proportionally.

🎒What do I need?

Exactly one thing: a Dogecoin wallet address (free from any reputable wallet app). You paste the public address — the one you can safely share with anyone. This app never asks for private keys, passwords, or an email.

🏊Why a pool? Which one?

Solo-finding a Dogecoin block with a home computer is a lottery you won't win. Pools make earnings steady. The default pool here (zpool) needs zero registration — your wallet address is your login and payouts go straight to it.

💰Will I get rich?

No — and this page won't pretend otherwise. CPUs and GPUs earn tiny fractions of a DOGE compared to ASIC farms. This is for learning how mining really works, with real shares accepted by real pools. Treat any payout as a souvenir.

🔒Is it safe?

The code is fully open source (read every line on GitHub). It runs locally on your machine, sends only standard mining messages to the pool you choose, and touches nothing but a public address. MIT licensed — free, forever, no strings.

CPU or GPU?

Try CPU first (works everywhere). If you have a gaming GPU, flip the toggle: the OpenCL engine is typically 50–100× faster. On a laptop RTX 3080 Ti: ~4 KH/s CPU vs ~270 KH/s GPU.

04  How it actually works

For the people who scroll straight to this section. Everything below is implemented in readable Python (~1 file per concern) and covered by 60+ unit tests.

Stratum TCPsubscribe · authorize mining.notifyjob: coinb1/2, merkle branch coinbase + extranoncesha256d merkle root 80-byte headerversion · prevhash · merkle · ntime · nbits · nonce scrypt(N=1024, r=1, p=1)CPU threads or OpenCL kernel LE compare vs targetdiff-1 = 0xffff·2²²⁴ mining.submitpool accepts → you get credit

🧮Proven against the real chain

Header serialization, the stratum per-word prevhash swap, little-endian PoW comparison and target math are pinned by unit tests against the Dogecoin genesis block and block 1 — the rebuilt genesis header byte-for-byte matches the chain, and its scrypt hash passes the genesis target.

🎮A real GPU kernel, honestly gated

The OpenCL kernel implements full scrypt — PBKDF2-HMAC-SHA256 → ROMix (1024× Salsa20/8 over a 128 KB scratchpad) → PBKDF2. It refuses to run unless it matches Python's hashlib.scrypt on random headers, and every share candidate is re-verified on the CPU before submission. No GPU? Clean, clearly-labeled CPU fallback.

🧵CPU threads that actually scale

hashlib.scrypt releases the GIL, so worker threads scale across cores (~3.8× on 4 threads). Header prefixes are cached per job, so each hash only packs a nonce and runs scrypt.

📡Robust Stratum client

Auto-reconnect watchdog, set_extranonce and client.get_version handling, and a grace-period alarm for pools that silently ignore a bad username (looking at you, litecoinpool). Share counters come exclusively from real pool responses.

⛓️Key-free chain telemetry

Height, difficulty, network hashrate, price, blocks, address & tx lookups from public providers (Blockbook → Blockchair → BlockCypher, CoinGecko for price) with server-side caching, automatic failover and labeled stale-serving. You never touch an API key or a rate limit.

📊Telemetry with no fiction

Rolling hashrate, shares submitted/accepted/rejected, pool difficulty + exact share target, last PoW hash, best-share difficulty, statistical luck, CPU/MEM via psutil, GPU via nvidia-smi or OpenCL duty cycle, on-chain balance. Nothing on screen is simulated.

Stack: Python 3.10+ · FastAPI · stdlib hashlib.scrypt · PyOpenCL (optional) · a single-file frontend with a locally compiled Tailwind v4 stylesheet (no CDNs). Full details in the README.

05  Pools that work out of the box

Every preset was verified with a live stratum handshake. Or point it at any pool with the custom option.

PoolRegistrationLoginPayout
zpool.ca (default)none — just mineyour DOGE wallet addressDOGE direct to wallet
AikaPoolfree accountusername.workerDOGE
litecoinpool.orgfree accountusername.workerLTC (merged-mines DOGE)
F2Poolfree accountaccount.workerLTC + DOGE (merged)
Customanythingyour pool's rules

06  Fair questions

Is it really free?

Yes. MIT license — use it, fork it, learn from it, ship it in your own project. No trials, no telemetry-to-us, no "pro" tier. The mining pool you choose takes its own small fee (typically 0.5–1%), which goes to the pool, not to this project.

Why do my shares matter if I'll never find a block?

Pools pay for shares, not blocks. Every accepted share is proof of work at the pool's difficulty, and the pool splits its block rewards across all shares. Small hashrate = small (but real) slice.

How do I know it's actually mining and not faking it?

Three ways: (1) the live feed shows the raw stratum wire traffic and per-worker nonce sweeps in verbose mode, (2) your pool's own stats page (linked in the header) shows shares credited to your address by the pool itself, (3) the PoW math is unit-tested against the Dogecoin genesis block — run the tests yourself.

What about my electricity bill?

A mining GPU draws serious power. For learning, run it for minutes, not months — the dashboard is just as instructive either way. This is an educational tool, not an investment.