The Bitcoin client protocol is well documented in the Bitcoin Wiki, but I can't find much on the protocol used by pools and miners. Is it described anywhere?

1 Answer 1


When there were no pools, all of the first mining clients interfaced directly with Bitcoin. They connected to Bitcoin's JSON-RPC interface and used the getwork RPC method to get the required work. Getting work from a pool is the same as getting work from Bitcoin. The client connects to the pool over HTTP, often using the same HTTP authentication that Bitcoin's JSON-RPC interface uses; the client sends a JSON-RPC getwork message; and the pool sends back a JSON-RPC getwork response.

Many pools nowadays support some extensions to the getwork protocol that Bitcoin does not.

See: https://en.bitcoin.it/wiki/Getwork

  • 1
    Since this answer was written there are two new protocols; Stratum and gbt (getblocktemplate). Stratum seems the most popular, and getwork is being phased out by most clients and servers.
    – Dr.Haribo
    Sep 7, 2013 at 9:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.