Bitcoin chain data over REST. Every endpoint below exists on this service; every
sample response was captured from it when this page was built (2026-10-20 15:08 UTC).
Per key: 120 requests a minute. Per account:
1000 a day on the free tier. The service also has a global
ceiling of 500 requests per second, so a burst from many
keys is capped before it reaches the node.
Addresses 11
Everything about one address: history, coins, lifetime totals, counterparties.
GET/api/address/{address}no key
address lifetime figures
| name | in | | type |
|---|
| address | path | required | string |
curl -s https://api.blocknil.com/api/address/31nXEifPqiUL3hqfTP5epd93s3ShNLnWL4
example response
{
"address": "31nXEifPqiUL3hqfTP5epd93s3ShNLnWL4",
"chain_stats": {
"funded_txo_count": 162,
"funded_txo_sum": 3425667432317,
"spent_txo_count": 146,
"spent_txo_sum": 3397905766405,
"tx_count": 161
},
"mempool_stats": {
"funded_txo_count": 0,
"funded_txo_sum": 0,
"spent_txo_count": 0,
"spent_txo_sum": 0,
"tx_count": 0
}
}GET/api/address/{address}/txsno key
address transactions, newest first
| name | in | | type |
|---|
| address | path | required | string |
| limit | query | optional | integer |
curl -s https://api.blocknil.com/api/address/31nXEifPqiUL3hqfTP5epd93s3ShNLnWL4/txs
example response
[
{
"fee": 2568,
"locktime": 0,
"sigops": 60,
"size": 1288,
"status": {
"block_hash": "00000000000000000000c56a68e1e73bbe4e5d39271116ccca3212b8e3123684",
"block_height": 972246,
"block_time": 1792464134,
"confirmed": true
},
"txid": "e7d733f1eb56d0573d102a9a97a7d18ad36d091a252fbfcbb98da0b9563825ea",
"version": 2,
"vin": [
{
"inner_redeemscript_asm": "OP_PUSHNUM_9 OP_PUSHBYTES_33 02353d0d4938efd4c6ee52c69cd277361b4a8242dc02365af3cb8cab9c13cfd092 OP_PUSHBYTES_33 02ac90d747853c8476f566ceaaa89e1141c1e4bd730a03540d1aadbd7f9cbdae79 OP_PUSHBYTES_33 02b9e6acca3d565b520f3d0b03fd9a62b8475600e12dcdd88ce69a0d9112f9ef5a OP_PUSHBYTES_33 02cad48629c4cc31cd85a9cbe87a4753b5886342a91ee4cabcd6992ea275a66325 OP_PUSHBYTES_33 02f879ee61a72c0fb7ac970e17a553dbec0c731415a414cef67fd7750ea3d86ce5 OP_PUSHBYTES_33 02fc9379f6563a3314ef19c44cdd17580a2622d5514b902457f25c5fdf4b11c52d OP_PUSHBYTES_33 034120d924145599f3cf70484f9df0fe1fc8c1eb883e0f6aa27d26514741d1babd OP_PUSHBYTES_33 0354674dfa3631ee127ff0a318369f42bd40e6de8f2372828db1adf829d78c87ec OP_PUSHBYTES_33 03612409f16d1fa163070959ef686b63337e2967048c136d453d741df830086ff5 OP_PUSHBYTES_33 0390b207e5a93c10d1fd5fa4f49d6e4940e3ac7d974c6e1c345e37bfe4d22eb419 OP_PUSHBYTES_33 03be2a290c8a87f8648e4a14b1211c4b4e5743d1c01fc0416be8dda59ceabd55d1 OP_PUSHBYTES_33 03c4c2afcc6f8329077e62b1624223d34046c1342a46826418adaa3ab0425b239a OP_PUSHBYTES_33 03d23208e18e950d185832643a37e2f3d578c992a0eb71adea8c9a76f5a1e13f8c OP_PUSHBYTES_33 03e3ef1866725177c76aeea52ea723e2c2f940f76c02f074824789c77425dc8
… (truncated for this page)GET/api/address/{address}/txs/chainno key
confirmed transactions, newest first
| name | in | | type |
|---|
| address | path | required | string |
curl -s https://api.blocknil.com/api/address/31nXEifPqiUL3hqfTP5epd93s3ShNLnWL4/txs/chain
example response
[
{
"fee": 2568,
"locktime": 0,
"sigops": 60,
"size": 1288,
"status": {
"block_hash": "00000000000000000000c56a68e1e73bbe4e5d39271116ccca3212b8e3123684",
"block_height": 972246,
"block_time": 1792464134,
"confirmed": true
},
"txid": "e7d733f1eb56d0573d102a9a97a7d18ad36d091a252fbfcbb98da0b9563825ea",
"version": 2,
"vin": [
{
"inner_redeemscript_asm": "OP_PUSHNUM_9 OP_PUSHBYTES_33 02353d0d4938efd4c6ee52c69cd277361b4a8242dc02365af3cb8cab9c13cfd092 OP_PUSHBYTES_33 02ac90d747853c8476f566ceaaa89e1141c1e4bd730a03540d1aadbd7f9cbdae79 OP_PUSHBYTES_33 02b9e6acca3d565b520f3d0b03fd9a62b8475600e12dcdd88ce69a0d9112f9ef5a OP_PUSHBYTES_33 02cad48629c4cc31cd85a9cbe87a4753b5886342a91ee4cabcd6992ea275a66325 OP_PUSHBYTES_33 02f879ee61a72c0fb7ac970e17a553dbec0c731415a414cef67fd7750ea3d86ce5 OP_PUSHBYTES_33 02fc9379f6563a3314ef19c44cdd17580a2622d5514b902457f25c5fdf4b11c52d OP_PUSHBYTES_33 034120d924145599f3cf70484f9df0fe1fc8c1eb883e0f6aa27d26514741d1babd OP_PUSHBYTES_33 0354674dfa3631ee127ff0a318369f42bd40e6de8f2372828db1adf829d78c87ec OP_PUSHBYTES_33 03612409f16d1fa163070959ef686b63337e2967048c136d453d741df830086ff5 OP_PUSHBYTES_33 0390b207e5a93c10d1fd5fa4f49d6e4940e3ac7d974c6e1c345e37bfe4d22eb419 OP_PUSHBYTES_33 03be2a290c8a87f8648e4a14b1211c4b4e5743d1c01fc0416be8dda59ceabd55d1 OP_PUSHBYTES_33 03c4c2afcc6f8329077e62b1624223d34046c1342a46826418adaa3ab0425b239a OP_PUSHBYTES_33 03d23208e18e950d185832643a37e2f3d578c992a0eb71adea8c9a76f5a1e13f8c OP_PUSHBYTES_33 03e3ef1866725177c76aeea52ea723e2c2f940f76c02f074824789c77425dc8
… (truncated for this page)GET/api/address/{address}/txs/chain/{last_seen_txid}no key
confirmed transactions after a txid
| name | in | | type |
|---|
| address | path | required | string |
| last_seen_txid | path | required | string |
curl -s https://api.blocknil.com/api/address/31nXEifPqiUL3hqfTP5epd93s3ShNLnWL4/txs/chain/0000000000000000000000000000000000000000000000000000000000000000
example response
[]
GET/api/address/{address}/txs/mempoolno key
always empty: this service indexes confirmed data only
| name | in | | type |
|---|
| address | path | required | string |
curl -s https://api.blocknil.com/api/address/31nXEifPqiUL3hqfTP5epd93s3ShNLnWL4/txs/mempool
example response
[]
GET/api/address/{address}/utxono key
unspent outputs from the coin index
| name | in | | type |
|---|
| address | path | required | string |
curl -s https://api.blocknil.com/api/address/31nXEifPqiUL3hqfTP5epd93s3ShNLnWL4/utxo
example response
[
{
"status": {
"block_hash": "000000000000000000001da5a9a24b40fe5b0f68625c87b9d6d264992e64cde7",
"block_height": 862081,
"block_time": 1726814600,
"confirmed": true
},
"txid": "0ab5b9f9c53987205f8100a0f8dd0c650621a8f61c717e4ae5dbfa30c58f937f",
"value": 600,
"vout": 0
},
{
"status": {
"block_hash": "000000000000000000012fe05a01009a5b93ad220656a03de74b9abc2f183dbd",
"block_height": 871944,
"block_time": 1732558077,
"confirmed": true
},
"txid": "e4a3c774068043e5578a006aa5aeff0703ea49a2be17f678ef6cff4361233af2",
"value": 540,
"vout": 1861
},
{
"status": {
"block_hash": "00000000000000000000d4efa8fbfc5a5661d9e1bc2e8647c5e29d4cfde4a496",
"block_height": 874497,
"block_time": 1734061768,
"confirmed": true
},
"txid": "d09837736570e8c7a352a98bd653909a9891d68c173618c43ab286749c651457",
"value": 600,
"vout": 0
},
{
"status": {
"block_hash": "00000000000000000000bede317e01923e6ebeebf7211ca9a9b832e7a66444d9",
"block_height": 877734,
"block_time": 1735963051,
"confirmed": true
},
"txid": "54d6c6495735ecc407af9ad2f08128fea0606542df0598279fcb7ec70f1aa0f5",
"value": 547,
"vout": 0
},
{
"status": {
"block_hash": "000000000000000000002ad6512e3f00fbaf7f295cafa5536e1edb455e9376ef",
"block_height": 879016,
"block_time": 1736731441,
"confirmed": true
},
"txid": "0115699df61c5f1b8509777228f4cb8208c4c4f9f3075f2624d7ef51fb08b7f3",
"value": 600,
"vout": 0
},
{
… (truncated for this page)GET/api/v1/validate-address/{address}no key
is this a valid mainnet address
| name | in | | type |
|---|
| address | path | required | string |
curl -s https://api.blocknil.com/api/v1/validate-address/31nXEifPqiUL3hqfTP5epd93s3ShNLnWL4
example response
{
"address": "31nXEifPqiUL3hqfTP5epd93s3ShNLnWL4",
"isscript": true,
"isvalid": true,
"iswitness": false,
"scriptPubKey": "a914010a8ca3f34f0b6045ad2a702a7eaf91b064756c87"
}GET/v1/address/{address}/analyzebearer key
address summary: balance, totals, counts, first and last seen
| name | in | | type |
|---|
| address | path | required | string |
curl -s https://api.blocknil.com/v1/address/31nXEifPqiUL3hqfTP5epd93s3ShNLnWL4/analyze \
-H "Authorization: Bearer $KEY"
Requires a key, so no sample is captured at build time — the shape is in /v1/openapi.json and in the examples above.
GET/v1/address/{address}/counterpartiesbearer key
counterparties over the address's whole history
| name | in | | type |
|---|
| address | path | required | string |
| page | query | optional | integer |
| limit | query | optional | integer |
curl -s https://api.blocknil.com/v1/address/31nXEifPqiUL3hqfTP5epd93s3ShNLnWL4/counterparties \
-H "Authorization: Bearer $KEY"
Requires a key, so no sample is captured at build time — the shape is in /v1/openapi.json and in the examples above.
GET/v1/address/{address}/txsbearer key
address transaction history, newest first, paged
| name | in | | type |
|---|
| address | path | required | string |
| page | query | optional | integer |
| limit | query | optional | integer |
curl -s https://api.blocknil.com/v1/address/31nXEifPqiUL3hqfTP5epd93s3ShNLnWL4/txs \
-H "Authorization: Bearer $KEY"
Requires a key, so no sample is captured at build time — the shape is in /v1/openapi.json and in the examples above.
GET/v1/address/{address}/utxosbearer key
unspent outputs, paged
| name | in | | type |
|---|
| address | path | required | string |
| page | query | optional | integer |
| limit | query | optional | integer |
curl -s https://api.blocknil.com/v1/address/31nXEifPqiUL3hqfTP5epd93s3ShNLnWL4/utxos \
-H "Authorization: Bearer $KEY"
Requires a key, so no sample is captured at build time — the shape is in /v1/openapi.json and in the examples above.
Blocks 21
Blocks by hash or height, their transactions, and the chain's recent blocks.
GET/api/block-height/{height}no key
block hash at a height, plain text
| name | in | | type |
|---|
| height | path | required | integer |
curl -s https://api.blocknil.com/api/block-height/972340
example response
000000000000000000001633ba79c7c26cda007a8ade3cd1d432ca20e7896b90
GET/api/block/{hash}no key
block details
| name | in | | type |
|---|
| hash | path | required | string |
curl -s https://api.blocknil.com/api/block/000000000000000000001633ba79c7c26cda007a8ade3cd1d432ca20e7896b90
example response
{
"bits": 386007187,
"difficulty": 140577680051919.62,
"height": 972340,
"id": "000000000000000000001633ba79c7c26cda007a8ade3cd1d432ca20e7896b90",
"mediantime": 1792504663,
"merkle_root": "343f6a33800cf1e2fce559ccc72faa2e1f8040b7054801aa71bd39688cb6b5d9",
"nonce": 648127321,
"previousblockhash": "0000000000000000000187a16af5f61531105458e4249fc39497d70afa1eb94f",
"size": 2713050,
"timestamp": 1792504963,
"tx_count": 3175,
"version": 879468544,
"weight": 3997563
}GET/api/block/{hash}/headerno key
80-byte header, hex
| name | in | | type |
|---|
| hash | path | required | string |
curl -s https://api.blocknil.com/api/block/000000000000000000001633ba79c7c26cda007a8ade3cd1d432ca20e7896b90/header
example response
00a06b344fb91efa0ad79794c39f24e45854103115f6f56aa18701000000000000000000d9b5b68c6839bd71aa014805b740801f2eaa2fc7cc59e5fce2f10c80336a3f348374d76a9300021759a3a126
GET/api/block/{hash}/rawno key
serialized block, hex
| name | in | | type |
|---|
| hash | path | required | string |
curl -s https://api.blocknil.com/api/block/000000000000000000001633ba79c7c26cda007a8ade3cd1d432ca20e7896b90/raw
example response
00a06b344fb91efa0ad79794c39f24e45854103115f6f56aa18701000000000000000000d9b5b68c6839bd71aa014805b740801f2eaa2fc7cc59e5fce2f10c80336a3f348374d76a9300021759a3a126fd670c010000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff640334d60e2cfabe6d6dba511d7b94268d1cfda67261977f969d54f1002be4f192a3bc027009f25ba1ff10000000f09f909f092f4632506f6f6c2f620000000000000000000000000000000000000000000000000000000000000000000000050033000000000000000722020000000000001976a914c6740a12d0a7d556f89782bf5faf0e12cf25a63988ac012aa412000000001976a91469f2a01f4ff9e6ac24df9062e9828753474b348088ac00000000000000002f6a2d434f5245017c706ca44a28fdd25761250961276bd61d5aa87be7ec323813c943336c579e238228a8ebd096a7e50000000000000000266a2448617468b437962e83d09b309a27d5af2732be64404c2eb10ec23072b9dad0c1236af19c00000000000000002c6a4c2952534b424c4f434b3ac0c89253b1e9ad0beb6bd507d3bad50d26656a0dcf95575a2534e822008e89c70000000000000000296a27737973dac1138de43f5d2e695477e064678c5bdc7d1f749b8f4cd1ace4e0b2d99a43f0a88923000000000000000000266a24aa21a9edef2f8cd69edc6a90b7a55ce8e2f720d4dbebf9b9e9d8c320a632b1f99c72f6bf0120000000000000000000000000000000000000000000000000000000000000000056375540010000000001050dfb12069e5c8c2978ae0a59a3c341a5f2c8eff2fbd3265e4834ffef087e10370200000000ffffffffa2b4f35decb9950729bd10d2b3d9199914a57c338c45e845224e50a6f29e74ed0100000000fffffffffbc6f6b0f7ad3b759ca6527236df1ce76d56883a2ef6ca9c063a90f5729970f00100000000ffffffff1a78a68889829aa1f41729ffe3fa5363bedd862f4897d0b3d6647d6c53c5a9f50100000000ffffffffc50dd766afe56054f4b46adfa23a0be48226a7018eae1f69f6f85e041d2140b50000000000ff
… (truncated for this page)
GET/api/block/{hash}/statusno key
is this block the chain's block at its height
| name | in | | type |
|---|
| hash | path | required | string |
curl -s https://api.blocknil.com/api/block/000000000000000000001633ba79c7c26cda007a8ade3cd1d432ca20e7896b90/status
example response
{
"height": 972340,
"in_best_chain": true,
"next_best": "00000000000000000001ca70f5d9257af6d9083c4d001c0ce48e449a5a864723"
}GET/api/block/{hash}/txid/{index}no key
one txid of a block, plain text
| name | in | | type |
|---|
| hash | path | required | string |
| index | path | required | integer |
curl -s https://api.blocknil.com/api/block/000000000000000000001633ba79c7c26cda007a8ade3cd1d432ca20e7896b90/txid/1
example response
7949cb7908d9a1ea4532f826e067cbb9b2028f773dac355c94c3f12ca25e9a5e
GET/api/block/{hash}/txidsno key
every txid in block order
| name | in | | type |
|---|
| hash | path | required | string |
curl -s https://api.blocknil.com/api/block/000000000000000000001633ba79c7c26cda007a8ade3cd1d432ca20e7896b90/txids
example response
[
"6b8782bda86c3369eed29ddf05353e0a6aca3f09639ef8ec86e5edf5a140ff06",
"7949cb7908d9a1ea4532f826e067cbb9b2028f773dac355c94c3f12ca25e9a5e",
"6122894e69cff2caf07b643dac57cb52819f1c72af3f80460688f54ed718c36b",
"0fe14b62e6e016b48a8f995e128ce14297e82a9e62e2a073de594ca4d8ef5941",
"21b0e65d1e94dc551297ac4e052e484b2f60158eeec628737b169c836446930a",
"d1a270dba37bc01a87d0249f03eacd61b49e1721187acc1a6cb45df6e077b28c",
"a5c4020c64df331d3279683c332d355c9591a0940cc60d76b04e1822240f6ce7",
"cb909a074ff3e5e02c8af815d10cc75d3e42cf31c20cda2e11a1037e393d724c",
"88add37789d5ed4cec5582ecce3a8dcce4317f7ff1acf0d69f7aabb0663f4d59",
"8e68e8ecb14afeea1a4925db1b48266355e0261f874bf3e364b280f45b499536",
"8abe6a21a2eda4b8dd7dcca5ed7df6228199e262bdebd3bb16325b9c804aba69",
"ae342a5ddcd741efb452a7ea999feb0c3dd530e67bec8631201ead949d6c74f7",
"3df22b122528ee82145609b00df65d3c09746c9847234288bc37450fe53d23f9",
"1f6231254976d9e6a840104991efff3837ac2f025ce2a33f9ddad499f0b10da0",
"7ad31c492b44c9915c9126610ea3d33ca1f91193faf70945b3283b4114a79271",
"4f050c99bea556d5a1ef0b71254e759cfe4fe28ceb8f04490f93d3f0f894bdc5",
"45843923cde461e7c5e3a0e72844b179aa71c9a726c001476bb830078d62f385",
"534a50c5af82593bfbd255cf7a0cd2a8e77870492d03c1446eef8dbf89100a05",
"5838a6984336cd23353864610a72f725f28bc9956688dd028380d2d64b15075e",
"0f895eb60e200546f7edc2a0337aca23da9cbbcf1ccf22fbcdba879d15b5d78b",
"73dd5a5c89c19f5869124cea96dcfb5576e42b8bb5ef283aef20e6c99fe7f775",
"f511fe0c8ef834a28d0706f331ab29e25c38661ef404b4c56a717309c1a79c5a",
"05146419c0454d8a689d6903bff7b9040fcc0adc416e31e8ca4add7
… (truncated for this page)
GET/api/block/{hash}/txsno key
transaction bodies, paged
| name | in | | type |
|---|
| hash | path | required | string |
| limit | query | optional | integer |
curl -s https://api.blocknil.com/api/block/000000000000000000001633ba79c7c26cda007a8ade3cd1d432ca20e7896b90/txs
example response
[
{
"fee": 0,
"locktime": 1079326550,
"sigops": 8,
"size": 508,
"status": {
"block_hash": "000000000000000000001633ba79c7c26cda007a8ade3cd1d432ca20e7896b90",
"block_height": 972340,
"block_time": 1792504963,
"confirmed": true
},
"txid": "6b8782bda86c3369eed29ddf05353e0a6aca3f09639ef8ec86e5edf5a140ff06",
"version": 1,
"vin": [
{
"is_coinbase": true,
"prevout": null,
"scriptsig": "0334d60e2cfabe6d6dba511d7b94268d1cfda67261977f969d54f1002be4f192a3bc027009f25ba1ff10000000f09f909f092f4632506f6f6c2f620000000000000000000000000000000000000000000000000000000000000000000000050033000000",
"scriptsig_asm": "OP_PUSHBYTES_3 34d60e OP_PUSHBYTES_44 fabe6d6dba511d7b94268d1cfda67261977f969d54f1002be4f192a3bc027009f25ba1ff10000000f09f909f OP_PUSHBYTES_9 2f4632506f6f6c2f62 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_PUSHBYTES_5 0033000000",
"sequence": 0,
"txid": "0000000000000000000000000000000000000000000000000000000000000000",
"vout": 4294967295,
"witness": [
"0000000000000000000000000000000000000000000000000000000000000000"
]
}
],
"vout": [
{
"scriptpubkey": "76a914c6740a12d0a7d556f89782bf5faf0e12cf25a63988ac",
"scriptpubkey_address": "1K6KoYC69NnafWJ7YgtrpwJxBLiijWqwa6",
"scriptpubkey_asm": "OP_DUP OP_HASH160 OP_PUSHBYTES_20 c6740a12d0a7d556f89782bf5faf0e12cf25a639 O
… (truncated for this page)GET/api/block/{hash}/txs/{start_index}no key
transaction bodies from an index
| name | in | | type |
|---|
| hash | path | required | string |
| start_index | path | required | integer |
curl -s https://api.blocknil.com/api/block/000000000000000000001633ba79c7c26cda007a8ade3cd1d432ca20e7896b90/txs/0
example response
[
{
"fee": 0,
"locktime": 1079326550,
"sigops": 8,
"size": 508,
"status": {
"block_hash": "000000000000000000001633ba79c7c26cda007a8ade3cd1d432ca20e7896b90",
"block_height": 972340,
"block_time": 1792504963,
"confirmed": true
},
"txid": "6b8782bda86c3369eed29ddf05353e0a6aca3f09639ef8ec86e5edf5a140ff06",
"version": 1,
"vin": [
{
"is_coinbase": true,
"prevout": null,
"scriptsig": "0334d60e2cfabe6d6dba511d7b94268d1cfda67261977f969d54f1002be4f192a3bc027009f25ba1ff10000000f09f909f092f4632506f6f6c2f620000000000000000000000000000000000000000000000000000000000000000000000050033000000",
"scriptsig_asm": "OP_PUSHBYTES_3 34d60e OP_PUSHBYTES_44 fabe6d6dba511d7b94268d1cfda67261977f969d54f1002be4f192a3bc027009f25ba1ff10000000f09f909f OP_PUSHBYTES_9 2f4632506f6f6c2f62 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_0 OP_PUSHBYTES_5 0033000000",
"sequence": 0,
"txid": "0000000000000000000000000000000000000000000000000000000000000000",
"vout": 4294967295,
"witness": [
"0000000000000000000000000000000000000000000000000000000000000000"
]
}
],
"vout": [
{
"scriptpubkey": "76a914c6740a12d0a7d556f89782bf5faf0e12cf25a63988ac",
"scriptpubkey_address": "1K6KoYC69NnafWJ7YgtrpwJxBLiijWqwa6",
"scriptpubkey_asm": "OP_DUP OP_HASH160 OP_PUSHBYTES_20 c6740a12d0a7d556f89782bf5faf0e12cf25a639 O
… (truncated for this page)GET/api/blocksno key
the ten blocks ending at the tip
curl -s https://api.blocknil.com/api/blocks
example response
[
{
"bits": 386007187,
"difficulty": 140577680051919.62,
"height": 972342,
"id": "000000000000000000003524d2ae7205c8ac854deb3d9afe5c3e8f8a5296e352",
"mediantime": 1792504868,
"merkle_root": "a8662740e2a15c11640cbfe36164499177c85779e0ad8de2a9a98b6672241d94",
"nonce": 988434555,
"previousblockhash": "00000000000000000001ca70f5d9257af6d9083c4d001c0ce48e449a5a864723",
"size": 1527180,
"timestamp": 1792508622,
"tx_count": 3985,
"version": 537944064,
"weight": 3993030
},
{
"bits": 386007187,
"difficulty": 140577680051919.62,
"height": 972341,
"id": "00000000000000000001ca70f5d9257af6d9083c4d001c0ce48e449a5a864723",
"mediantime": 1792504674,
"merkle_root": "b479289ac7890ed2a07494f1958edafc9ea7e2732354ce680e9f9d8df412baa1",
"nonce": 1587264058,
"previousblockhash": "000000000000000000001633ba79c7c26cda007a8ade3cd1d432ca20e7896b90",
"size": 1784078,
"timestamp": 1792505795,
"tx_count": 3137,
"version": 541122560,
"weight": 3997505
},
{
"bits": 386007187,
"difficulty": 140577680051919.62,
"height": 972340,
"id": "000000000000000000001633ba79c7c26cda007a8ade3cd1d432ca20e7896b90",
"mediantime": 1792504663,
"merkle_root": "343f6a33800cf1e2fce559ccc72faa2e1f8040b7054801aa71bd39688cb6b5d9",
"nonce": 648127321,
"previousblockhash": "0000000000000000000187a16af5f61531105458e4249fc39497d70afa1eb94f",
"size": 2713050,
"timestamp": 1792504963,
"tx_count": 3175,
"version": 879468544,
"weight": 3997563
},
{
"bits": 386007187
… (truncated for this page)GET/api/blocks/tip/hashno key
tip hash, plain text
curl -s https://api.blocknil.com/api/blocks/tip/hash
example response
000000000000000000003524d2ae7205c8ac854deb3d9afe5c3e8f8a5296e352
GET/api/blocks/tip/heightno key
tip height, plain integer
curl -s https://api.blocknil.com/api/blocks/tip/height
example response
972342
GET/api/blocks/{start_height}no key
the ten blocks ending at that height
| name | in | | type |
|---|
| start_height | path | required | integer |
curl -s https://api.blocknil.com/api/blocks/972340
example response
[
{
"bits": 386007187,
"difficulty": 140577680051919.62,
"height": 972340,
"id": "000000000000000000001633ba79c7c26cda007a8ade3cd1d432ca20e7896b90",
"mediantime": 1792504663,
"merkle_root": "343f6a33800cf1e2fce559ccc72faa2e1f8040b7054801aa71bd39688cb6b5d9",
"nonce": 648127321,
"previousblockhash": "0000000000000000000187a16af5f61531105458e4249fc39497d70afa1eb94f",
"size": 2713050,
"timestamp": 1792504963,
"tx_count": 3175,
"version": 879468544,
"weight": 3997563
},
{
"bits": 386007187,
"difficulty": 140577680051919.62,
"height": 972339,
"id": "0000000000000000000187a16af5f61531105458e4249fc39497d70afa1eb94f",
"mediantime": 1792504520,
"merkle_root": "acc8e17ca63eb1b254dfb9283c4ef1093317c885e3365c37c84d8464bad7ab73",
"nonce": 236506258,
"previousblockhash": "00000000000000000000039c0d759b89ef1cc8af7eb412c33ac29eadfccbbddb",
"size": 2734443,
"timestamp": 1792504939,
"tx_count": 4074,
"version": 762372096,
"weight": 3997689
},
{
"bits": 386007187,
"difficulty": 140577680051919.62,
"height": 972338,
"id": "00000000000000000000039c0d759b89ef1cc8af7eb412c33ac29eadfccbbddb",
"mediantime": 1792504268,
"merkle_root": "8325fafbe2cb603edc7767542e8a4c856a7835ca3cb50d3495c04cae463faa1b",
"nonce": 754151357,
"previousblockhash": "00000000000000000001a0caa316eb8b6e6d33e107b8e514da37a86a0ac5042e",
"size": 1679403,
"timestamp": 1792504950,
"tx_count": 7254,
"version": 691494912,
"weight": 3992964
},
{
"bits": 386007187,
… (truncated for this page)GET/api/v1/blocksno key
fifteen recent blocks with extras
curl -s https://api.blocknil.com/api/v1/blocks
example response
[
{
"bits": 386007187,
"difficulty": 140577680051919.62,
"extras": {
"avgFee": 1807,
"avgFeeRate": 7.216536815400836,
"avgTxSize": 383.23212045169385,
"coinbaseAddress": "bc1qtm7ye0wm085hhv88japwkalmwkt3amec5z9c7a3unv05tfg6y2pstr3xfz",
"coinbaseAddresses": [],
"coinbaseBip54": null,
"coinbaseRaw": "0336d60e05ca9dce82002f466f756e6472792055534120506f6f6c202364726f70676f6c642f5c4ca4cc0000853bf7ac1600",
"coinbaseSignature": null,
"coinbaseSignatureAscii": null,
"expectedFees": null,
"expectedWeight": null,
"feePercentiles": [],
"feeRange": [],
"firstSeen": null,
"header": "006010202347865a9a448ee40c1c004d3c08d9f67a25d9f570ca01000000000000000000941d2472668ba9a9e28dade07957c87791496461e3bf0c64115ca1e2402766a8ce82d76a930002177b50ea3a",
"matchRate": null,
"medianFee": null,
"orphans": [],
"pool": null,
"reward": 319703962,
"segwitTotalSize": 1454681,
"segwitTotalTxs": 3753,
"segwitTotalWeight": 3703142,
"similarity": null,
"totalFees": 7203962,
"totalInputAmt": 3345613848125,
"totalInputs": 6636,
"totalOutputAmt": 3345606644163,
"totalOutputs": 13774,
"utxoSetChange": null,
"utxoSetSize": null,
"virtualSize": 998257.5
},
"height": 972342,
"id": "000000000000000000003524d2ae7205c8ac854deb3d9afe5c3e8f8a5296e352",
"mediantime": 1792504868,
"merkle_root": "a8662740e2a15c11640cbfe36164499177c85779e0ad8de2a9a98b6672241d94",
"nonce": 988434555,
"previousblock
… (truncated for this page)GET/api/v1/blocks-bulk/{min_height}no key
block summaries from a height
| name | in | | type |
|---|
| min_height | path | required | integer |
curl -s https://api.blocknil.com/api/v1/blocks-bulk/972337
example response
[
{
"bits": 386007187,
"difficulty": 140577680051919.62,
"height": 972337,
"id": "00000000000000000001a0caa316eb8b6e6d33e107b8e514da37a86a0ac5042e",
"mediantime": 1792503831,
"merkle_root": "3de2aa0a0e7dff96d600ff9b3aab4c873c9039da82e0853ee946a20ca62a0b13",
"nonce": 1889837523,
"previousblockhash": "00000000000000000001b686ab872f253306713c113a47c630ec0a6ad3d04d8d",
"size": 1645960,
"timestamp": 1792504868,
"tx_count": 5842,
"version": 537182208,
"weight": 3993940
}
]GET/api/v1/blocks-bulk/{min_height}/{max_height}no key
block summaries for a range, capped at 10
| name | in | | type |
|---|
| min_height | path | required | integer |
| max_height | path | required | integer |
curl -s https://api.blocknil.com/api/v1/blocks-bulk/972337/972340
example response
[
{
"bits": 386007187,
"difficulty": 140577680051919.62,
"height": 972340,
"id": "000000000000000000001633ba79c7c26cda007a8ade3cd1d432ca20e7896b90",
"mediantime": 1792504663,
"merkle_root": "343f6a33800cf1e2fce559ccc72faa2e1f8040b7054801aa71bd39688cb6b5d9",
"nonce": 648127321,
"previousblockhash": "0000000000000000000187a16af5f61531105458e4249fc39497d70afa1eb94f",
"size": 2713050,
"timestamp": 1792504963,
"tx_count": 3175,
"version": 879468544,
"weight": 3997563
},
{
"bits": 386007187,
"difficulty": 140577680051919.62,
"height": 972339,
"id": "0000000000000000000187a16af5f61531105458e4249fc39497d70afa1eb94f",
"mediantime": 1792504520,
"merkle_root": "acc8e17ca63eb1b254dfb9283c4ef1093317c885e3365c37c84d8464bad7ab73",
"nonce": 236506258,
"previousblockhash": "00000000000000000000039c0d759b89ef1cc8af7eb412c33ac29eadfccbbddb",
"size": 2734443,
"timestamp": 1792504939,
"tx_count": 4074,
"version": 762372096,
"weight": 3997689
},
{
"bits": 386007187,
"difficulty": 140577680051919.62,
"height": 972338,
"id": "00000000000000000000039c0d759b89ef1cc8af7eb412c33ac29eadfccbbddb",
"mediantime": 1792504268,
"merkle_root": "8325fafbe2cb603edc7767542e8a4c856a7835ca3cb50d3495c04cae463faa1b",
"nonce": 754151357,
"previousblockhash": "00000000000000000001a0caa316eb8b6e6d33e107b8e514da37a86a0ac5042e",
"size": 1679403,
"timestamp": 1792504950,
"tx_count": 7254,
"version": 691494912,
"weight": 3992964
},
{
"bits": 386007187,
… (truncated for this page)GET/api/v1/mining/blocks/timestamp/{timestamp}no key
block closest to a unix timestamp
| name | in | | type |
|---|
| timestamp | path | required | integer |
curl -s https://api.blocknil.com/api/v1/mining/blocks/timestamp/1700000000
example response
{
"hash": "00000000000000000001e23fa1044174b4ee6fea4d4c8ba75ff44e9ae08c76f6",
"height": 816786,
"timestamp": "2023-11-14T22:29:36.000Z"
}GET/v1/block/{height}/analyzebearer key
one block, decoded
| name | in | | type |
|---|
| height | path | required | integer |
curl -s https://api.blocknil.com/v1/block/972340/analyze \
-H "Authorization: Bearer $KEY"
Requires a key, so no sample is captured at build time — the shape is in /v1/openapi.json and in the examples above.
GET/v1/block/{height}/txsbearer key
one block's transactions, paged, each with entity-attributed from/to
| name | in | | type |
|---|
| height | path | required | integer |
| page | query | optional | integer |
| limit | query | optional | integer |
curl -s https://api.blocknil.com/v1/block/972340/txs \
-H "Authorization: Bearer $KEY"
Requires a key, so no sample is captured at build time — the shape is in /v1/openapi.json and in the examples above.
GET/v1/blocks/tip/hashbearer key
the tip height and hash
curl -s https://api.blocknil.com/v1/blocks/tip/hash \
-H "Authorization: Bearer $KEY"
Requires a key, so no sample is captured at build time — the shape is in /v1/openapi.json and in the examples above.
GET/v1/blocks/tip/heightbearer key
the tip height
curl -s https://api.blocknil.com/v1/blocks/tip/height \
-H "Authorization: Bearer $KEY"
Requires a key, so no sample is captured at build time — the shape is in /v1/openapi.json and in the examples above.
Transactions 7
One transaction decoded, plus the analysis layer: facts, change, content, relations.
GET/v1/tx/{txid}/analyzebearer key
one transaction, decoded
| name | in | | type |
|---|
| txid | path | required | string |
curl -s https://api.blocknil.com/v1/tx/0000000000000000000000000000000000000000000000000000000000000000/analyze \
-H "Authorization: Bearer $KEY"
Requires a key, so no sample is captured at build time — the shape is in /v1/openapi.json and in the examples above.
GET/v1/tx/{txid}/changebearer key
which outputs look like change, and why
| name | in | | type |
|---|
| txid | path | required | string |
curl -s https://api.blocknil.com/v1/tx/0000000000000000000000000000000000000000000000000000000000000000/change \
-H "Authorization: Bearer $KEY"
Requires a key, so no sample is captured at build time — the shape is in /v1/openapi.json and in the examples above.
GET/v1/tx/{txid}/contentbearer key
embedded data: inscriptions, OP_RETURN
| name | in | | type |
|---|
| txid | path | required | string |
curl -s https://api.blocknil.com/v1/tx/0000000000000000000000000000000000000000000000000000000000000000/content \
-H "Authorization: Bearer $KEY"
Requires a key, so no sample is captured at build time — the shape is in /v1/openapi.json and in the examples above.
GET/v1/tx/{txid}/factsbearer key
the transaction's key facts
| name | in | | type |
|---|
| txid | path | required | string |
curl -s https://api.blocknil.com/v1/tx/0000000000000000000000000000000000000000000000000000000000000000/facts \
-H "Authorization: Bearer $KEY"
Requires a key, so no sample is captured at build time — the shape is in /v1/openapi.json and in the examples above.
GET/v1/tx/{txid}/graph_databearer key
the graph form the UI draws
| name | in | | type |
|---|
| txid | path | required | string |
curl -s https://api.blocknil.com/v1/tx/0000000000000000000000000000000000000000000000000000000000000000/graph_data \
-H "Authorization: Bearer $KEY"
Requires a key, so no sample is captured at build time — the shape is in /v1/openapi.json and in the examples above.
GET/v1/tx/{txid}/is_inscriptionbearer key
cheap inscription test
| name | in | | type |
|---|
| txid | path | required | string |
curl -s https://api.blocknil.com/v1/tx/0000000000000000000000000000000000000000000000000000000000000000/is_inscription \
-H "Authorization: Bearer $KEY"
Requires a key, so no sample is captured at build time — the shape is in /v1/openapi.json and in the examples above.
GET/v1/tx/{txid}/relatedbearer key
transactions related to this one
| name | in | | type |
|---|
| txid | path | required | string |
curl -s https://api.blocknil.com/v1/tx/0000000000000000000000000000000000000000000000000000000000000000/related \
-H "Authorization: Bearer $KEY"
Requires a key, so no sample is captured at build time — the shape is in /v1/openapi.json and in the examples above.
Chain 5
Tip, fees, mempool and index-wide numbers.
GET/v1/chain/infobearer key
chain tip and sync state
curl -s https://api.blocknil.com/v1/chain/info \
-H "Authorization: Bearer $KEY"
Requires a key, so no sample is captured at build time — the shape is in /v1/openapi.json and in the examples above.
GET/v1/feesbearer key
fee estimates in sat/vB for 1,2,3,6,12,24,144 blocks
curl -s https://api.blocknil.com/v1/fees \
-H "Authorization: Bearer $KEY"
Requires a key, so no sample is captured at build time — the shape is in /v1/openapi.json and in the examples above.
GET/v1/fees/recommendedbearer key
fastest, half_hour, hour, economy and minimum fees
curl -s https://api.blocknil.com/v1/fees/recommended \
-H "Authorization: Bearer $KEY"
Requires a key, so no sample is captured at build time — the shape is in /v1/openapi.json and in the examples above.
GET/v1/latestbearer key
the newest block
curl -s https://api.blocknil.com/v1/latest \
-H "Authorization: Bearer $KEY"
Requires a key, so no sample is captured at build time — the shape is in /v1/openapi.json and in the examples above.
GET/v1/mempoolbearer key
pending count, bytes, total fee and minimum relay fee
curl -s https://api.blocknil.com/v1/mempool \
-H "Authorization: Bearer $KEY"
Requires a key, so no sample is captured at build time — the shape is in /v1/openapi.json and in the examples above.
Service 18
Registration, keys, usage and the machine-readable bootstrap documents.
GET/api/mempoolno key
the node's mempool summary
curl -s https://api.blocknil.com/api/mempool
example response
{
"count": 51528,
"fee_histogram": [],
"total_fee": 8301860,
"vsize": null
}GET/api/tx/{txid}no key
one transaction, verbose
| name | in | | type |
|---|
| txid | path | required | string |
curl -s https://api.blocknil.com/api/tx/0000000000000000000000000000000000000000000000000000000000000000
GET/api/tx/{txid}/hexno key
serialized transaction, hex
| name | in | | type |
|---|
| txid | path | required | string |
curl -s https://api.blocknil.com/api/tx/0000000000000000000000000000000000000000000000000000000000000000/hex
GET/api/tx/{txid}/merkle-proofno key
merkle branch to the block root
| name | in | | type |
|---|
| txid | path | required | string |
curl -s https://api.blocknil.com/api/tx/0000000000000000000000000000000000000000000000000000000000000000/merkle-proof
GET/api/tx/{txid}/merkleblock-proofno key
BIP37 merkleblock for this transaction, hex
| name | in | | type |
|---|
| txid | path | required | string |
curl -s https://api.blocknil.com/api/tx/0000000000000000000000000000000000000000000000000000000000000000/merkleblock-proof
GET/api/tx/{txid}/outspend/{vout}no key
whether one output is spent
| name | in | | type |
|---|
| txid | path | required | string |
| vout | path | required | integer |
curl -s https://api.blocknil.com/api/tx/0000000000000000000000000000000000000000000000000000000000000000/outspend/{vout}GET/api/tx/{txid}/outspendsno key
spend status of every output
| name | in | | type |
|---|
| txid | path | required | string |
curl -s https://api.blocknil.com/api/tx/0000000000000000000000000000000000000000000000000000000000000000/outspends
GET/api/tx/{txid}/statusno key
confirmation state of one transaction
| name | in | | type |
|---|
| txid | path | required | string |
curl -s https://api.blocknil.com/api/tx/0000000000000000000000000000000000000000000000000000000000000000/status
GET/api/v1/block/{hash}no key
block with stale flag and extras
| name | in | | type |
|---|
| hash | path | required | string |
curl -s https://api.blocknil.com/api/v1/block/000000000000000000001633ba79c7c26cda007a8ade3cd1d432ca20e7896b90
example response
{
"bits": 386007187,
"difficulty": 140577680051919.62,
"extras": {
"avgFee": 78,
"avgFeeRate": 0.24924285120709794,
"avgTxSize": 854.503937007874,
"coinbaseAddress": "1K6KoYC69NnafWJ7YgtrpwJxBLiijWqwa6",
"coinbaseAddresses": [],
"coinbaseBip54": null,
"coinbaseRaw": "0334d60e2cfabe6d6dba511d7b94268d1cfda67261977f969d54f1002be4f192a3bc027009f25ba1ff10000000f09f909f092f4632506f6f6c2f620000000000000000000000000000000000000000000000000000000000000000000000050033000000",
"coinbaseSignature": null,
"coinbaseSignatureAscii": null,
"expectedFees": null,
"expectedWeight": null,
"feePercentiles": [],
"feeRange": [],
"firstSeen": null,
"header": "00a06b344fb91efa0ad79794c39f24e45854103115f6f56aa18701000000000000000000d9b5b68c6839bd71aa014805b740801f2eaa2fc7cc59e5fce2f10c80336a3f348374d76a9300021759a3a126",
"matchRate": null,
"medianFee": null,
"orphans": [],
"pool": null,
"reward": 312749091,
"segwitTotalSize": 2710295,
"segwitTotalTxs": 3169,
"segwitTotalWeight": 3986651,
"similarity": null,
"totalFees": 249091,
"totalInputAmt": 7454473388,
"totalInputs": 4040,
"totalOutputAmt": 7454224297,
"totalOutputs": 8429,
"utxoSetChange": null,
"utxoSetSize": null,
"virtualSize": 999390.75
},
"height": 972340,
"id": "000000000000000000001633ba79c7c26cda007a8ade3cd1d432ca20e7896b90",
"mediantime": 1792504663,
"merkle_root": "343f6a33800cf1e2fce559ccc72faa2e1f8040b7054801aa71bd39688cb6b5d9",
"nonce": 648127321,
"previousblockhash": "00000000000000000
… (truncated for this page)GET/api/v1/fees/recommendedno key
one fee estimate per speed tier
curl -s https://api.blocknil.com/api/v1/fees/recommended
example response
{
"economyFee": 0.136,
"fastestFee": 2.109,
"halfHourFee": 2.109,
"hourFee": 0.142,
"minimumFee": 0.126
}GET/healthno key
liveness and chain tip
curl -s https://api.blocknil.com/health
example response
{
"status": "ok",
"tip": 972342
}GET/v1no key
service descriptor
curl -s https://api.blocknil.com/v1
example response
{
"api_surface": {
"auth": "none \u2014 these paths carry no key, which is what lets an existing client use them as they are; the global per-second ceiling still applies",
"base": "/api",
"covered": [
"GET /api/address/{address}",
"GET /api/address/{address}/txs",
"GET /api/address/{address}/txs/chain[/{last_seen_txid}]",
"GET /api/address/{address}/txs/mempool (always empty: confirmed data only)",
"GET /api/address/{address}/utxo",
"GET /api/v1/validate-address/{address}",
"GET /api/block/{hash}",
"GET /api/block/{hash}/header",
"GET /api/block/{hash}/raw",
"GET /api/block/{hash}/status",
"GET /api/block/{hash}/txid/{index}",
"GET /api/block/{hash}/txids",
"GET /api/block/{hash}/txs[/{start_index}]",
"GET /api/block-height/{height}",
"GET /api/v1/mining/blocks/timestamp/{timestamp}",
"GET /api/blocks[/{start_height}]",
"GET /api/v1/blocks-bulk/{min_height}[/{max_height}]",
"GET /api/blocks/tip/height",
"GET /api/blocks/tip/hash",
"GET /api/tx/{txid}",
"GET /api/tx/{txid}/hex",
"GET /api/tx/{txid}/outspend/{vout}",
"GET /api/tx/{txid}/outspends",
"GET /api/tx/{txid}/merkle-proof",
"GET /api/mempool",
"GET /api/v1/fees/recommended"
],
"cursor_note": "the :last_seen_txid cursor is resolved by walking (bounded at 20,000 entries); /v1/address/{address}/txs?after=p:\u2026 is the seek-based cursor",
"limits": [
"no broadcast: there is no POST /api/tx, and the service accepts no writes",
"n
… (truncated for this page)POST/v1/accountsno key
create an account; returns the first key exactly once
| name | in | | type |
|---|
| Idempotency-Key | header | optional | string |
curl -s https://api.blocknil.com/v1/accounts
POST/v1/accounts/keysbearer key
create another key
curl -s https://api.blocknil.com/v1/accounts/keys \
-H "Authorization: Bearer $KEY"
Requires a key, so no sample is captured at build time — the shape is in /v1/openapi.json and in the examples above.
GET/v1/accounts/mebearer key
your account, plan, keys and usage
curl -s https://api.blocknil.com/v1/accounts/me \
-H "Authorization: Bearer $KEY"
Requires a key, so no sample is captured at build time — the shape is in /v1/openapi.json and in the examples above.
POST/v1/keys/{id}/disablebearer key
disable one of your keys
| name | in | | type |
|---|
| id | path | required | integer |
curl -s https://api.blocknil.com/v1/keys/1/disable \
-H "Authorization: Bearer $KEY"
Requires a key, so no sample is captured at build time — the shape is in /v1/openapi.json and in the examples above.
GET/v1/pricingno key
plans and limits
curl -s https://api.blocknil.com/v1/pricing
example response
{
"currency_note": "Priced in sats when billing exists; the free tier has no payment step.",
"electrum_note": "the Electrum endpoint (electrum.blocknil.com:50002) is free and unkeyed today: the Electrum protocol has no field for a key. Per-account Electrum tokens arrive with billing, at which point the scope on a key will start to matter.",
"how_to_start": "POST /v1/accounts \u2014 no payment step, no email required",
"tiers": [
{
"best_for": "building against the API and evaluating the data",
"burst_per_minute": 120,
"name": "free",
"price": 0,
"requests_per_day": 1000,
"scopes": [
"api"
]
},
{
"best_for": "production use; top-ups arrive with billing",
"burst_per_minute": 120,
"name": "pro",
"price": "not priced yet",
"requests_per_day": 100000,
"scopes": [
"api"
]
}
]
}GET/v1/usagebearer key
today's usage and limits
curl -s https://api.blocknil.com/v1/usage \
-H "Authorization: Bearer $KEY"
Requires a key, so no sample is captured at build time — the shape is in /v1/openapi.json and in the examples above.