Skip to content

Bitcoin accepted at checkout  |  Ships from Laval, QC, Canada  |  Expert support since 2016

Getwork

Advanced Network & Protocol

Also known as: getwork protocol

Definition

Getwork is the original Bitcoin mining work-delivery protocol, in which a miner repeatedly polls a server (or full node) over HTTP to fetch a pre-built block header to hash and then returns any valid solution it finds.

Also known as: the getwork RPC, the legacy HTTP polling protocol.

Where Getwork Came From

In Bitcoin’s earliest mining days, the network and the pools spoke getwork. A miner would make an HTTP request, and the server would hand back a fully assembled 80-byte block header along with a difficulty target. The miner’s only job was to grind the nonce field through double-SHA-256 hashing, looking for a result below the target. If it found one, it submitted that header back; if not, it asked for fresh work. It was a simple, honest design that suited CPU and early GPU mining.

The fatal limitation was the size of the search space. A block header carries only a 32-bit nonce, which gives roughly four billion attempts per header. A CPU could chew through that in a comfortable amount of time, so polling for a new header now and then was fine. But as proof-of-work migrated to GPUs and then to purpose-built ASIC chips, that four-billion-nonce range got exhausted in a fraction of a second, forcing the miner to hammer the server with constant getwork requests just to stay fed.

Why It Was Replaced

Getwork did not scale to industrial hashrate. Every machine had to round-trip a full header for a tiny slice of work, drowning pools in HTTP traffic and wasting bandwidth on duplicated header data. The Stratum protocol arrived as the answer: instead of shipping a finished header, the pool sends a job template once and lets the miner roll its own extranonce and version bits locally, generating an enormous number of distinct headers from a single push. That is the mechanism that keeps a modern fleet busy without flooding the network.

On the node side, getwork’s server role was inherited by the getblocktemplate (GBT) RPC. GBT hands a miner the raw ingredients of a block — the previous block hash, the transaction set, and the coinbase value — so the miner can assemble the merkle root and header itself. This is the standard interface a solo miner or self-hosted pool uses to talk to Bitcoin Core today; lightweight pool software such as CKPool builds its work from GBT, not from the old getwork call.

Why an ASIC Miner Still Cares

You will never configure getwork on a stock S19 or on a Bitaxe — every shipping ASIC and every modern firmware speaks Stratum to the pool. But understanding getwork explains why Stratum looks the way it does. The extranonce rolling and version rolling that your miner relies on exist precisely because a bare header’s nonce field is far too small for a chip churning through trillions of hashes a second. The protocol had to push work construction down toward the miner.

That lineage matters for sovereignty too. The move from getwork to GBT is what makes solo mining against your own node practical: GBT lets the miner construct the block template locally instead of trusting a remote server’s pre-baked header. That same template-distribution idea is the foundation under newer approaches like Stratum V2’s Job Declaration and OCEAN’s DATUM, which return template-building power to the miner — one more layer decentralized. If you are setting up a node-backed rig or a small pool, you can see the full landscape on our firmware comparison page, and you can browse node-friendly hardware in the Bitaxe hub if you want to start small.

Related terms: Stratum Protocol, Block Template, Nonce, Block Header, Mining Pool, Solo Mining

In Simple Terms

An older, less efficient mining protocol replaced by Stratum. Required frequent polling for new work.

Getwork is the original Bitcoin mining work-delivery protocol, in which a miner repeatedly polls a server (or full node) over HTTP to fetch a pre-built block header to hash and then returns any valid solution it finds.

Also known as: the getwork RPC, the legacy HTTP polling protocol.

Where Getwork Came From

In Bitcoin's earliest mining days, the network and the pools spoke getwork. A miner would make an HTTP request, and the server would hand back a fully assembled 80-byte block header along with a difficulty target. The miner's only job was to grind the nonce field through double-SHA-256 hashing, looking for a result below the target. If it found one, it submitted that header back; if not, it asked for fresh work. It was a simple, honest design that suited CPU and early GPU mining.

The fatal limitation was the size of the search space. A block header carries only a 32-bit nonce, which gives roughly four billion attempts per header. A CPU could chew through that in a comfortable amount of time, so polling for a new header now and then was fine. But as proof-of-work migrated to GPUs and then to purpose-built ASIC chips, that four-billion-nonce range got exhausted in a fraction of a second, forcing the miner to hammer the server with constant getwork requests just to stay fed.

Why It Was Replaced

Getwork did not scale to industrial hashrate. Every machine had to round-trip a full header for a tiny slice of work, drowning pools in HTTP traffic and wasting bandwidth on duplicated header data. The Stratum protocol arrived as the answer: instead of shipping a finished header, the pool sends a job template once and lets the miner roll its own extranonce and version bits locally, generating an enormous number of distinct headers from a single push. That is the mechanism that keeps a modern fleet busy without flooding the network.

On the node side, getwork's server role was inherited by the getblocktemplate (GBT) RPC. GBT hands a miner the raw ingredients of a block — the previous block hash, the transaction set, and the coinbase value — so the miner can assemble the merkle root and header itself. This is the standard interface a solo miner or self-hosted pool uses to talk to Bitcoin Core today; lightweight pool software such as CKPool builds its work from GBT, not from the old getwork call.

Why an ASIC Miner Still Cares

You will never configure getwork on a stock S19 or on a Bitaxe — every shipping ASIC and every modern firmware speaks Stratum to the pool. But understanding getwork explains why Stratum looks the way it does. The extranonce rolling and version rolling that your miner relies on exist precisely because a bare header's nonce field is far too small for a chip churning through trillions of hashes a second. The protocol had to push work construction down toward the miner.

That lineage matters for sovereignty too. The move from getwork to GBT is what makes solo mining against your own node practical: GBT lets the miner construct the block template locally instead of trusting a remote server's pre-baked header. That same template-distribution idea is the foundation under newer approaches like Stratum V2's Job Declaration and OCEAN's DATUM, which return template-building power to the miner — one more layer decentralized. If you are setting up a node-backed rig or a small pool, you can see the full landscape on our firmware comparison page, and you can browse node-friendly hardware in the Bitaxe hub if you want to start small.

Related terms: Stratum Protocol, Block Template, Nonce, Block Header, Mining Pool, Solo Mining

Explore the Full Glossary

Browse all Bitcoin mining terms from A to Z. Whether you are a beginner or expert, deepen your understanding of the mining ecosystem.

Mining Glossary

ASIC Miner Database

Compare 500+ miners with real-time profitability data, home mining scores, and detailed specs.

Compare Miners