How to Enable Stratum V2 Without Flashing Your Miner (SRI Translation Proxy Setup)
Quick answer
Can you get Stratum V2 on a stock, VNish or LuxOS miner without reflashing? Yes. You run the open-source SRI Translation Proxy on a small always-on box on your LAN, point your Stratum V1 miners at it, and it speaks encrypted, authenticated Stratum V2 upstream to your pool. Only BraiinsOS+, AxeOS and DCENT_OS speak SV2 natively in firmware — every stock Antminer/Whatsminer, VNish and LuxOS miner is SV1-only, so the proxy is the way to get SV2's benefits with zero flashing risk.
The proxy gets you SV2's encrypted, authenticated, bandwidth-efficient transport and pool authentication — not miner-side transaction selection (Job Declaration), which needs a fuller node-side stack. It is the low-risk on-ramp: no firmware change, and fully reversible.
What the proxy does — and what it doesn’t
Two firmware families speak Stratum V2 natively: BraiinsOS+ on industrial Antminers, and AxeOS / ESP-Miner (v2.14.0+, since June 2026) on the Bitaxe. D-Central’s DCENT_OS contains a native V2 implementation in source, but it is default-off and readiness-gated while live submit/accept soak remains pending. Everything else — stock Antminer and Whatsminer, VNish, LuxOS — is Stratum V1 only. For that large installed base, reflashing is the only way to get SV2 in the firmware — unless you put a translator in front of the miner instead.
The SRI Translation Proxy (tProxy) is part of the Stratum Reference Implementation — the open-source reference project the entire SV2 ecosystem stands on. It sits on your local network: your SV1 miners connect to it over ordinary stratum, and it re-speaks that connection to your pool as SV2.
What you get
- Encrypted, authenticated transport to the pool — the SV2 channel is verified against the pool’s authority public key, so you know you’re talking to the real pool and no one can tamper with the stream.
- Lower upstream bandwidth — SV2’s binary framing is far leaner than SV1’s verbose JSON.
- Pool failover — list a primary and a backup pool and the proxy switches automatically.
What you do not get
- Job Declaration (choosing your own block templates / transactions). That is a separate capability: it needs a Job Declarator Client plus a Stratum-V2-enabled Template Provider (Bitcoin Core). Even native SV2 firmware like BraiinsOS+ or AxeOS is transport-only on its own without that node-side stack.
So be clear-eyed: the proxy is a genuine security-and-efficiency upgrade, not full sovereignty over which transactions you mine. That’s the honest trade for zero flashing risk.
What you need
- A small always-on Linux box on the same network as your miners — a Raspberry Pi 4/5 or any mini-PC is plenty (the proxy is light).
- Your pool’s SV2 connection details: address, port, and its authority public key. Get these from your pool. (Braiins Pool ships as the backup upstream in the reference project’s own example config, so SV2 pools are real and available today.)
- Your existing miners on stock, VNish or LuxOS — no firmware change.
Step 1 — Install the Translation Proxy
The tProxy lives in the reference project’s applications repo, stratum-mining/sv2-apps (current release v0.6.0, July 2026), under miner-apps/translator. Build it from source with Rust/Cargo, or run the project’s Docker image — always follow the repo’s current build instructions rather than a copied command, because they evolve between releases. Use the example config at miner-apps/translator/config-examples/mainnet/tproxy-config-hosted-pool-example.toml as your starting point.
Step 2 — Configure it
Here are the keys that matter, taken from the real example config (placeholders where a value is pool-specific — don’t invent those, get them from your pool):
# --- Where your SV1 miners connect (the proxy's listener on your LAN) ---
downstream_address = "0.0.0.0"
downstream_port = 34255
max_supported_version = 2
min_supported_version = 2
# --- Your Stratum V2 pool (primary). Get these three values from your pool. ---
[[upstreams]]
address = "pool.example.com" # your SV2 pool host
port = 3333
authority_pubkey = "<your pool's authority public key>"
user_identity = "<your pool username or BTC address>"
# --- Optional second pool = automatic failover ---
[[upstreams]]
address = "<backup pool host>"
port = 3333
authority_pubkey = "<backup pool authority public key>"
user_identity = "<your backup username>"
# --- Difficulty / vardiff ---
[downstream_difficulty_config]
min_individual_miner_hashrate = 10_000_000_000_000.0 # your weakest miner (10 TH/s shown)
shares_per_minute = 6.0
enable_vardiff = true
downstream_port(default 34255) is the port your miners will point at.- Each
[[upstreams]]block is a pool. Theauthority_pubkeyis how the proxy cryptographically verifies it’s talking to the genuine pool — that’s the “authenticated” half of SV2. Add a second[[upstreams]]block for automatic failover. user_identityis your pool username (many pools use your BTC address).- Set
min_individual_miner_hashrateto your weakest miner’s hashrate so vardiff behaves; leaveenable_vardiff = truefor normal pool mining.
Step 3 — Point your miners at the proxy
In each miner’s pool settings (the stock, VNish or LuxOS web UI), set the pool URL to:
stratum+tcp://<your-proxy-LAN-IP>:34255
…with your usual worker name. That’s the whole change on the miner — no firmware touched. To undo it later, just point the miner back at your pool’s direct URL.
Step 4 — Verify it’s working
- Watch the tProxy logs: you should see your downstream miners connect and an upstream SV2 channel open to the pool.
- The proxy exposes an optional monitoring endpoint (
monitoring_address, default port 9092) with live channel data. - Your shares should appear at the pool under your username as usual — now carried over an encrypted, authenticated SV2 link.
Prefer SV2 in the firmware itself?
If you’d rather not run a separate box, the alternative is flashing SV2-native firmware. DCENT_OS — D-Central’s own GPL-3.0 firmware, with guarded experimental S9 XIL and S19j Pro XIL artifacts — contains a default-off V2 implementation whose live submit/accept readiness remains unproven. It’s experimental beta firmware and a bad flash can brick a miner, so keep a recovery path ready — the proxy route above avoids writing experimental firmware to the miner, though it still requires normal network and host hardening. DCENT_OS stands on the shoulders of the Stratum Reference Implementation and the firmwares (BraiinsOS+, AxeOS) that proved this work possible.
Keep going
Frequently asked questions
Can I use Stratum V2 without flashing custom firmware?
Yes. You run the SRI Translation Proxy (tProxy) on a small always-on box on your local network; your miners stay on their stock, VNish or LuxOS firmware and simply point at the proxy, which speaks encrypted Stratum V2 upstream to your pool. No firmware change, and it is fully reversible.
Does the proxy let me choose my own transactions (Job Declaration)?
No. The proxy gives you Stratum V2's encrypted and authenticated transport, pool authentication and lower upstream bandwidth — but not Job Declaration (miner-selected block templates). Job Declaration needs a Job Declarator Client plus a Stratum-V2 Template Provider (Bitcoin Core). Even native SV2 firmware such as BraiinsOS+ or AxeOS is transport-only on its own without that node-side stack.
What hardware do I need to run the proxy?
Any small always-on Linux box on the same network as your miners — a Raspberry Pi 4 or 5, or any mini-PC, is plenty. The Translation Proxy is lightweight.
Which firmwares already speak Stratum V2 natively?
BraiinsOS+ on industrial Antminers and AxeOS / ESP-Miner v2.14.0 and newer on the Bitaxe (since June 2026). DCENT_OS implements V2 behind a default-off readiness gate; live submit/accept soak remains pending. Stock Antminer and Whatsminer, VNish and LuxOS are Stratum V1 only — which is exactly why the Translation Proxy exists.
Is it reversible?
Completely. Because there is no firmware change, you undo it by pointing each miner back at your pool's direct URL. Nothing is written to the miner.
Configuration keys and version above are grounded in the live Stratum Reference Implementation (github.com/stratum-mining/sv2-apps, miner-apps/translator) as of July 2026 — not invented. Verify current build steps and any pool-specific values against your pool and the project’s docs before you rely on them. D-Central credits the Stratum Reference Implementation and the open-source firmwares that opened this space.
Running a Bitaxe? You may not need the proxy at all: AxeOS/ESP-Miner v2.14.0+ speaks Stratum V2 natively. The Bitaxe Stratum V2 setup guide walks through the protocol selector, pool endpoint, authority key and fallback.
Related products, repair, and setup paths
- how D-Central diagnoses ASIC repairs
- ASIC troubleshooting library
- ASIC manuals and repair guides
- replacement hashboards
- ASIC control boards
- ASIC power supplies
- compare specs in the ASIC miner database
- compare ASIC miner specs
- ASIC miner database
- ASIC repair services
- Antminer S19 specs and profitability
- buy a tested Antminer S19
- Antminer S19 maintenance guide
- Antminer S19 repair service
- Antminer S21 specs
- Bitmain Antminer S21
- Antminer S21 maintenance guide
- BM1370BC S21 Pro chip
- Antminer S9 specs
- Bitmain Antminer S9
- Antminer S9 maintenance guide
- S9 hashboard repair parts bundle
- Whatsminer M30S specs
- Whatsminer repair guide
- MicroBT Whatsminer M30S++
- Whatsminer M3x exhaust shroud
Last reviewed August 13, 2026.
