Definition
The Job Declaration Protocol (JDP) is the Stratum V2 sub-protocol that hands block-template construction back to the miner. Under legacy pooled mining, the pool builds every block template and the miner hashes whatever it is given — including the pool's choice of which transactions make it into the block. JDP inverts that relationship: a miner can assemble its own candidate block, declare that template to the pool, and mine it while still receiving normal pooled payouts. It is the piece of Stratum V2 that addresses mining's most under-appreciated centralization problem.
How declaration works
The miner side runs a Job Declarator Client (JDC), which builds a candidate template — typically sourced from the miner's own Bitcoin node via the Template Distribution Protocol — and negotiates with a Job Declarator Server (JDS) operated by or alongside the pool. The flow is token-based: the client first requests an allocation (the AllocateMiningJobToken message opens the exchange), declares its transaction set and coinbase outputs, and receives a mining_job_token once the server accepts the declaration. That token then accompanies the custom job on the mining connection, tying the shares the hardware submits back to the declared template. The pool verifies that the coinbase pays the pool correctly and that the template is valid, then credits shares found against the self-declared job exactly like any others — the miner keeps the pool's variance smoothing while choosing its own transactions.
Why transaction selection is power
Whoever selects transactions decides, block by block, what gets confirmed and what waits. When a handful of large pools construct the templates for most of the world's hashrate, they become natural chokepoints: a regulator, a government, or the pools themselves could filter transactions network-wide by leaning on a few entities. JDP dissolves that chokepoint by spreading template construction across every participating miner. A censoring pool must now either reject declared templates (visibly, and losing hashrate to competitors) or accept that its miners include what they choose. Combined with a local node feeding real mempool data, the miner — not the pool — decides what its watts vote for.
Practical status and what it means for you
JDP is an optional layer of the Stratum V2 stack: a pool can support SV2's encrypted, efficient transport without offering job declaration, so its availability depends on the pool. On the firmware side, native Stratum V2 support exists today in BraiinsOS+ on industrial Antminers and, since June 2026, in AxeOS/ESP-Miner v2.14.0+ on Bitaxe-class hardware; the SRI (Stratum Reference Implementation) stack also provides proxy configurations that let other setups participate. Running JDP end to end means running your own node — which is precisely the point. For a home miner, it turns a machine that merely earns sats into one that also strengthens censorship resistance; declaring your own template with your own node's transactions is solo mining's sovereignty with a pool's steady payouts.
In Simple Terms
The Job Declaration Protocol (JDP) is the Stratum V2 sub-protocol that hands block-template construction back to the miner. Under legacy pooled mining, the pool builds…
