API reference

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).

Getting started

Create a key with one request — no email, no browser:

curl -sX POST https://api.blocknil.com/v1/accounts \
  -H 'Idempotency-Key: my-first-key' -d '{}'

The reply contains key (shown once, stored only as a hash) and key_id. Send it as Authorization: Bearer <key> on every /v1 data call.

Authentication

Header
Authorization: Bearer <key>
Free tier
1000 requests / day, 120 / minute
No key needed
/health, /v1, /v1/pricing, /v1/openapi.json, /v1/accounts (POST), and every /api/... path

Limits

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.

Errors

statusmeaning
401no key or unknown key — POST /v1/accounts
403key or account disabled, or the key lacks the scope
429burst or daily quota exhausted; see Retry-After and X-RateLimit-*
503global request ceiling reached for this second; back off briefly

Addresses 11

Everything about one address: history, coins, lifetime totals, counterparties.

GET/api/address/{address}no key

address lifetime figures

nameintype
addresspathrequiredstring
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

nameintype
addresspathrequiredstring
limitqueryoptionalinteger
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

nameintype
addresspathrequiredstring
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

nameintype
addresspathrequiredstring
last_seen_txidpathrequiredstring
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

nameintype
addresspathrequiredstring
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

nameintype
addresspathrequiredstring
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

nameintype
addresspathrequiredstring
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

nameintype
addresspathrequiredstring
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

nameintype
addresspathrequiredstring
pagequeryoptionalinteger
limitqueryoptionalinteger
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

nameintype
addresspathrequiredstring
pagequeryoptionalinteger
limitqueryoptionalinteger
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

nameintype
addresspathrequiredstring
pagequeryoptionalinteger
limitqueryoptionalinteger
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

nameintype
heightpathrequiredinteger
curl -s https://api.blocknil.com/api/block-height/972340
example response
000000000000000000001633ba79c7c26cda007a8ade3cd1d432ca20e7896b90
GET/api/block/{hash}no key

block details

nameintype
hashpathrequiredstring
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

nameintype
hashpathrequiredstring
curl -s https://api.blocknil.com/api/block/000000000000000000001633ba79c7c26cda007a8ade3cd1d432ca20e7896b90/header
example response
00a06b344fb91efa0ad79794c39f24e45854103115f6f56aa18701000000000000000000d9b5b68c6839bd71aa014805b740801f2eaa2fc7cc59e5fce2f10c80336a3f348374d76a9300021759a3a126
GET/api/block/{hash}/rawno key

serialized block, hex

nameintype
hashpathrequiredstring
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

nameintype
hashpathrequiredstring
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

nameintype
hashpathrequiredstring
indexpathrequiredinteger
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

nameintype
hashpathrequiredstring
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

nameintype
hashpathrequiredstring
limitqueryoptionalinteger
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

nameintype
hashpathrequiredstring
start_indexpathrequiredinteger
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

nameintype
start_heightpathrequiredinteger
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

nameintype
min_heightpathrequiredinteger
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

nameintype
min_heightpathrequiredinteger
max_heightpathrequiredinteger
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

nameintype
timestamppathrequiredinteger
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

nameintype
heightpathrequiredinteger
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

nameintype
heightpathrequiredinteger
pagequeryoptionalinteger
limitqueryoptionalinteger
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

nameintype
txidpathrequiredstring
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

nameintype
txidpathrequiredstring
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

nameintype
txidpathrequiredstring
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

nameintype
txidpathrequiredstring
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

nameintype
txidpathrequiredstring
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

nameintype
txidpathrequiredstring
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

nameintype
txidpathrequiredstring
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.

Index 1

The UTXO index itself — what the service's own coins table knows.

GET/v1/utxo-index/statsbearer key

coverage of the coin index

curl -s https://api.blocknil.com/v1/utxo-index/stats \
  -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

nameintype
txidpathrequiredstring
curl -s https://api.blocknil.com/api/tx/0000000000000000000000000000000000000000000000000000000000000000
GET/api/tx/{txid}/hexno key

serialized transaction, hex

nameintype
txidpathrequiredstring
curl -s https://api.blocknil.com/api/tx/0000000000000000000000000000000000000000000000000000000000000000/hex
GET/api/tx/{txid}/merkle-proofno key

merkle branch to the block root

nameintype
txidpathrequiredstring
curl -s https://api.blocknil.com/api/tx/0000000000000000000000000000000000000000000000000000000000000000/merkle-proof
GET/api/tx/{txid}/merkleblock-proofno key

BIP37 merkleblock for this transaction, hex

nameintype
txidpathrequiredstring
curl -s https://api.blocknil.com/api/tx/0000000000000000000000000000000000000000000000000000000000000000/merkleblock-proof
GET/api/tx/{txid}/outspend/{vout}no key

whether one output is spent

nameintype
txidpathrequiredstring
voutpathrequiredinteger
curl -s https://api.blocknil.com/api/tx/0000000000000000000000000000000000000000000000000000000000000000/outspend/{vout}
GET/api/tx/{txid}/outspendsno key

spend status of every output

nameintype
txidpathrequiredstring
curl -s https://api.blocknil.com/api/tx/0000000000000000000000000000000000000000000000000000000000000000/outspends
GET/api/tx/{txid}/statusno key

confirmation state of one transaction

nameintype
txidpathrequiredstring
curl -s https://api.blocknil.com/api/tx/0000000000000000000000000000000000000000000000000000000000000000/status
GET/api/v1/block/{hash}no key

block with stale flag and extras

nameintype
hashpathrequiredstring
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

nameintype
Idempotency-Keyheaderoptionalstring
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

nameintype
idpathrequiredinteger
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.

Electrum

For wallets, not HTTP.

Host
electrum.blocknil.com:50002
Transport
tls
Auth
none — the Electrum protocol has no field for a key; connections are capped per source address
History limit
25000 entries per address
Same index as
/v1

Machine-readable

The same contract, for programs:

This page is generated from those documents by docs/build.py, so it cannot describe an endpoint the service does not serve.

blocknil · generated 2026-10-20 15:08 UTC from https://api.blocknil.com