2021-10-24 22:46:03 -07:00
<!doctype html>
< html lang = "en" >
< head >
< meta charset = "utf-8" >
< meta name = "viewport" content = "width=1200px, shrink-to-fit=yes" >
2025-01-03 22:42:49 -08:00
< meta name = "description" content = "Zcash 6.1.0 RPC Docs - getblocktemplate" >
2021-10-24 22:46:03 -07:00
< meta name = "author" content = "" >
2025-01-03 22:42:49 -08:00
< title > getblocktemplate - Zcash 6.1.0 RPC Docs< / title >
2021-10-24 22:46:03 -07:00
< link href = "./bootstrap.min.css" rel = "stylesheet" >
< / head >
< style >
.card-body {
font-size:80%;
padding-top: 0.5em;
}
pre {
word-break: break-word;
white-space: pre-wrap;
}
< / style >
< body >
< nav class = "navbar navbar-dark bg-dark " >
2025-01-03 22:42:49 -08:00
< a class = "navbar-brand" href = "/" > Zcash 6.1.0 RPC Docs< / a >
2021-10-24 22:46:03 -07:00
< / nav >
< main role = "main" class = "container-fluid" style = "margin-top: 1pc;" >
< div class = "row" >
< div class = "col-8 col-lg-9 col-xl-10" >
2025-01-03 22:42:49 -08:00
< h1 > getblocktemplate - Zcash 6.1.0 RPC< / h1 >
2021-10-24 22:46:03 -07:00
< pre > getblocktemplate ( " jsonrequestobject" )
If the request parameters include a ' mode' key, that is used to explicitly select between the default ' template' request or a ' proposal' .
It returns data needed to construct a block to work on.
See https://en.bitcoin.it/wiki/BIP_0022 for full specification.
To obtain information about founder' s reward or funding stream
amounts, use ' getblocksubsidy HEIGHT' passing in the height returned
by this API.
2022-01-03 13:54:19 -08:00
The roots returned in ' defaultroots' are only valid if the block template is
used unmodified. If any part of the block template marked as ' mutable' in the
output is mutated, these roots may need to be recomputed. For more information
on the derivation process, see ZIP 244.
2021-10-24 22:46:03 -07:00
Arguments:
1. " jsonrequestobject" (string, optional) A json object in the following spec
{
" mode" :" template," (string, optional) This must be set to " template" or omitted
" capabilities" :[ (array, optional) A list of strings
" support" (string) client side supported feature, ' longpoll' , ' coinbasetxn' , ' coinbasevalue' , ' proposal' , ' serverlist' , ' workid'
,...
],
" longpollid" :" id" (string, optional) id to wait for
}
Result:
{
" version" : n, (numeric) The block version
" previousblockhash" : " xxxx" , (string) The hash of current highest block
2022-01-03 13:54:19 -08:00
" blockcommitmentshash" : " xxxx" , (string) (DEPRECATED) The hash of the block commitments field in the block header
2021-10-24 22:46:03 -07:00
" lightclientroothash" : " xxxx" , (string) (DEPRECATED) The hash of the light client root field in the block header
" finalsaplingroothash" : " xxxx" , (string) (DEPRECATED) The hash of the light client root field in the block header
2022-01-03 13:54:19 -08:00
" defaultroots" : { (json object) root hashes that need to be recomputed if the transaction set is modified
" merkleroot" : " xxxx" (string) The hash of the transactions in the block header
" chainhistoryroot" : " xxxx" (string) The hash of the chain history
2022-01-07 16:06:23 -08:00
" authdataroot" : " xxxx" (string) (From NU5) The hash of the authorizing data merkel tree
" blockcommitmentshash" : " xxxx" (string) (From NU5) The hash of the block commitments field in the block header
2022-01-03 13:54:19 -08:00
}
2021-10-24 22:46:03 -07:00
" transactions" : [ (array) contents of non-coinbase transactions that should be included in the next block
{
" data" : " xxxx" , (string) transaction data encoded in hexadecimal (byte-for-byte)
" hash" : " xxxx" , (string) hash/id encoded in little-endian hexadecimal
" depends" : [ (array) array of numbers
n (numeric) transactions before this one (by 1-based index in ' transactions' list) that must be present in the final block if this one is
,...
],
2023-05-02 11:37:15 -07:00
" fee" : n, (numeric) difference in value between transaction inputs and outputs (in zatoshis); for coinbase transactions, this is a negative Number of the total collected block fees (i.e., not including the block subsidy); if key is not present, fee is unknown and clients MUST NOT assume there isn' t one
2021-10-24 22:46:03 -07:00
" sigops" : n, (numeric) total number of SigOps, as counted for purposes of block limits; if key is not present, sigop count is unknown and clients MUST NOT assume there aren' t any
" required" : true|false (boolean) if provided and true, this transaction must be in the final block
}
,...
],
" coinbasetxn" : { ... }, (json object) information for coinbase transaction
" target" : " xxxx" , (string) The hash target
" longpollid" : " str" , (string) an id to include with a request to longpoll on an update to this template
" mintime" : xxx, (numeric) The minimum timestamp appropriate for next block time in seconds since epoch (Jan 1 1970 GMT)
" mutable" : [ (array of string) list of ways the block template may be changed
" value" (string) A way the block template may be changed, e.g. ' time' , ' transactions' , ' prevblock'
,...
],
" noncerange" : " 00000000ffffffff" , (string) A range of valid nonces
" sigoplimit" : n, (numeric) limit of sigops in blocks
" sizelimit" : n, (numeric) limit of block size
" curtime" : ttt, (numeric) current timestamp in seconds since epoch (Jan 1 1970 GMT)
" bits" : " xxx" , (string) compressed target of next block
" height" : n (numeric) The height of the next block
}
Examples:
> zcash-cli getblocktemplate
> curl --user myusername --data-binary ' {" jsonrpc" : " 1.0" , " id" :" curltest" , " method" : " getblocktemplate" , " params" : [] }' -H ' content-type: text/plain;' http://127.0.0.1:8232/
< / pre >
< hr >
< p >
Maintained by < a href = "https://twitter.com/_garethtdavies" > @_garethtdavies< / a > ; modified by: < a href = "https://github.com/mdr0id" > mdr0id< / a > ;license of the docs is MIT (see < a href = "https://github.com/zcash/zcash" > zcash repo< / a > ), license of the scripts and webpage is also MIT (< a href = "https://github.com/zcash-rpc/zcash-rpc.github.io" > github repo< / a > )
< / p >
< p >
Note it uses a mainnet zcash node
< / p >
< / div >
< div class = "col-4 col-lg-3 col-xl-2" >
< div class = "card" >
< div class = "card-header" >
Addressindex
< / div >
< div class = "card-body" >
< a href = "getaddressbalance.html" > getaddressbalance< / a >
< br >
< a href = "getaddressdeltas.html" > getaddressdeltas< / a >
< br >
< a href = "getaddressmempool.html" > getaddressmempool< / a >
< br >
< a href = "getaddresstxids.html" > getaddresstxids< / a >
< br >
< a href = "getaddressutxos.html" > getaddressutxos< / a >
< br >
< / div >
< / div >
< br >
< div class = "card" >
< div class = "card-header" >
Blockchain
< / div >
< div class = "card-body" >
< a href = "getbestblockhash.html" > getbestblockhash< / a >
< br >
< a href = "getblock.html" > getblock< / a >
< br >
< a href = "getblockchaininfo.html" > getblockchaininfo< / a >
< br >
< a href = "getblockcount.html" > getblockcount< / a >
< br >
< a href = "getblockdeltas.html" > getblockdeltas< / a >
< br >
< a href = "getblockhash.html" > getblockhash< / a >
< br >
< a href = "getblockhashes.html" > getblockhashes< / a >
< br >
< a href = "getblockheader.html" > getblockheader< / a >
< br >
< a href = "getchaintips.html" > getchaintips< / a >
< br >
< a href = "getdifficulty.html" > getdifficulty< / a >
< br >
< a href = "getmempoolinfo.html" > getmempoolinfo< / a >
< br >
< a href = "getrawmempool.html" > getrawmempool< / a >
< br >
< a href = "getspentinfo.html" > getspentinfo< / a >
< br >
< a href = "gettxout.html" > gettxout< / a >
< br >
< a href = "gettxoutproof.html" > gettxoutproof< / a >
< br >
< a href = "gettxoutsetinfo.html" > gettxoutsetinfo< / a >
< br >
< a href = "verifychain.html" > verifychain< / a >
< br >
< a href = "verifytxoutproof.html" > verifytxoutproof< / a >
< br >
2024-09-10 12:54:56 -07:00
< a href = "z_getsubtreesbyindex.html" > z_getsubtreesbyindex< / a >
< br >
2021-10-24 22:46:03 -07:00
< a href = "z_gettreestate.html" > z_gettreestate< / a >
< br >
< / div >
< / div >
< br >
< div class = "card" >
< div class = "card-header" >
Control
< / div >
< div class = "card-body" >
< a href = "getexperimentalfeatures.html" > getexperimentalfeatures< / a >
< br >
< a href = "getinfo.html" > getinfo< / a >
< br >
< a href = "getmemoryinfo.html" > getmemoryinfo< / a >
< br >
< a href = "help.html" > help< / a >
< br >
< a href = "setlogfilter.html" > setlogfilter< / a >
< br >
< a href = "stop.html" > stop< / a >
< br >
< / div >
< / div >
< br >
< div class = "card" >
< div class = "card-header" >
Disclosure
< / div >
< div class = "card-body" >
< a href = "z_getpaymentdisclosure.html" > z_getpaymentdisclosure< / a >
< br >
< a href = "z_validatepaymentdisclosure.html" > z_validatepaymentdisclosure< / a >
< br >
< / div >
< / div >
< br >
< div class = "card" >
< div class = "card-header" >
Generating
< / div >
< div class = "card-body" >
< a href = "generate.html" > generate< / a >
< br >
< a href = "getgenerate.html" > getgenerate< / a >
< br >
< a href = "setgenerate.html" > setgenerate< / a >
< br >
< / div >
< / div >
< br >
< div class = "card" >
< div class = "card-header" >
Mining
< / div >
< div class = "card-body" >
< a href = "getblocksubsidy.html" > getblocksubsidy< / a >
< br >
< a href = "getblocktemplate.html" > getblocktemplate< / a >
< br >
< a href = "getlocalsolps.html" > getlocalsolps< / a >
< br >
< a href = "getmininginfo.html" > getmininginfo< / a >
< br >
< a href = "getnetworkhashps.html" > getnetworkhashps< / a >
< br >
< a href = "getnetworksolps.html" > getnetworksolps< / a >
< br >
< a href = "prioritisetransaction.html" > prioritisetransaction< / a >
< br >
< a href = "submitblock.html" > submitblock< / a >
< br >
< / div >
< / div >
< br >
< div class = "card" >
< div class = "card-header" >
Network
< / div >
< div class = "card-body" >
< a href = "addnode.html" > addnode< / a >
< br >
< a href = "clearbanned.html" > clearbanned< / a >
< br >
< a href = "disconnectnode.html" > disconnectnode< / a >
< br >
< a href = "getaddednodeinfo.html" > getaddednodeinfo< / a >
< br >
< a href = "getconnectioncount.html" > getconnectioncount< / a >
< br >
< a href = "getdeprecationinfo.html" > getdeprecationinfo< / a >
< br >
< a href = "getnettotals.html" > getnettotals< / a >
< br >
< a href = "getnetworkinfo.html" > getnetworkinfo< / a >
< br >
< a href = "getpeerinfo.html" > getpeerinfo< / a >
< br >
< a href = "listbanned.html" > listbanned< / a >
< br >
< a href = "ping.html" > ping< / a >
< br >
< a href = "setban.html" > setban< / a >
< br >
< / div >
< / div >
< br >
< div class = "card" >
< div class = "card-header" >
Rawtransactions
< / div >
< div class = "card-body" >
< a href = "createrawtransaction.html" > createrawtransaction< / a >
< br >
< a href = "decoderawtransaction.html" > decoderawtransaction< / a >
< br >
< a href = "decodescript.html" > decodescript< / a >
< br >
< a href = "fundrawtransaction.html" > fundrawtransaction< / a >
< br >
< a href = "getrawtransaction.html" > getrawtransaction< / a >
< br >
< a href = "sendrawtransaction.html" > sendrawtransaction< / a >
< br >
< a href = "signrawtransaction.html" > signrawtransaction< / a >
< br >
< / div >
< / div >
< br >
< div class = "card" >
< div class = "card-header" >
Util
< / div >
< div class = "card-body" >
< a href = "createmultisig.html" > createmultisig< / a >
< br >
< a href = "validateaddress.html" > validateaddress< / a >
< br >
< a href = "verifymessage.html" > verifymessage< / a >
< br >
< a href = "z_validateaddress.html" > z_validateaddress< / a >
< br >
< / div >
< / div >
< br >
< div class = "card" >
< div class = "card-header" >
Wallet
< / div >
< div class = "card-body" >
< a href = "addmultisigaddress.html" > addmultisigaddress< / a >
< br >
< a href = "backupwallet.html" > backupwallet< / a >
< br >
< a href = "dumpprivkey.html" > dumpprivkey< / a >
< br >
< a href = "encryptwallet.html" > encryptwallet< / a >
< br >
< a href = "getbalance.html" > getbalance< / a >
< br >
< a href = "getnewaddress.html" > getnewaddress< / a >
< br >
< a href = "getrawchangeaddress.html" > getrawchangeaddress< / a >
< br >
< a href = "getreceivedbyaddress.html" > getreceivedbyaddress< / a >
< br >
< a href = "gettransaction.html" > gettransaction< / a >
< br >
< a href = "getunconfirmedbalance.html" > getunconfirmedbalance< / a >
< br >
< a href = "getwalletinfo.html" > getwalletinfo< / a >
< br >
< a href = "importaddress.html" > importaddress< / a >
< br >
< a href = "importprivkey.html" > importprivkey< / a >
< br >
< a href = "importpubkey.html" > importpubkey< / a >
< br >
< a href = "importwallet.html" > importwallet< / a >
< br >
< a href = "keypoolrefill.html" > keypoolrefill< / a >
< br >
< a href = "listaddresses.html" > listaddresses< / a >
< br >
< a href = "listaddressgroupings.html" > listaddressgroupings< / a >
< br >
< a href = "listlockunspent.html" > listlockunspent< / a >
< br >
< a href = "listreceivedbyaddress.html" > listreceivedbyaddress< / a >
< br >
< a href = "listsinceblock.html" > listsinceblock< / a >
< br >
< a href = "listtransactions.html" > listtransactions< / a >
< br >
< a href = "listunspent.html" > listunspent< / a >
< br >
< a href = "lockunspent.html" > lockunspent< / a >
< br >
< a href = "sendmany.html" > sendmany< / a >
< br >
< a href = "sendtoaddress.html" > sendtoaddress< / a >
< br >
< a href = "settxfee.html" > settxfee< / a >
< br >
< a href = "signmessage.html" > signmessage< / a >
< br >
2022-04-15 14:56:59 -07:00
< a href = "walletconfirmbackup.html" > walletconfirmbackup< / a >
< br >
2024-09-10 12:54:56 -07:00
< a href = "z_converttex.html" > z_converttex< / a >
< br >
2021-10-24 22:46:03 -07:00
< a href = "z_exportkey.html" > z_exportkey< / a >
< br >
< a href = "z_exportviewingkey.html" > z_exportviewingkey< / a >
< br >
< a href = "z_exportwallet.html" > z_exportwallet< / a >
< br >
2022-04-15 14:56:59 -07:00
< a href = "z_getaddressforaccount.html" > z_getaddressforaccount< / a >
< br >
2021-10-24 22:46:03 -07:00
< a href = "z_getbalance.html" > z_getbalance< / a >
< br >
2022-04-15 14:56:59 -07:00
< a href = "z_getbalanceforaccount.html" > z_getbalanceforaccount< / a >
< br >
< a href = "z_getbalanceforviewingkey.html" > z_getbalanceforviewingkey< / a >
< br >
2021-10-24 22:46:03 -07:00
< a href = "z_getmigrationstatus.html" > z_getmigrationstatus< / a >
< br >
2022-04-15 14:56:59 -07:00
< a href = "z_getnewaccount.html" > z_getnewaccount< / a >
< br >
2021-10-24 22:46:03 -07:00
< a href = "z_getnewaddress.html" > z_getnewaddress< / a >
< br >
< a href = "z_getnotescount.html" > z_getnotescount< / a >
< br >
< a href = "z_getoperationresult.html" > z_getoperationresult< / a >
< br >
< a href = "z_getoperationstatus.html" > z_getoperationstatus< / a >
< br >
< a href = "z_gettotalbalance.html" > z_gettotalbalance< / a >
< br >
< a href = "z_importkey.html" > z_importkey< / a >
< br >
< a href = "z_importviewingkey.html" > z_importviewingkey< / a >
< br >
< a href = "z_importwallet.html" > z_importwallet< / a >
< br >
2022-04-15 14:56:59 -07:00
< a href = "z_listaccounts.html" > z_listaccounts< / a >
< br >
2021-10-24 22:46:03 -07:00
< a href = "z_listaddresses.html" > z_listaddresses< / a >
< br >
< a href = "z_listoperationids.html" > z_listoperationids< / a >
< br >
< a href = "z_listreceivedbyaddress.html" > z_listreceivedbyaddress< / a >
< br >
2022-04-15 14:56:59 -07:00
< a href = "z_listunifiedreceivers.html" > z_listunifiedreceivers< / a >
< br >
2021-10-24 22:46:03 -07:00
< a href = "z_listunspent.html" > z_listunspent< / a >
< br >
< a href = "z_mergetoaddress.html" > z_mergetoaddress< / a >
< br >
< a href = "z_sendmany.html" > z_sendmany< / a >
< br >
< a href = "z_setmigration.html" > z_setmigration< / a >
< br >
< a href = "z_shieldcoinbase.html" > z_shieldcoinbase< / a >
< br >
< a href = "z_viewtransaction.html" > z_viewtransaction< / a >
< br >
< a href = "zcbenchmark.html" > zcbenchmark< / a >
< br >
< a href = "zcsamplejoinsplit.html" > zcsamplejoinsplit< / a >
< br >
< / div >
< / div >
< br >
< / div >
< / div >
< / main >
< / body >
< / html >