本文档详细介绍了 Blockbook API V2 提供的 REST 和 WebSocket 接口,用于访问索引的区块链数据。API V2 支持多种加密货币,并提供包括获取状态、区块、交易、地址、UTXO等功能,以及发送交易和获取汇率信息等功能。同时还介绍了旧版本API V1,它只兼容比特币类型的币种。
Blockbook 提供了 REST 和 websocket API 来访问已索引的区块链。
API V2 是当前版本的 API。它可以用于 Blockbook 支持的所有币种类型。API V2 可以使用 REST 和 websocket 接口访问。
API V2 中使用的通用原则:
请参阅 blockbook-api.ts 文件中的所有引用类型(typescript
接口)。
支持以下方法:
状态页面返回 Blockbook 和连接的后端的当前状态。
GET /api/status
响应(SystemInfo
类型):
<!-- https://btc1.trezor.io/api/status -->
{
"blockbook": {
"coin": "Bitcoin",
"network": "BTC",
"host": "backend5",
"version": "0.5.0",
"gitCommit": "a0960c8e",
"buildTime": "2024-08-08T12:32:50+00:00",
"syncMode": true,
"initialSync": false,
"inSync": true,
"bestHeight": 860730,
"lastBlockTime": "2024-09-10T08:19:04.471017534Z",
"inSyncMempool": true,
"lastMempoolTime": "2024-09-10T08:42:39.38871351Z",
"mempoolSize": 232021,
"decimals": 8,
"dbSize": 761283489075,
"hasFiatRates": true,
"currentFiatRatesTime": "2024-09-10T08:42:00.898792419Z",
"historicalFiatRatesTime": "2024-09-10T00:00:00Z",
"about": "Blockbook - blockchain indexer for Trezor Suite https://trezor.io/trezor-suite. Do not use for any other purpose."
},
"backend": {
"chain": "main",
"blocks": 860730,
"headers": 860730,
"bestBlockHash": "00000000000000000000effeb0c4460480e6a347deab95332c63007a68646ee5",
"difficulty": "89471664776970.77",
"sizeOnDisk": 681584532221,
"version": "270100",
"subversion": "/Satoshi:27.1.0/",
"protocolVersion": "70016"
}
}
GET /api/v2/block-index/<区块高度>
响应:
<!-- https://btc1.trezor.io/api/v2/block-index/666666 -->
{
"blockHash": "0000000000000000000b7b8574bc6fd285825ec2dbcbeca149121fc05b0c828c"
}
注意:Blockbook 始终遵循其连接的后端的主链。请参阅下面获取区块上的注释。
获取交易返回关于交易,"标准化" 的数据,对于所有支持的币种,这些数据具有相同的通用结构。它不返回币种特定的字段(例如,关于 Zcash 屏蔽地址的信息)。
GET /api/v2/tx/<txid>
比特币类型币的响应,已确认的交易(Tx
类型):
<!-- https://btc1.trezor.io/api/v2/tx/8c1e3dec662d1f2a5e322ccef5eca263f98eb16723c6f990be0c88c1db113fb1 -->
{
"txid": "8c1e3dec662d1f2a5e322ccef5eca263f98eb16723c6f990be0c88c1db113fb1",
"version": 2,
"lockTime": 860729,
"vin": [
{
"txid": "0eb7b574373de2c88d0dc1444f49947c681d0437d21361f9ebb4dd09c62f2a66",
"vout": 1,
"sequence": 4294967293,
"n": 0,
"addresses": [
"bc1qmgwnfjlda4ns3g6g3yz74w6scnn9yu2ts82yyc"
],
"isAddress": true,
"value": "10106300"
}
],
"vout": [
{
"value": "175000",
"n": 0,
"hex": "76a914ecc999d554eaa3efa5e871c28f58b549c36ec51788ac",
"addresses": [
"1Nb1ykSD7J5k4RFjJQGsrD9gxBE6jzfNa9"
],
"isAddress": true
},
{
"value": "9888100",
"n": 1,
"hex": "001496f152a0919487624bf4f13f46f0d20fa10d9acc",
"addresses": [
"bc1qjmc49gy3jjrkyjl57yl5duxjp7ssmxkvh5t2q5"
],
"isAddress": true
}
],
"blockHash": "00000000000000000000effeb0c4460480e6a347deab95332c63007a68646ee5",
"blockHeight": 860730,
"confirmations": 1,
"blockTime": 1725956288,
"size": 225,
"vsize": 144,
"value": "10063100",
"valueIn": "10106300",
"fees": "43200",
"hex": "02000000000101662a2fc609ddb4ebf96113d237041d687c94494f44c10d8dc8e23d3774b5b70e0100000000fdffffff0298ab0200000000001976a914ecc999d554eaa3efa5e871c28f58b549c36ec51788ac64e196000000000016001496f152a0919487624bf4f13f46f0d20fa10d9acc0247304402202bb0591180cdbbe0f639af6eb21abdb993fc5a667b09e6392d5c11b025a9187102201ef2e84fc91a5d2c6fbbc9f943482d230256a3640f8ecb83c1f3f17242cf011001210314f03889e1667feb696ee280625943195189cfabe46d54204d987f631fe6892739220d00"
}
比特币类型币的响应,未确认的交易:
特殊字段:
<!-- https://btc1.trezor.io/api/v2/tx/73b1ad97194e426031e5c692869de2d83dc2ff6033fc6f0ab5514345f92eaf0d -->
{
"txid": "73b1ad97194e426031e5c692869de2d83dc2ff6033fc6f0ab5514345f92eaf0d",
"version": 2,
"vin": [
{
"txid": "bccbebb64b1613ada74eefa96753088a80fefa53a10e42c66eef1899371bc096",
"n": 0,
"addresses": [
"bc1q9lh77es6m8ztr7muwcec00ewn8fxakpl9jwv8y"
],
"isAddress": true,
"value": "371042"
}
],
"vout": [
{
"value": "293135",
"n": 0,
"hex": "0014aafd7386f99f4b508ec05ee8f7edc2e07126620a",
"addresses": [
"bc1q4t7h8phena94prkqtm500mwzupcjvcs2akcdy9"
],
"isAddress": true
},
{
"value": "74022",
"n": 1,
"hex": "0014a3de0fbba89c17d43093164ea955bad65bc260bf",
"addresses": [
"bc1q500qlwagnstagvynze82j4d66eduyc9lf64ksh"
],
"isAddress": true
}
],
"blockHeight": -1,
"confirmations": 0,
"confirmationETABlocks": 1,
"confirmationETASeconds": 619,
"blockTime": 1725959035,
"size": 222,
"vsize": 141,
"value": "367157",
"valueIn": "371042",
"fees": "3885",
"hex": "0200000000010196c01b379918ef6ec6420ea153fafe808a085367a9ef4ea7ad13164bb6ebcbbc000000000000000000020f79040000000000160014aafd7386f99f4b508ec05ee8f7edc2e07126620a2621010000000000160014a3de0fbba89c17d43093164ea955bad65bc260bf0247304402204a5bdf8a8d19b0a19044b0c0de3ced92b92e8d0c629ffca83178c85a608f719e02203841d40dd92db48715f9f41a732e139ac3cc7696a23adc87136bd8037a594e9f012102824a5e7b878f8d63887bdcb1b0982cdb0b375068b3798c4c96799476a19a389e000000000",
"rbf": true,
"coinSpecificData": {
"txid": "73b1ad97194e426031e5c692869de2d83dc2ff6033fc6f0ab5514345f92eaf0d",
"hash": "91deb6a9d0f5a37e2e83d1e602ba14cd9811fd3605f582154c9bd1337f7f4c8a",
"version": 2,
"size": 222,
"vsize": 141,
"weight": 561,
"locktime": 0,
"vin": [
{
"txid": "bccbebb64b1613ada74eefa96753088a80fefa53a10e42c66eef1899371bc096",
"vout": 0,
"scriptSig": {
"asm": "",
"hex": ""
},
"txinwitness": [
"304402204a5bdf8a8d19b0a19044b0c0de3ced92b92e8d0c629ffca83178c85a608f719e02203841d40dd92db48715f9f41a732e139ac3cc7696a23adc87136bd8037a594e9f01",
"02824a5e7b878f8d63887bdcb1b0982cdb0b375068b3798c4c96799476a19a389e"
],
"sequence": 0
}
],
"vout": [
{
"value": 0.00293135,
"n": 0,
"scriptPubKey": {
"asm": "0 aafd7386f99f4b508ec05ee8f7edc2e07126620a",
"desc": "addr(bc1q4t7h8phena94prkqtm500mwzupcjvcs2akcdy9)#qmxeweuu",
"hex": "0014aafd7386f99f4b508ec05ee8f7edc2e07126620a",
"address": "bc1q4t7h8phena94prkqtm500mwzupcjvcs2akcdy9",
"type": "witness_v0_keyhash"
}
},
{
"value": 0.00074022,
"n": 1,
"scriptPubKey": {
"asm": "0 a3de0fbba89c17d43093164ea955bad65bc260bf",
"desc": "addr(bc1q500qlwagnstagvynze82j4d66eduyc9lf64ksh)#mynfp6xy",
"hex": "0014a3de0fbba89c17d43093164ea955bad65bc260bf",
"address": "bc1q500qlwagnstagvynze82j4d66eduyc9lf64ksh",
"type": "witness_v0_keyhash"
}
}
],
"hex": "0200000000010196c01b379918ef6ec6420ea153fafe808a085367a9ef4ea7ad13164bb6ebcbbc000000000000000000020f79040000000000160014aafd7386f99f4b508ec05ee8f7edc2e07126620a2621010000000000160014a3de0fbba89c17d43093164ea955bad65bc260bf0247304402204a5bdf8a8d19b0a19044b0c0de3ced92b92e8d0c629ffca83178c85a608f719e02203841d40dd92db48715f9f41a732e139ac3cc7696a23adc87136bd8037a594e9f012102824a5e7b878f8d63887bdcb1b0982cdb0b375068b3798c4c96799476a19a389e000000000"
}
}
以太坊类型币的响应。交易数据包括:
1
和销毁值 2
)1
OK, 0
失败, -1
待定), 潜在的 error 消息, gasLimit, gasUsed, gasPrice, nonce, 输入 data0
转账,类型 1
合约创建,类型 2
合约销毁)<!-- https://eth1.trezor.io/tx/0xa6c8ae1f91918d09cf2bd67bbac4c168849e672fd81316fa1d26bb9b4fc0f790 -->
{
"txid": "0xa6c8ae1f91918d09cf2bd67bbac4c168849e672fd81316fa1d26bb9b4fc0f790",
"vin": [
{
"n": 0,
"addresses": ["0xd446089cf19C3D3Eb1743BeF3A852293Fd2C7775"],
"isAddress": true
}
],
"vout": [
{
"value": "5615959129349132871",
"n": 0,
"addresses": ["0xC36442b4a4522E871399CD717aBDD847Ab11FE88"],
"isAddress": true
}
],
"blockHash": "0x10ea8cfecda89d6d864c1d919911f819c9febc2b455b48c9918cee3c6cdc4adb",
"blockHeight": 16529834,
"confirmations": 3,
"blockTime": 1675204631,
"value": "5615959129349132871",
"fees": "19141662404282012",
"tokenTransfers": [
{
"type": "ERC20",
"from": "0xd446089cf19C3D3Eb1743BeF3A852293Fd2C7775",
"to": "0x3B685307C8611AFb2A9E83EBc8743dc20480716E",
"contract": "0x4E15361FD6b4BB609Fa63C81A2be19d873717870",
"name": "Fantom Token",
"symbol": "FTM",
"decimals": 18,
"value": "15362368338194882707417"
},
{
"type": "ERC20",
"from": "0xC36442b4a4522E871399CD717aBDD847Ab11FE88",
"to": "0x3B685307C8611AFb2A9E83EBc8743dc20480716E",
"contract": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
"name": "Wrapped Ether",
"symbol": "WETH",
"decimals": 18,
"value": "5615959129349132871"
},
{
"type": "ERC721",
"from": "0x0000000000000000000000000000000000000000",
"to": "0xd446089cf19C3D3Eb1743BeF3A852293Fd2C7775",
"contract": "0xC36442b4a4522E871399CD717aBDD847Ab11FE88",
"name": "Uniswap V3 Positions NFT-V1",
"symbol": "UNI-V3-POS",
"decimals": 18,
"value": "428189"
}
],
"ethereumSpecific": {
"status": 1,
"nonce": 505,
"gasLimit": 550941,
"gasUsed": 434686,
"gasPrice": "44035608242",
"maxPriorityFeePerGas": "44035608243",
"maxFeePerGas": "44035608244",
"baseFeePerGas": "2035608244",
"data": "0xac9650d800000000000000000000",
"parsedData": {
"methodId": "0xfa2b068f",
"name": "Mint",
"function": "mint(address, uint256, uint32, bytes32[], address)",
"params": [
{
"type": "address",
"values": ["0xa5fD1Da088598e88ba731B0E29AECF0BC2A31F82"]
},
{ "type": "uint256", "values": ["688173296"] },
{ "type": "uint32", "values": ["0"] }
]
},
"internalTransfers": [
{
"type": 0,
"from": "0xC36442b4a4522E871399CD717aBDD847Ab11FE88",
"to": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
"value": "5615959129349132871"
}
]
},
"addressAliases": {
"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2": {
"Type": "Contract",
"Alias": "Wrapped Ether"
},
"0xC36442b4a4522E871399CD717aBDD847Ab11FE88": {
"Type": "Contract",
"Alias": "Uniswap V3 Positions NFT-V1"
}
}
}
关于 blockTime
字段的说明:
confirmations > 0
),字段 blockTime
包含区块的时间confirmations == 0
),该字段包含运行中的 Blockbook 实例首次收到有关该交易通知的时间。此时间在不同的 Blockbook 实例中可能不同。以后端返回的确切格式返回交易数据,包括所有币种特定字段:
GET /api/v2/tx-specific/<txid>
示例响应:
{
"hex": "040000808...8e6e73cb009",
"txid": "7a0a0ff6f67bac2a856c7296382b69151949878de6fb0d01a8efa197182b2913",
"authdigest": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
"size": 1809,
"overwintered": true,
"version": 4,
"versiongroupid": "892f2085",
"locktime": 0,
"expiryheight": 495680,
"vin": [],
"vout": [],
"vjoinsplit": [],
"valueBalance": 0,
"valueBalanceZat": 0,
"vShieldedSpend": [
{
"cv": "50258bfa65caa9f42f4448b9194840c7da73afc8159faf7358140bfd0f237962",
"anchor": "6beb3b64ecb30033a9032e1a65a68899917625d1fdd2540e70f19f3078f5dd9b",
"nullifier": "08e5717f6606af7c2b01206ff833eaa6383bb49c7451534b2e16d588956fd10a",
"rk": "36841a9be87a7022445b77f433cdd0355bbed498656ab399aede1e5285e9e4a2",
"proof": "aecf824dbae8eea863ec6...73878c37391f01df520aa",
"spendAuthSig": "65b9477cb1ec5da...1178fe402e5702c646945197108339609"
},
{
"cv": "a5aab3721e33d6d6360eabd21cbd07524495f202149abdc3eb30f245d503678c",
"anchor": "6beb3b64ecb30033a9032e1a65a68899917625d1fdd2540e70f19f3078f5dd9b",
"nullifier": "60e790d6d0e12e777fb2b18bc97cf42a92b1e47460e1bd0b0ffd294c23232cc9",
"rk": "2d741695e76351597712b4a04d2a4e108a116f376283d2d104219b86e2930117",
"proof": "a0c2a6fdcbba966b9894...3a9c3118b76c8e2352d524cbb44c02decaeda7",
"spendAuthSig": "feea902e01eac9ebd...b43b4af6b607ce5b0b38f708"
}
],
"vShieldedOutput": [
{
"cv": "23db384cde862f20238a1004e57ba18f114acabc7fd2ac029757f82af5bd4cab",
"cmu": "3ff5a5ff521fabefb5287fef4feb2642d69ead5fe18e6ac717cfd76- **page**: 指定返回交易的页码,从 1 开始。如果超出范围,Blockbook 将返回最接近的可能页面。
- **pageSize**: 每次调用返回的交易数量(默认值和最大值为 1000)
- **from**, **to**: 返回的交易的过滤器,**from** 区块高度到 **to** 区块高度(默认为无过滤器)
- **details**: 指定请求返回的详细程度级别(默认为 **txids**)
- **basic**: 仅返回 xpub 余额,不包含任何派生地址和交易
- **tokens**: **basic** + 从 xpub 派生的 token(地址),受 **tokens** 参数的影响
- **tokenBalances**: **basic** + 从 xpub 派生的带有余额的 token(地址),受 **tokens** 参数的影响
- **txids**: **tokenBalances** + 交易 ID 列表,受 **from**,**to** 过滤器和分页的影响
- **txs**: **tokenBalances** + 带有详细信息的交易列表,受 **from**,**to** 过滤器和分页的影响
- **tokens**: 指定请求返回哪些 token(xpub 地址)(默认为 **nonzero**)
- **nonzero**: 仅返回余额不为零的地址
- **used**: 返回至少有一笔交易的地址
- **derived**: 返回所有派生地址
- **secondary**: 指定除加密货币价值外,还以哪种二级(法币)货币返回余额
响应(`Address` 类型):
```javascript
{
"page": 1,
"totalPages": 1,
"itemsOnPage": 1000,
"address": "dgub8sbe5Mi8LA4dXB9zPfLZW8arm...9Vjp2HHx91xdDEmWYpmD49fpoUYF",
"balance": "90000000",
"totalReceived": "3093381250",
"totalSent": "3083381250",
"unconfirmedBalance": "0",
"unconfirmedTxs": 0,
"txs": 5,
"txids": [
"383ccb5da16fccad294e24a2ef77bdee5810573bb1b252d8b2af4f0ac8c4e04c",
"75fb93d47969ac92112628e39148ad22323e96f0004c18f8c75938cffb6c1798",
"e8cd84f204b4a42b98e535e72f461dd9832aa081458720b0a38db5856a884876",
"57833d50969208091bd6c950599a1b5cf9d66d992ae8a8d3560fb943b98ebb23",
"9cfd6295f20e74ddca6dd816c8eb71a91e4da70fe396aca6f8ce09dc2947839f",
],
"usedTokens": 2,
"tokens": [
{
"type": "XPUBAddress",
"name": "DUCd1B3YBiXL5By15yXgSLZtEkvwsgEdqS",
"path": "m/44'/3'/0'/0/0",
"transfers": 3,
"decimals": 8,
"balance": "90000000",
"totalReceived": "2903986975",
"totalSent": "2803986975"
},
{
"type": "XPUBAddress",
"name": "DKu2a8Wo6zC2dmBBYXwUG3fxWDHbKnNiPj",
"path": "m/44'/3'/0'/1/0",
"transfers": 2,
"decimals": 8,
"balance": "0",
"totalReceived": "279394275",
"totalSent": "279394275"
}
],
"secondaryValue": 21195.47633568
}
注意:usedTokens 始终返回 xpub 的 used 地址总数。
返回地址或 xpub 的未花费交易输出数组,仅适用于比特币类型币。默认情况下,该列表包含已确认和未确认的交易。查询参数 confirmed=true 禁用返回未确认的交易。返回的 utxo 按区块高度排序,最新区块在前。对于 xpub 或输出描述符,响应还包含 utxo 的地址和推导路径。
未确认的 utxo 没有 height 字段,confirmations 字段的值为 0,并且可能包含 lockTime 字段(如果非零)。
Coinbase utxo 的 coinbase 字段设置为 true,但由于性能原因,仅限于最小 coinbase 确认限制(100)。超过此限制后,utxo 不会被检测为 coinbase。
GET /api/v2/utxo/<address|xpub|descriptor>[?confirmed=true]
响应(Utxo[]
类型):
[
{
txid: '13d26cd939bf5d155b1c60054e02d9c9b832a85e6ec4f2411be44b6b5a2842e9',
vout: 0,
value: '1422303206539',
confirmations: 0,
lockTime: 2648100,
},
{
txid: 'a79e396a32e10856c97b95f43da7e9d2b9a11d446f7638dbd75e5e7603128cac',
vout: 1,
value: '39748685',
height: 2648043,
confirmations: 47,
coinbase: true,
},
{
txid: 'de4f379fdc3ea9be063e60340461a014f372a018d70c3db35701654e7066b3ef',
vout: 0,
value: '122492339065',
height: 2646043,
confirmations: 2047,
},
{
txid: '9e8eb9b3d2e8e4b5d6af4c43a9196dfc55a05945c8675904d8c61f404ea7b1e9',
vout: 0,
value: '142771322208',
height: 2644885,
confirmations: 3205,
},
];
返回有关区块的信息,包括交易,受分页限制。
GET /api/v2/block/<block height|block hash>
响应(Block
类型):
{
"page": 1,
"totalPages": 1,
"itemsOnPage": 1000,
"hash": "760f8ed32894ccce9c1ea11c8a019cadaa82bcb434b25c30102dd7e43f326217",
"previousBlockHash": "786a1f9f38493d32fd9f9c104d748490a070bc74a83809103bcadd93ae98288f",
"nextBlockHash": "151615691b209de41dda4798a07e62db8429488554077552ccb1c4f8c7e9f57a",
"height": 2648059,
"confirmations": 47,
"size": 951,
"time": 1553096617,
"version": 6422787,
"merkleRoot": "6783f6083788c4f69b8af23bd2e4a194cf36ac34d590dfd97e510fe7aebc72c8",
"nonce": "0",
"bits": "1a063f3b",
"difficulty": "2685605.260733312",
"txCount": 2,
"txs": [
{
"txid": "2b9fc57aaa8d01975631a703b0fc3f11d70671953fc769533b8078a04d029bf9",
"vin": [
{
"n": 0,
"value": "0"
}
],
"vout": [
{
"value": "1000100000000",
"n": 0,
"addresses": [
"D6ravJL6Fgxtgp8k2XZZt1QfUmwwGuLwQJ"
],
"isAddress": true
}
],
"blockHash": "760f8ed32894ccce9c1ea11c8a019cadaa82bcb434b25c30102dd7e43f326217",
"blockHeight": 2648059,
"confirmations": 47,
"blockTime": 1553096617,
"value": "1000100000000",
"valueIn": "0",
"fees": "0"
},
{
"txid": "d7ce10ecf9819801ecd6ee045cbb33436eef36a7db138206494bacedfd2832cf",
"vin": [
{
"n": 0,
"addresses": [
"9sLa1AKzjWuNTe1CkLh5GDYyRP9enb1Spp"
],
"isAddress": true,
"value": "1277595845202"
}
],
"vout": [
{
"value": "9900000000",
"n": 0,
"addresses": [
"DMnjrbcCEoeyvr7GEn8DS4ZXQjwq7E2zQU"
],
"isAddress": true
},
{
"value": "1267595845202",
"n": 1,
"spent": true,
"addresses": [
"9sLa1AKzjWuNTe1CkLh5GDYyRP9enb1Spp"
],
"isAddress": true
}
],
"blockHash": "760f8ed32894ccce9c1ea11c8a019cadaa82bcb434b25c30102dd7e43f326217",
"blockHeight": 2648059,
"confirmations": 47,
"blockTime": 1553096617,
"value": "1277495845202",
"valueIn": "1277595845202",
"fees": "100000000"
}
]
}
注意:Blockbook 始终遵循其连接的后端的主链。如果后端存在回滚重组(rollback-reorg),Blockbook 也会执行回滚。当你按高度请求区块时,你将始终获得主链区块。如果你按哈希值(hash)请求区块,你可能会从另一个分叉获得该区块,但这不能保证(后端可能不会保留它)。
将新交易发送到后端。
GET /api/v2/sendtx/<hex tx data>
POST /api/v2/sendtx/ (request body 中的十六进制交易数据) 注意:末尾的 '/' 符号是强制性的。
响应:
{
"result": "7c3be24063f268aaa1ed81b64776798f56088757641a34fb156c4f51ed2e9d25"
}
或者在发生错误时
{
"error": {
"message": "错误消息"
}
}
返回指定日期的可用货币汇率 Ticker(辅助货币)列表,以及实际数据时间戳。
GET /api/v2/tickers-list/?timestamp=<timestamp>
查询参数:
示例响应(AvailableVsCurrencies
类型):
{
"ts":1574346615,
"available_currencies": [
"eur",
"usd"
]
}
返回指定货币和日期的货币汇率。如果该货币在该特定时间戳不可用,将返回下一个最接近的汇率。 所有响应都包含实际的汇率时间戳。
GET /api/v2/tickers/[?currency=<currency>×tamp=<timestamp>]
可选查询参数:
示例响应(无参数,FiatTicker
类型):
{
"ts": 1574346615,
"rates": {
"eur": 7134.1,
"usd": 7914.5
}
}
示例响应(currency=usd):
{
"ts": 1574346615,
"rates": {
"usd": 7914.5
}
}
示例错误响应(例如,汇率不可用,货币不正确...):
{
"ts":7980386400,
"rates": {
"usd": -1
}
}
返回指定 XPUB 或地址的余额历史记录。
GET /api/v2/balancehistory/<XPUB | address>?from=<dateFrom>&to=<dateTo>[&fiatcurrency=<currency>&groupBy=<groupBySeconds>]
查询参数:
可选查询参数:
示例响应(未指定 fiatcurrency,BalanceHistory[]
类型):
[
{
"time": 1578391200,
"txs": 5,
"received": "5000000",
"sent": "0",
"sentToSelf":"100000",
"rates": {
"usd": 7855.9,
"eur": 6838.13,
...
}
},
{
"time": 1578488400,
"txs": 1,
"received": "0",
"sent": "5000000",
"sentToSelf":"0",
"rates": {
"usd": 8283.11,
"eur": 7464.45,
...
}
}
]
示例响应(fiatcurrency=usd):
[
{
time: 1578391200,
txs: 5,
received: '5000000',
sent: '0',
sentToSelf: '0',
rates: {
usd: 7855.9,
},
},
{
time: 1578488400,
txs: 1,
received: '0',
sent: '5000000',
sentToSelf: '0',
rates: {
usd: 8283.11,
},
},
];
示例响应(fiatcurrency=usd&groupBy=172800):
[
{
time: 1578355200,
txs: 6,
received: '5000000',
sent: '5000000',
sentToSelf: '0',
rates: {
usd: 7734.45,
},
},
];
sentToSelf
的值是指从同一地址发送到同一地址或在 xpub 的地址内发送的金额。
Websocket 接口在 /websocket/
提供。可以使用 /test-websocket.html
中的 Blockbook Websocket 测试页面浏览该接口。
Websocket 接口提供以下请求:
客户端可以订阅以下事件:
subscribeNewBlock
- 新的区块添加到区块链subscribeNewTransaction
- 新的交易添加到区块链(所有地址)subscribeAddresses
- 为给定地址(地址列表)添加到内存池的新交易subscribeFiatRates
- 新的货币汇率 ticker每个连接对于给定的事件始终只能有一个订阅,即,新的地址列表将替换以前的地址列表。
默认情况下未启用 subscribeNewTransaction 事件。要启用支持,必须使用 -enablesubnewtx
标志运行 blockbook。
注意:如果后端(区块链)发生重组(reorg),如果重组更深,你将获得具有相同甚至更小高度的新区块哈希。
Websocket 通信格式(WsReq
类型)
{
"id":"1", //一个用于帮助识别响应的 ID
"method":"<你想要调用的方法>",
"params":<参数(与 API 调用中的相同)>
}
订阅某个地址(或多个地址)的示例
{
"id":"1",
"method":"subscribeAddresses",
"params":{
"addresses":["mnYYiDCb2JZXnqEeXta1nkt5oCVe2RVhJj", "tb1qp0we5epypgj4acd2c4au58045ruud2pd6heuee"]
}
}
传统 API 是 Bitcore Insight 提供的 API 的兼容子集。它仅支持比特币类型的币。REST/socket.io 请求的详细信息可以在 Insight 的文档中找到。
GET /api/v1/block-index/<block height>
GET /api/v1/tx/<txid>
GET /api/v1/address/<address>
GET /api/v1/utxo/<address>
GET /api/v1/block/<block height | block hash>
GET /api/v1/estimatefee/<number of blocks>
GET /api/v1/sendtx/<hex tx data>
POST /api/v1/sendtx/ (request body 中的十六进制交易数据)
Socket.io 接口在 /socket.io/
提供。也可以使用 /test-socketio.html
中的 Blockbook Socket.io 测试页面浏览该接口。
传统 API 按原样提供,不会进一步开发。
传统 API 目前(截至 Blockbook v0.5.0)也可以在没有 /v1/ 前缀的情况下访问,但是在将来的版本中,将删除无版本访问。
- 原文链接: github.com/trezor/blockb...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!