Returns the hash of the best (tip) block in the longest blockchain.
hex Promise<string>
: the block hash hex encoded
(async () => {
try {
let getBestBlockHash = await bitbox.Blockchain.getBestBlockHash();
console.log(getBestBlockHash);
} catch(error) {
console.error(error)
}
})()
// 241decef88889efac8e6ce428a8ac696fdde5972eceed97e1fb58d6106af31d5
If verbose is false, returns a string that is serialized, hex-encoded data for block 'hash'. If verbose is true, returns an Object with information about block hash
.
- blockhash
string
: The block hash - verbose
boolean
optional: true for a json object, false for the hex encoded data
block Promise<BlockDetails>
(async () => {
try {
let getBlock = await bitbox.Blockchain.getBlock("00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09");
console.log(getBlock);
} catch(error) {
console.error(error)
}
})()
// { hash: '00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09',
// confirmations: 528236,
// size: 216,
// height: 1000,
// version: 1,
// versionHex: '00000001',
// merkleroot: 'fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33',
// tx:
// [ 'fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33' ],
// time: 1232346882,
// mediantime: 1232344831,
// nonce: 2595206198,
// bits: '1d00ffff',
// difficulty: 1,
// chainwork: '000000000000000000000000000000000000000000000000000003e903e903e9',
// previousblockhash: '0000000008e647742775a230787d66fdf92c46a48c896bfbc85cdc8acc67e87d',
// nextblockhash: '00000000a2887344f8db859e372e7e4bc26b23b9de340f725afbf2edb265b4c6' }
Returns an object containing various state info regarding blockchain processing.
block Promise<BlockchainInfo>
(async () => {
try {
let getBlockchainInfo = await bitbox.Blockchain.getBlockchainInfo();
console.log(getBlockchainInfo);
} catch(error) {
console.error(error)
}
})()
// { chain: 'main',
// blocks: 529235,
// headers: 529235,
// bestblockhash: '00000000000000000108641af52e01a447b1f9d801571f93a0f20a8cbf80c236',
// difficulty: 702784497476.8376,
// mediantime: 1525727823,
// verificationprogress: 0.9999892037620548,
// chainwork: '00000000000000000000000000000000000000000099f5e1cf7d4e462a493a51',
// pruned: false,
// softforks:
// [ { id: 'bip34', version: 2, reject: [Object] },
// { id: 'bip66', version: 3, reject: [Object] },
// { id: 'bip65', version: 4, reject: [Object] } ],
// bip9_softforks:
// { csv:
// { status: 'active',
// startTime: 1462060800,
// timeout: 1493596800,
// since: 419328 } } }
Returns the number of blocks in the longest blockchain.
n Promise<number>
(async () => {
try {
let getBlockCount = await bitbox.Blockchain.getBlockCount();
console.log(getBlockCount);
} catch(error) {
console.error(error)
}
})()
// 529235
Returns hash of block in best-block-chain at height provided.
- height
number
optional
hash Promise<string>
The block hash
(async () => {
try {
let getBlockHash = await bitbox.Blockchain.getBlockHash([0]);
console.log(getBlockHash);
} catch(error) {
console.error(error)
}
})()
// [ '000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f' ]
If verbose is false, returns a string that is serialized, hex-encoded data for blockheader 'hash'. If verbose is true, returns an Object with information about blockheader hash
.
- hashes
string | string[]
- verbose
boolean
optional: true for a json object, false for the hex encoded data.
blockHeader Promise<BlockHeader>
The block header
(async () => {
try {
let getBlockHeader = await bitbox.Blockchain.getBlockHeader(["00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09"]);
console.log(getBlockHeader);
} catch(error) {
console.error(error)
}
})()
// [{ hash: '00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09',
// confirmations: 528236,
// height: 1000,
// version: 1,
// versionHex: '00000001',
// merkleroot: 'fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33',
// time: 1232346882,
// mediantime: 1232344831,
// nonce: 2595206198,
// bits: '1d00ffff',
// difficulty: 1,
// chainwork: '000000000000000000000000000000000000000000000000000003e903e903e9',
// previousblockhash: '0000000008e647742775a230787d66fdf92c46a48c896bfbc85cdc8acc67e87d',
// nextblockhash: '00000000a2887344f8db859e372e7e4bc26b23b9de340f725afbf2edb265b4c6' }]
Return information about all known tips in the block tree, including the main chain as well as orphaned branches.
chainTips Promise<ChainTip[]>
(async () => {
try {
let getChainTips = await bitbox.Blockchain.getChainTips();
console.log(getChainTips);
} catch(error) {
console.error(error)
}
})()
// [ { height: 529235,
// hash: '00000000000000000108641af52e01a447b1f9d801571f93a0f20a8cbf80c236',
// branchlen: 0,
// status: 'active' },
// { height: 527442,
// hash: '0000000000000000014cbf7b7aa12e52dd97db4b1ba5f39dccae37773af9272e',
// branchlen: 1,
// status: 'invalid' },
// { height: 526861,
// hash: '00000000000000000225b070818bbafd95842ecbd25edf39bff54a7aa5c8fd10',
// branchlen: 1,
// status: 'valid-headers' } ]
Returns the proof-of-work difficulty as a multiple of the minimum difficulty.
n Promise<number>
: the proof-of-work difficulty as a multiple of the minimum difficulty.
(async () => {
try {
let getDifficulty = await bitbox.Blockchain.getDifficulty();
console.log(getDifficulty);
} catch(error) {
console.error(error)
}
})()
// 702784497476.8376
Returns mempool data for given transaction
- txids (required):
string
: TXID currently in mempoolstring[]
: Array of TXIDs
- entry:
Promise<any>
: containing details about the single mempool entry.Promise<any[]>
: Array of Objects with details about mempool entries.
(async () => {
try {
let getMempoolEntry = await bitbox.Blockchain.getMempoolEntry("fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33");
console.log(getMempoolEntry);
} catch(error) {
console.error(error)
}
})()
// {
// "size": 372,
// "fee": 0.00000374,
// "modifiedfee": 0.00000374,
// "time": 1547738850,
// "height": 565716,
// "startingpriority": 26524545.3974359,
// "currentpriority": 26524545.3974359,
// "descendantcount": 1,
// "descendantsize": 372,
// "descendantfees": 374,
// "ancestorcount": 1,
// "ancestorsize": 372,
// "ancestorfees": 374,
// "depends": []
// }
(async () => {
try {
let getMempoolEntry = await bitbox.Blockchain.getMempoolEntry([
"fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33",
"defea04c38ee00cf73ad402984714ed22dc0dd99b2ae5cb50d791d94343ba79b"
]);
console.log(getMempoolEntry);
} catch(error) {
console.error(error)
}
})()
// [
// {
// "size": 372,
// "fee": 0.00000374,
// "modifiedfee": 0.00000374,
// "time": 1547738850,
// "height": 565716,
// "startingpriority": 26524545.3974359,
// "currentpriority": 26524545.3974359,
// "descendantcount": 1,
// "descendantsize": 372,
// "descendantfees": 374,
// "ancestorcount": 1,
// "ancestorsize": 372,
// "ancestorfees": 374,
// "depends": []
// },
// {
// "size": 372,
// "fee": 0.00000374,
// "modifiedfee": 0.00000374,
// "time": 1547738850,
// "height": 565716,
// "startingpriority": 26524545.3974359,
// "currentpriority": 26524545.3974359,
// "descendantcount": 1,
// "descendantsize": 372,
// "descendantfees": 374,
// "ancestorcount": 1,
// "ancestorsize": 372,
// "ancestorfees": 374,
// "depends": []
// }
// ]
Returns details on the active state of the TX memory pool.
entry Promise<MempoolInfo>
(async () => {
try {
let getMempoolInfo = await bitbox.Blockchain.getMempoolInfo();
console.log(getMempoolInfo);
} catch(error) {
console.error(error)
}
})()
// { size: 257,
// bytes: 98257,
// usage: 365840,
// maxmempool: 300000000,
// mempoolminfee: 0 }
Returns all transaction ids in memory pool as a json array of string transaction ids.
- verbose
boolean
optional: True for a json object, false for array of transaction ids
rawMemPool Promise<string[] | object[]>
(async () => {
try {
let getRawMempool = await bitbox.Blockchain.getRawMempool(true);
console.log(getRawMempool);
} catch(error) {
console.error(error)
}
})()
// [ {'2ae541af20db6f2b50410f418af56e349d08877d685f6cf54df54658e892db7a':
// { size: 237,
// fee: 0.00000238,
// modifiedfee: 0.00000238,
// time: 1525732015,
// height: 529235,
// startingpriority: 0,
// currentpriority: 0,
// descendantcount: 10,
// descendantsize: 2376,
// descendantfees: 2380,
// ancestorcount: 3,
// ancestorsize: 712,
// ancestorfees: 714,
// depends:
// [ 'e25682caafc7000645d59f4c11d8d594b2943979b9d8fafb9f946e2b35c21b7e' ] },]
Returns details about an unspent transaction output.
- txid
string
: The transaction id - n
number
: vout number - include_mempool
boolean
optional: Whether to include the mempool
txOut Promise<TxOut | null>
(async () => {
try {
let getTxOut = await bitbox.Blockchain.getTxOut("e25682caafc7000645d59f4c11d8d594b2943979b9d8fafb9f946e2b35c21b7e", 1);
console.log(getTxOut);
} catch(error) {
console.error(error)
}
})()
// null
Returns a hex-encoded proof that "txid" was included in a block.
- txids:
string
: A single string containing a txid.string[]
- proof:
Promise<string>
: A string that is a serialized, hex-encoded data for the proof.Promise<string[]>
: Array of strings that are a serialized, hex-encoded data for the proof.
(async () => {
try {
let getTxOutProof = await bitbox.Blockchain.getTxOutProof("e25682caafc7000645d59f4c11d8d594b2943979b9d8fafb9f946e2b35c21b7e");
console.log(getTxOutProof);
} catch(error) {
console.error(error)
}
})()
// "0000002086a4a3161f9ba2174883ec0b93acceac3b2f37b36ed1f90000000000000000009cb02406d1094ecf3e0b4c0ca7c585125e721147c39daf6b48c90b512741e13a12333e5cb38705180f441d8c7100000008fee9b60f1edb57e5712839186277ed39e0a004a32be9096ee47472efde8eae62f789f9d7a9f59d0ea7093dea1e0c65ff0b953f1d8cf3d47f92e732ca0295f603c272d5f4a63509f7a887f2549d78af7444aa0ecbb4f66d9cbe13bc6a89f59e05a199df8325d490818ffefe6b6321d32d7496a68580459836c0183f89082fc1b491cc91b23ecdcaa4c347bf599a62904d61f1c15b400ebbd5c90149010c139d9c1e31b774b796977393a238080ab477e1d240d0c4f155d36f519668f49bae6bd8cd5b8e40522edf76faa09cca6188d83ff13af6967cc6a569d1a5e9aeb1fdb7f531ddd2d0cbb81879741d5f38166ac1932136264366a4065cc96a42e41f96294f02df01"
(async () => {
try {
let getTxOutProof = await bitbox.Blockchain.getTxOutProof([
"e25682caafc7000645d59f4c11d8d594b2943979b9d8fafb9f946e2b35c21b7e",
"d16662463fd98eb96c8f6898d58a4461ac3d0120f4d0aea601d72b37759f261c"
]);
console.log(getTxOutProof);
} catch(error) {
console.error(error)
}
})()
// [
// "010000007de867cc8adc5cc8fb6b898ca4462cf9fd667d7830a275277447e60800000000338f121232e169d3100edd82004dc2a1f0e1f030c6c488fa61eafa930b0528fe021f7449ffff001d36b4af9a0100000001338f121232e169d3100edd82004dc2a1f0e1f030c6c488fa61eafa930b0528fe0101",
// "010000007de867cc8adc5cc8fb6b898ca4462cf9fd667d7830a275277447e60800000000338f121232e169d3100edd82004dc2a1f0e1f030c6c488fa61eafa930b0528fe021f7449ffff001d36b4af9a0100000001338f121232e169d3100edd82004dc2a1f0e1f030c6c488fa61eafa930b0528fe0101"
// ]
Verifies that a proof points to a transaction in a block, returning the transaction it commits to and throwing an RPC error if the block is not in our best chain
- proof (required):
string
: The hex-encoded proof generated by gettxoutproofstring[]
: The hex-encoded proof generated by gettxoutproof
- txids
Promise<string[]>
: The txid(s) which the proof commits to, or empty array if the proof is invalid
(async () => {
try {
const proof = "0000002086a4a3161f9ba2174883ec0b93acceac3b2f37b36ed1f90000000000000000009cb02406d1094ecf3e0b4c0ca7c585125e721147c39daf6b48c90b512741e13a12333e5cb38705180f441d8c7100000008fee9b60f1edb57e5712839186277ed39e0a004a32be9096ee47472efde8eae62f789f9d7a9f59d0ea7093dea1e0c65ff0b953f1d8cf3d47f92e732ca0295f603c272d5f4a63509f7a887f2549d78af7444aa0ecbb4f66d9cbe13bc6a89f59e05a199df8325d490818ffefe6b6321d32d7496a68580459836c0183f89082fc1b491cc91b23ecdcaa4c347bf599a62904d61f1c15b400ebbd5c90149010c139d9c1e31b774b796977393a238080ab477e1d240d0c4f155d36f519668f49bae6bd8cd5b8e40522edf76faa09cca6188d83ff13af6967cc6a569d1a5e9aeb1fdb7f531ddd2d0cbb81879741d5f38166ac1932136264366a4065cc96a42e41f96294f02df01"
let verifyTxOutProof = await bitbox.Blockchain.verifyTxOutProof(proof);
console.log(verifyTxOutProof);
} catch(error) {
console.error(error)
}
})()
// [
// "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7"
// ]
(async () => {
try {
const proof = "0000002086a4a3161f9ba2174883ec0b93acceac3b2f37b36ed1f90000000000000000009cb02406d1094ecf3e0b4c0ca7c585125e721147c39daf6b48c90b512741e13a12333e5cb38705180f441d8c7100000008fee9b60f1edb57e5712839186277ed39e0a004a32be9096ee47472efde8eae62f789f9d7a9f59d0ea7093dea1e0c65ff0b953f1d8cf3d47f92e732ca0295f603c272d5f4a63509f7a887f2549d78af7444aa0ecbb4f66d9cbe13bc6a89f59e05a199df8325d490818ffefe6b6321d32d7496a68580459836c0183f89082fc1b491cc91b23ecdcaa4c347bf599a62904d61f1c15b400ebbd5c90149010c139d9c1e31b774b796977393a238080ab477e1d240d0c4f155d36f519668f49bae6bd8cd5b8e40522edf76faa09cca6188d83ff13af6967cc6a569d1a5e9aeb1fdb7f531ddd2d0cbb81879741d5f38166ac1932136264366a4065cc96a42e41f96294f02df01"
let verifyTxOutProof = await bitbox.Blockchain.verifyTxOutProof([proof, proof]);
console.log(verifyTxOutProof);
} catch(error) {
console.error(error)
}
})()
// [
// "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7",
// "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7"
// ]
{
size: number
bytes: number
usage: number
maxmempool: number
mempoolminfee: number
}
{
chain: string
blocks: number
headers: number
bestblockhash: string
difficulty: number
mediantime: number
verificationprogress: number
chainwork: string
pruned: boolean
softforks: object[]
bip9_softforks: object
}
{
hash: string
confirmations: number
height: number
version: number
versionHex: string
merkleroot: string
time: number
mediantime: number
nonce: number
bits: string
difficulty: number
chainwork: string
previousblockhash: string
nextblockhash: string
}
{
height: number
hash: string
branchlen: number
status: string
}
{
bestblock: string
confirmations: number
value: number
scriptPubKey: {
asm: string
hex: string
reqSigs: number
type: string
addresses: string[]
}
version: number
coinbase: boolean
}