{
    "meta": {
        "title": "D-Central — Stratum V2 Role & Deployment-Readiness Tracker",
        "description": "The honest 2026 Stratum V2 maturity map: 6 SV2 roles (with spec status and whether each enables miner-built templates) and 5 implementations (SRI, Braiins, Bitcoin Core IPC TP, DMND, AxeOS) scored on maturity and whether Job Declaration actually works through them today — anchored on the first live JD block (DMND + GoMining, mainnet 955,318, 2026-06-25).",
        "generated": "2026-07-18T06:36:08+00:00",
        "version": "1.0",
        "license": "https://creativecommons.org/licenses/by/4.0/",
        "license_name": "CC BY 4.0",
        "source": "https://d-central.tech/stratum-v2-deployment-tracker/",
        "method": "Separates SV2-the-transport (encryption/auth/header-only mining — largely live) from SV2 Job Declaration (miner-built templates — the decentralization feature, still the last mile). \"jd_live\" answers whether a real miner can USE Job Declaration through an implementation today, not merely whether the code exists. Verified July 2026 against primary sources; spec status per the SV2 spec (Mining/Template-Distribution stable, Job-Declaration draft).",
        "provenance": "SV2 spec (stratum-mining/sv2-spec, stratumprotocol.org), SRI releases, Braiins Academy, Bitcoin Core 30.0 release notes + PR #29432 (closed) + issue #31098, DMND/GoMining first-JD-block reporting (Bitcoin Magazine, TFTC), Bitaxe ESP-Miner releases.",
        "disclaimer": "Deployment status moves fast. Braiins Job Declaration is NOT a generally available customer feature (transport only). The Bitcoin Core IPC Mining interface is experimental. As of mid-2026 effectively one production pool (DMND) honors job-declared work. Verify before relying on any role for a production deployment."
    },
    "roles": [
        {
            "role": "Mining Device",
            "abbrev": "Miner",
            "what": "The endpoint doing the hashing (ASIC firmware or hashing app). Speaks the Mining Protocol to a pool/server over the encrypted SV2 transport, receiving jobs and submitting shares.",
            "decentralizes": "no",
            "decentralizes_note": "Only hashes assigned work; builds no templates. Decentralization comes from whatever feeds it jobs.",
            "spec_status": "stable"
        },
        {
            "role": "Pool (Mining Server)",
            "abbrev": "Pool",
            "what": "Server-side role running the Mining Protocol: opens channels, distributes work, accounts shares, pays rewards. In a job-declaration deployment it is reduced to share-accounting + payout.",
            "decentralizes": "enabling",
            "decentralizes_note": "Plain SV2 pooling still means the POOL chooses transactions. Only decentralizes if the pool also runs a Job Declarator Server.",
            "spec_status": "stable"
        },
        {
            "role": "Translator Proxy (SV1↔SV2)",
            "abbrev": "tProxy",
            "what": "Sits between legacy SV1 mining devices and an SV2 pool, translating SV1 JSON-RPC to the SV2 binary/encrypted protocol so non-native hardware can reach an SV2 endpoint.",
            "decentralizes": "no",
            "decentralizes_note": "A compatibility shim for the transport. Relevant to decentralization only when paired with a local JDC supplying templates upstream.",
            "spec_status": "stable"
        },
        {
            "role": "Job Declarator Client",
            "abbrev": "JDC",
            "what": "Runs on the MINER's side. Takes a candidate template from a local Template Provider, then declares that transaction set to the pool's Job Declarator Server before mining it.",
            "decentralizes": "yes",
            "decentralizes_note": "The core decentralization role — how a miner asserts its own transaction selection instead of accepting pool-dictated work.",
            "spec_status": "draft"
        },
        {
            "role": "Job Declarator Server",
            "abbrev": "JDS",
            "what": "Pool-side counterpart to the JDC. Validates the miner-declared template (transactions, fees, coinbase), approves it, and coordinates with the Mining Server so the miner's own block goes forward.",
            "decentralizes": "yes",
            "decentralizes_note": "A pool MUST run a JDS for miner-side template building to be honored. Without a live JDS, Job Declaration is theoretical.",
            "spec_status": "draft"
        },
        {
            "role": "Template Provider",
            "abbrev": "TP",
            "what": "Generates candidate block templates (the transaction selection) and streams them to the JDC. Normally a Bitcoin full node — now via Bitcoin Core's experimental IPC Mining interface + an external SV2 sidecar.",
            "decentralizes": "yes",
            "decentralizes_note": "Where the actual transaction set is built. Miner-run TP + JDC returns block construction to the miner; a pool-run TP defeats the purpose.",
            "spec_status": "stable"
        }
    ],
    "implementations": [
        {
            "name": "Stratum Reference Implementation (SRI)",
            "roles": "Pool, JDS, JDC, Translator Proxy, TP sidecar, test Mining Device — ALL roles",
            "version": "Libraries repo ~v1.11.0 (2024, split into stratum-mining/stratum + sv2-apps roles); v1.0.0 milestone Mar 2024",
            "maturity": "beta",
            "jd_live": "partial",
            "notes": "The canonical, most complete SV2 codebase and the substrate DMND is built on. Full JD works in SRI and has now produced real mainnet blocks via DMND — but SRI itself is a reference/beta stack you hand-assemble, not turnkey consumer firmware."
        },
        {
            "name": "Braiins (BraiinsOS+ / Braiins Pool)",
            "roles": "Mining Device (native SV2 client), Pool (SV2 transport endpoint)",
            "version": "BraiinsOS+ native SV2 client (2026); Braiins Pool publishes V1 + V2 endpoints",
            "maturity": "production",
            "jd_live": "no",
            "notes": "TRANSPORT ONLY. BraiinsOS+ is the only commercial ASIC firmware with a native SV2 client (S9/S19/S21/S21 XP connect without a proxy) — encrypted, authenticated, header-only mining. Braiins' own academy still frames miner-built templates as a FUTURE capability: Job Declaration is NOT a generally available Braiins customer feature."
        },
        {
            "name": "Bitcoin Core — IPC Mining interface (TP path)",
            "roles": "Template Provider (via generic Mining IPC, not SV2-native code)",
            "version": "Core 30.0 (Oct 2025) shipped the EXPERIMENTAL IPC Mining interface; 30.1 relaxed the -m requirement",
            "maturity": "experimental",
            "jd_live": "partial",
            "notes": "The SV2-in-Core PR (#29432) was CLOSED — Core rejected embedding SV2. Instead it exposes a generic Mining interface over Cap'n Proto IPC; run multiprocess `bitcoin-node -m -ipcbind=unix` and an external SV2 TP sidecar (Sjors Provoost) connects to it. So a forked Core is no longer mandatory — pristine Core 30.x + sidecar works — but the interface is experimental and needs the sidecar."
        },
        {
            "name": "DMND (DEMAND) Pool",
            "roles": "Pool (Mining Server), Job Declarator Server; supports miner-side JDC + TP",
            "version": "Launched Nov 2025 as first V2-native pool; first live JD block 2026-06-25",
            "maturity": "production",
            "jd_live": "yes",
            "notes": "🔴 THE milestone: on 2026-06-25 DMND + GoMining mined mainnet block 955,318 using SV2 Job Declaration — the MINER, not the pool, selected transactions and built the template. Built on SRI. The first and (as of mid-2026) effectively only pool honoring job-declared work in live production. Still early: one flagship miner, not yet mass turnkey."
        },
        {
            "name": "AxeOS / ESP-Miner (Bitaxe)",
            "roles": "Mining Device (native SV2 client)",
            "version": "Native SV2 early-access Mar 2026; stable in v2.14.0 (June 2026)",
            "maturity": "beta",
            "jd_live": "no",
            "notes": "Native SV2 as a Mining Device only: binary protocol, Noise/ChaCha20-Poly1305 encryption, standard mining-channel messages, tested on BM1370 Bitaxe against the SRI reference pool. Speaks the SV2 TRANSPORT natively (no translator proxy) but does NOT do Job Declaration — it hashes assigned work. The second native-SV2 firmware family after BraiinsOS+."
        }
    ],
    "verdict": {
        "first_jd_block": "Mainnet block 955,318 — DMND + GoMining, 2026-06-25 (first block built from a miner-declared template).",
        "full_jd_today": "PARTIAL. What works: a production pool (DMND) runs a live Job Declarator Server accepting miner-declared templates (proven on-chain); you can source templates from a pristine Bitcoin Core 30.x node via the experimental IPC Mining interface + Sjors' TP sidecar (a forked Core is no longer required); SRI provides working JDC/JDS/TP/translator roles. What is missing: it is a hand-assembled SRI/sidecar stack, not turnkey — you run your own node + TP sidecar + JDC and point them at a JD-capable pool, and effectively only ONE major pool (DMND) honors declared jobs in production today.",
        "native_sv2_firmware": "Two firmware families speak SV2 natively (transport, no translator proxy) in 2026: BraiinsOS+ (industrial Antminers — the only commercial firmware with a native client, transport-only) and AxeOS/ESP-Miner for Bitaxe (native SV2 since v2.14.0, Mining Device only). Everything else — stock Antminer/Whatsminer, VNish, LuxOS — is SV1 and needs the SRI Translator Proxy. Native transport is NOT Job Declaration: none of these firmwares do JD themselves; JD requires a separately-run JDC + Template Provider co-located with the miner.",
        "biggest_gap": "Turnkey, miner-side Job Declaration integrated into consumer firmware and pools. The pieces exist and interoperate (Core IPC TP, SRI JDC/JDS, one live production JD pool), but a normal miner still cannot flip a switch — broad pool-side JDS adoption and firmware-integrated JD are the missing last mile.",
        "misconceptions": [
            "\"SV2 = automatic decentralization.\" No — plain SV2 is transport (encryption, authentication that stops hashrate hijacking, header-only mining, less bandwidth), all LIVE. Job Declaration (miner-built templates) is a separate, much-less-deployed layer; SV2 without JD still mines pool-chosen transactions.",
            "\"BraiinsOS+ / Braiins Pool gives you miner-built templates.\" No — Braiins ships the native SV2 client and transport-secure pooling; its own docs still call miner template selection a future capability.",
            "\"Bitcoin Core added Stratum V2.\" Not directly — the SV2-in-Core PR (#29432) was closed. Core 30.0 shipped a generic experimental IPC Mining interface that an external SV2 Template Provider sidecar uses; SV2 itself lives outside Core."
        ]
    }
}