getblocktemplate - Bitcoin RPC
getblocktemplate ( TemplateRequest ) 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. For full specification, see BIPs 22, 23, 9, and 145: https://github.com/bitcoin/bips/blob/master/bip-0022.mediawiki https://github.com/bitcoin/bips/blob/master/bip-0023.mediawiki https://github.com/bitcoin/bips/blob/master/bip-0009.mediawiki#getblocktemplate_changes https://github.com/bitcoin/bips/blob/master/bip-0145.mediawiki Arguments: 1. template_request (json object, optional) A json object in the following spec { "mode":"template" (string, optional) This must be set to "template", "proposal" (see BIP 23), or omitted "capabilities":[ (array, optional) A list of strings "support" (string) client side supported feature, 'longpoll', 'coinbasetxn', 'coinbasevalue', 'proposal', 'serverlist', 'workid' ,... ], "rules":[ (array, optional) A list of strings "support" (string) client side supported softfork deployment ,... ] } Result: { "version" : n, (numeric) The preferred block version "rules" : [ "rulename", ... ], (array of strings) specific block rules that are to be enforced "vbavailable" : { (json object) set of pending, supported versionbit (BIP 9) softfork deployments "rulename" : bitnumber (numeric) identifies the bit number as indicating acceptance and readiness for the named softfork rule ,... }, "vbrequired" : n, (numeric) bit mask of versionbits the server requires set in submissions "previousblockhash" : "xxxx", (string) The hash of current highest block "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) "txid" : "xxxx", (string) transaction id encoded in little-endian hexadecimal "hash" : "xxxx", (string) hash encoded in little-endian hexadecimal (including witness data) "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 ,... ], "fee": n, (numeric) difference in value between transaction inputs and outputs (in satoshis); for coinbase transactions, this is a negative Number of the total collected block fees (ie, not including the block subsidy); if key is not present, fee is unknown and clients MUST NOT assume there isn't one "sigops" : n, (numeric) total SigOps cost, as counted for purposes of block limits; if key is not present, sigop cost is unknown and clients MUST NOT assume it is zero "weight" : n, (numeric) total transaction weight, as counted for purposes of block limits "required" : true|false (boolean) if provided and true, this transaction must be in the final block } ,... ], "coinbaseaux" : { (json object) data that should be included in the coinbase's scriptSig content "flags" : "xx" (string) key name is to be ignored, and value included in scriptSig }, "coinbasevalue" : n, (numeric) maximum allowable input to coinbase transaction, including the generation award and transaction fees (in satoshis) "coinbasetxn" : { ... }, (json object) information for coinbase transaction "target" : "xxxx", (string) The hash target "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 "weightlimit" : n, (numeric) limit of block weight "curtime" : ttt, (numeric) current timestamp in seconds since epoch (Jan 1 1970 GMT) "bits" : "xxxxxxxx", (string) compressed target of next block "height" : n (numeric) The height of the next block } Examples: > bitcoin-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:8332/
This is a website, created out of frustration with uncomplete and outdated Bitcoin Core RPC documentation online.
It was inspired by ChainQuery, which seems to be abandoned. These docs are even simplier, so they can be regenerated by anyone.
Made by @karel_3d; license of the docs is MIT (see bitcoin repo), license of the scripts and webpage is also MIT ((C) 2018 Karel Bilek) (github repo)
Bitcoin version: 0.16.0.
Note that the RPC is from a regtest node (for completeness), so it includes some additional calls that a regular node doesn't have.
Blockchain
getbestblockhash
getblock
getblockchaininfo
getblockcount
getblockhash
getblockheader
getchaintips
getchaintxstats
getdifficulty
getmempoolancestors
getmempooldescendants
getmempoolentry
getmempoolinfo
getrawmempool
gettxout
gettxoutproof
gettxoutsetinfo
preciousblock
pruneblockchain
savemempool
verifychain
verifytxoutproof
getblock
getblockchaininfo
getblockcount
getblockhash
getblockheader
getchaintips
getchaintxstats
getdifficulty
getmempoolancestors
getmempooldescendants
getmempoolentry
getmempoolinfo
getrawmempool
gettxout
gettxoutproof
gettxoutsetinfo
preciousblock
pruneblockchain
savemempool
verifychain
verifytxoutproof
Control
Generating
Network
Rawtransactions
Util
Wallet
abandontransaction
abortrescan
addmultisigaddress
backupwallet
bumpfee
dumpprivkey
dumpwallet
encryptwallet
getaccount
getaccountaddress
getaddressesbyaccount
getbalance
getnewaddress
getrawchangeaddress
getreceivedbyaccount
getreceivedbyaddress
gettransaction
getunconfirmedbalance
getwalletinfo
importaddress
importmulti
importprivkey
importprunedfunds
importpubkey
importwallet
keypoolrefill
listaccounts
listaddressgroupings
listlockunspent
listreceivedbyaccount
listreceivedbyaddress
listsinceblock
listtransactions
listunspent
listwallets
lockunspent
move
removeprunedfunds
rescanblockchain
sendfrom
sendmany
sendtoaddress
setaccount
settxfee
signmessage
walletlock
walletpassphrase
walletpassphrasechange
abortrescan
addmultisigaddress
backupwallet
bumpfee
dumpprivkey
dumpwallet
encryptwallet
getaccount
getaccountaddress
getaddressesbyaccount
getbalance
getnewaddress
getrawchangeaddress
getreceivedbyaccount
getreceivedbyaddress
gettransaction
getunconfirmedbalance
getwalletinfo
importaddress
importmulti
importprivkey
importprunedfunds
importpubkey
importwallet
keypoolrefill
listaccounts
listaddressgroupings
listlockunspent
listreceivedbyaccount
listreceivedbyaddress
listsinceblock
listtransactions
listunspent
listwallets
lockunspent
move
removeprunedfunds
rescanblockchain
sendfrom
sendmany
sendtoaddress
setaccount
settxfee
signmessage
walletlock
walletpassphrase
walletpassphrasechange