Setup guide

Point a BTX miner at the minebtx pool in under five minutes.

Stratum endpoint
Heads-up on transport security. The v1 stratum is plaintext TCP. On a hostile network (open Wi-Fi, untrusted ISP), an on-path attacker could rewrite the mining.authorize message and substitute your btx1z… payout address with theirs β€” your hashrate would credit them. We're wiring TLS via Caddy's TCP-proxy module next; until then, only mine over networks you trust.
Plaintext TCP (current)
stratum+tcp://stratum.minebtx.com:3333
TLS β€” not yet listening, coming via Caddy TCP-proxy
stratum+ssl://stratum.minebtx.com:3334
Step-by-step
1

Get a BTX receive address

You need a BTX address to receive payouts. The easiest options:

  • If you already run btxd: btx-cli getnewaddress returns a transparent btx1z… address ready to use.
  • If you don't run a node yet: see the dexbtx GitHub org for a wallet quickstart, or ask in the BTX community channels for help bootstrapping.

Note: BTX mainnet uses p2mr (witness-v2) addresses prefixed with btx1z…. They look longer than Bitcoin addresses β€” that's expected; the post-quantum signature scheme uses larger keys.

2

Install with one line

Linux + NVIDIA GPU (Pascal through Blackwell):

curl -fsSL https://minebtx.com/install.sh | bash -s -- --address 'btx1z…YOUR_ADDRESS_HERE…'

The script:

  • Detects your GPU and writes a tuned config.yaml automatically (workers/threads/batch profile matched to your card β€” see the GPU profile table below)
  • Downloads + SHA256-verifies the patched btx-gbt-solve solver binary
  • Runs a hard GPU acceleration smoke test that fails loudly if CUDA isn't actually engaging (catches silent CPU-fallback that would otherwise mine at 1/1000 the speed)
  • Installs the dexbtx-miner Python orchestrator

Source is on GitHub at github.com/dexbtx/minebtx β€” Python wrapper + installer + tuning docs, with the solver binary published as a release asset (SHA256-pinned in pyproject.toml).

3

Run the miner

After install:

dexbtx-miner --config ~/.dexbtx-miner/config.yaml

Or as a long-running tmux session:

tmux new -d -s dexbtx 'dexbtx-miner --config ~/.dexbtx-miner/config.yaml 2>&1 | tee -a ~/.dexbtx-miner/miner.log'
tmux attach -t dexbtx

The worker_name in your config lets you tell rigs apart on the dashboard. Defaults to your hostname; change to any short label.

4

Verify it's working

Within a minute or two, the miner log should show accepted shares (lines like share OK ... (a/r/b=1/0/0)). On the GPU side, nvidia-smi should show β‰₯95% utilization at near-TDP power draw. Then:

  • Check the live dashboard β€” your worker should appear in the "Active workers (24h)" count.
  • Watch the "Recent blocks" table for blocks the pool finds.
  • Telegram: /mybalance btx1z….worker_name via @btxdexbot for accrued earnings.
  • For machine-readable status, hit /stats.
Per-GPU tuning profiles (measured)

The installer auto-picks these based on detected GPU. They're the result of sweeping workers/threads/batch on actual rentals. Worker count is the dominant lever β€” the matmul backend is CPU-input-prep bound on every modern card we've tested.

GPU                          workers  threads  batch  measured util / power
─────────────────────────────────────────────────────────────────────────
GTX 1070  (Pascal sm_61)        16       8      128   83% / 113W (memory-bound)
RTX 2080 Ti (Turing sm_75)      12       8      128   100% / 296W (boost)
RTX 3060 Ti (Ampere sm_86)      12       8      128   100% / 190W
RTX 4060 Ti (Lovelace sm_89)    12       8      128   100% / 164W
RTX 5060 Ti (Blackwell sm_120)  16       8      128   99%  / 150W
RTX 5070  (Blackwell sm_120)    16       8      128   100% / 223W
RTX 5070 Ti (Blackwell sm_120)  16       8      128   (avoid batch=256 on this card)

Universal default: workers=16 threads=8 batch=128 prefetch=8 is the canonical config across all NVIDIA generations from Pascal through Blackwell. The installer auto-picks this. Cards not in the table: same starting point. If GPU util sustains below 95% on a modern card (Turing+), bump solver_prepare_workers first (proven 70% β†’ 100% jump on the RTX 5070 by going from workers=8 β†’ workers=16). On Pascal the kernel is memory-bandwidth-bound so you'll cap around 80-85% util regardless β€” that's the card, not the config.

Common pitfalls (we hit these so you don't have to)

GPU util < 95% sustained

CPU-side input prep can't keep the matmul kernel fed. Bump solver_prepare_workers to 16 (and solver_threads to 8) in your config. Batch size, prefetch depth, and pipeline_async are NOT the dominant levers β€” workers and threads are.

"share OK" never appears in logs

If you're getting only "share REJECTED" with code 22 (duplicate) or code 21 (stale), it usually means your miner just reconnected after a pool restart and is replaying old work. Wait 1–2 minutes; new jobs arrive and accepted shares start flowing. If it persists, your solver binary may be mis-targeting the share difficulty β€” open an issue on GitHub.

0% GPU util but solver appears running

Silent CPU fallback. The solver binary doesn't have a CUDA kernel image compatible with your driver. The install.sh smoke test catches this β€” if you skipped it, run nvidia-smi --query-compute-apps=pid,process_name --format=csv while the miner is running. If btx-gbt-solve isn't listed, the binary needs rebuilding. Do not downgrade your driver β€” file an issue and we'll ship a build that supports your hardware.

Want to read every dependency + config in one place

The three-audience onboarding doc (fresh starters, solo-mining converters, self-hosters) plus every env-var + every pitfall is at docs/ONBOARDING.md, with the env-var reference + per-GPU sweep methodology in docs/TUNING.md.

FAQ

How are payouts calculated?

PPLNS (Pay-Per-Last-N-Shares). Your share of each found block is proportional to your share count within the most recent N shares accepted before the block. PPLNS resists pool-hopping and rewards consistent miners.

When do I get paid?

Payouts are batched once per week. There is no minimum threshold β€” every active address with a non-zero balance gets a payout transaction. Batching keeps on-chain fee costs reasonable for small balances.

What does the β€”% fee fund?

100% of fees accrue to a transparent user treasury, not an operator pocket. The treasury address is published on the live dashboard β€” you can verify the balance on-chain at any time. Long-term, treasury funds will go to community-aligned initiatives.

Where does my coinbase go?

The pool collects coinbase rewards into pool-controlled outputs, then pays you (and other miners) at the weekly batch. This is standard pooled mining; you trade direct coinbase custody for variance reduction.

Can I solo-mine instead?

Absolutely β€” point dexbtx-miner at your local btxd instead of the pool. The miner has a solo mode. We recommend it once your sustained hashrate is meaningful relative to the network.

Is there a Telegram bot?

Yes β€” @btxdexbot on Telegram. Currently supports /stats, /mybalance, /blocks_today, /help.

Risk note. BTX is early-stage. There are no exchange listings yet β€” that's coming. Liquidity is currently P2P/OTC, and prices are derived from the deterministic on-chain hashrate model at btxprice.com.