[#node-BlockCreateOptions]
= xref:node.adoc[node]::BlockCreateOptions
:relfileprefix: ../
:mrdocs:

Block template creation options&period; These override node defaults, but can&apos;t exceed node limits (e&period;g&period; block&lowbar;reserved&lowbar;weight can&apos;t exceed max block weight)&period;

== Synopsis

Declared in `&lt;node&sol;mining&lowbar;types&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
struct BlockCreateOptions;
----

== Data Members

[cols="1,4"]
|===
| Name| Description
| xref:node/BlockCreateOptions/block_max_weight.adoc[`block&lowbar;max&lowbar;weight`] 
| Maximum block weight, defaults to &hyphen;maxblockweight
| xref:node/BlockCreateOptions/block_min_fee_rate.adoc[`block&lowbar;min&lowbar;fee&lowbar;rate`] 
| Minimum fee rate for transactions to be included&period; Providing a value overrides the &hyphen;blockmintxfee startup setting&period;
| xref:node/BlockCreateOptions/block_reserved_weight.adoc[`block&lowbar;reserved&lowbar;weight`] 
| The default reserved weight for the fixed&hyphen;size block header, transaction count and coinbase transaction&period; Minimum&colon; 2000 weight units (MINIMUM&lowbar;BLOCK&lowbar;RESERVED&lowbar;WEIGHT)&period;
| xref:node/BlockCreateOptions/coinbase_output_max_additional_sigops.adoc[`coinbase&lowbar;output&lowbar;max&lowbar;additional&lowbar;sigops`] 
| The maximum additional sigops which the pool will add in coinbase transaction outputs&period;
| xref:node/BlockCreateOptions/coinbase_output_script.adoc[`coinbase&lowbar;output&lowbar;script`] 
| Script to put in the coinbase transaction&period; The default is an anyone&hyphen;can&hyphen;spend dummy&period;
| xref:node/BlockCreateOptions/print_modified_fee.adoc[`print&lowbar;modified&lowbar;fee`] 
| Whether to log the fee rate of each transaction when it is added to the block template&period; Providing a value overrides the &hyphen;printpriority startup setting&period;
| xref:node/BlockCreateOptions/test_block_validity.adoc[`test&lowbar;block&lowbar;validity`] 
| Whether to call TestBlockValidity() at the end of CreateNewBlock()&period; Should only be disabled for tests &sol; benchmarks&period;
| xref:node/BlockCreateOptions/use_mempool.adoc[`use&lowbar;mempool`] 
| Set false to omit mempool transactions
|===


== Non-Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:node/CheckMiningOptions.adoc[`CheckMiningOptions`]
| Check option values for validity&period; Returns an error for invalid values&period;
| xref:node/FlattenMiningOptions.adoc[`FlattenMiningOptions`]
| Replace null optional values with their hardcoded defaults&period;
| xref:node/MergeMiningOptions.adoc[`MergeMiningOptions`]
| Merge two BlockCreateOptions structs, replacing null values in `x` with non&hyphen;null values from `y&period;`
| xref:node/ReadMiningArgs.adoc[`ReadMiningArgs`]
| Read the mining options set in `args&period;` Returns an error if one was encountered&period;
|===


[.small]#Created with https://www.mrdocs.com[MrDocs]#
