In most bitcoin mining pools, miners of a pool are sent their portion of a block reward that the pool collectively mines, every 30 minutes or 1 hour.

How exactly does a mining pool tell the Bitcoin network to send these coins to each of the miner's addresses?


They do so just like anyone else sending Bitcoin to someone; they create a Bitcoin transaction and broadcasts it to the network. It works in exactly the same way as you sending Bitcoin to someone else. The mining pool operator goes into the pool's wallet, chooses the "send" option in that wallet, and enters the addresses and amounts to be paid for each miner. Of course this is all automated so the mining pool operator doesn't actually do that. Instead a script does it and interacts with the wallet using RPC calls.

Sometimes the mining pool may choose to pay a low transaction fee or not broadcast the transaction and instead include it in the next block the mining pool is working on.

  • Could you please go in to more detail – Barney Chambers Dec 26 '17 at 17:46
  • 1
    @BarneyChambers, more detail on what? (More detail on "more detail"! :) This might help to get you the answer you're looking for. – brec Dec 26 '17 at 17:54
  • Well the first detail I would like are the specific RPC calls that are used. It isn't clear to me when you say things like the same way as sending Bitcoin to someone else, that to me is a very ambiguous statement – Barney Chambers Dec 26 '17 at 19:29
  • It depends on the software that the mining pool is using. It is done in exactly the same way that other services process Bitcoin transactions. You can easily google the various methods people do this. If they are using Bitcoin Core, they are probably using the sendmany RPC command. – Andrew Chow Dec 26 '17 at 19:41

Simplified: A mining pool is a program that connects to a Bitcoin full node to get "work" over an RPC interface and divides that to miners over Stratum.

As a miner, you are looking for for a hash smaller than a threshold that correlates to the current difficulty. You are looking for a block that starts with, say, 10 leading zeroes. Once in a while you will find a block with 8 leading zeroes. You send that info to the pool, thereby proving "I did enough work to find one of those, so I am really contributing to finding the block". That is known as a share.

The pool keeps track of all shares for the current block search. If your pool finds the block, it gets a certain amount of BTC (currently 12.5). Those go to an address of the full node mentioned earlier, hence into the pool operator's hands. Based on your number of shares and the number of all other shares, the pool calculates how much you deserve. It then communicates over the RPC API, telling the node to send out the previously mined Bitcoins, which handles those requests the same way as if you were sitting on your computer, doing those transactions manually over the wallet GUI

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.