This isn't a complete answer but I might be able to point you in the right direction: It seems like you have: CBlockTemplate* CreateNewBlock(const CScript& scriptPubKeyIn) So you're taking a [CScript][1] as a parameter. Some additional relevant links. I think you would either use that to create multiple outputs, or you would use txNew[vout[1]]; - https://en.bitcoin.it/wiki/Transactions#general_format_.28inside_a_block.29_of_each_output_of_a_transaction_-_Txout - https://en.bitcoin.it/wiki/Script - https://dev.visucore.com/bitcoin/doxygen/script_8cpp.html - https://dev.visucore.com/bitcoin/doxygen/class_c_transaction.html (and follow the links to CTxIn/CTxOut from there Also see how they do it here: - https://dev.visucore.com/bitcoin/doxygen/miner__tests_8cpp_source.html [1]: https://dev.visucore.com/bitcoin/doxygen/script_8h.html