NAV

Introduction

Welcome to Bitails! We are a BSV archive, indexer, and UTXO manager that provides APIs, sockets, and other features for developers and companies working on BSV. With Bitails, you don't need to worry about the size of the BSV blockchain. Our focus is on providing exceptional services to help you build your ideas faster and with less effort. Try out our new features and easily manage UTXOs, send data to BSV, fetch data from BSV, watch entities, and create your applications with ease!

Pricing

Bitails offers a diverse range of flexible pricing plans to meet the unique needs of users. From basic plans ideal for small-scale usage to advanced packages tailored for larger enterprises, Bitails ensures both scalability and affordability. Users have the freedom to choose from a variety of plans that align precisely with the features and capacities required for their projects. This provides a customized experience that caters to individual developers as well as businesses of varying sizes.

For detailed information on Bitails' pricing plans and to discuss a tailored solution that suits your specific requirements, please contact us at [email protected].

Authentication & API Key


curl -X GET "https://api.bitails.io/network/info" -H "apikey: XXXXXXXXXXXXXXXXXXXXXXXXXXX"

The NodeJS example for using the api key in a request.


const request = require('request');
const API_KEY = 'XXXXXXXXXXXXXXXXXXXXXXXXXXX';
const ENDPOINT = 'api.bitails.io';
const sampleMethod = `https://${ENDPOINT}/network/info`;
const requestOptions = {
  url: sampleMethod,
  headers: {
    apikey: API_KEY,
  },
};
request.get(requestOptions, (err, resp, body) => {
if (err) {
    console.log(err);
  }
if (resp.statusCode !== 200) {
    console.log(resp.statusCode);
  }
  console.log("Response Body:", body);
});

To access Bitails' API services, users are required to include their unique API key in the request header. For users without an API key, access is limited to 5 transactions per second (TPS) and 1000 daily requests.

Swagger

The Swagger is available for both main net and test net.

Main net - API: https://api.bitails.io/swagger

Test net - API: https://test-api.bitails.io/swagger

Main net - mAPI: https://mapi.bitails.io/swagger

Test net - mAPI: https://test-mapi.bitails.io/swagger

Scripthash

Get Unspent of Scripthash


# c79e8d823c1ce9b80c9c340a389409f489989800044466c9d05bfef12c472232  
curl "https://api.bitails.io/scripthash/{scripthash}/unspent"

The above command returns JSON structured like this:

[
  {
    "scripthash": "c79e8d823c1ce9b80c9c340a389409f489989800044466c9d05bfef12c472232",
    "unspent": [
    {
    "txid": "1f13d03c29ae4e0b996fd72636087247fcb9326dcc28b4852b7ffa7e5180f619",
    "vout": 1,
    "satoshis": 3522,
    "time": "1645960789",
    "blockheight": 815019,
    "confirmations": 200,
    }
    ]
  }
] 

This endpoint retrieves unspent outputs(UTXOs) of a scripthash.

HTTP Request

GET https://api.bitails.io/scripthash/{scripthash}/unspent

Parameter Description
scripthash
from
limit

Get Unspent of Multiple Scripthashes

curl --location --request POST "https://api.bitails.io/scripthash/unspent/multi" \--header "Content-Type: application/json" \--data "{\"scripthashes\": [\"213fb7922dc20cae6bd1cbf27f708a15fc089efdac632118fc8fb60ef1899630\", \"bbec6039916d01db85a839e06d84d95415515a7d791393128303707e5dd1c211\"]}"

The above command returns JSON structured like this:

[
  {
    "scripthash": "bbec6039916d01db85a839e06d84d95415515a7d791393128303707e5dd1c211",
    "unspent": [
      {
        "txid": "1f13d03c29ae4e0b996fd72636087247fcb9326dcc28b4852b7ffa7e5180f619",
        "vout": 1,
        "satoshis": 3522,
        "time": "1645960789",
        "blockheight": 815019,
        "confirmations": 200
      }
    ]
  },
  {
    "scripthash": "213fb7922dc20cae6bd1cbf27f708a15fc089efdac632118fc8fb60ef1899630",
    "unspent": [
      {
        "txid": "1f13d03c29ae4e0b996fd72636087247fcb9326dcc28b4852b7ffa7e5180f619",
        "vout": 1,
        "satoshis": 3522,
        "time": "1645960789",
        "blockheight": 815019,
        "confirmations": 200
      }
    ]
  }
]

This endpoint retrieves unspent outputs (UTXOs) of a scripthash.

HTTP Request

GET https://api.bitails.io/scripthash/unspent/multi

Parameter Description
from Description for the 'from' parameter
limit Description for the 'limit' parameter

Get Balance of Scripthash


# c79e8d823c1ce9b80c9c340a389409f489989800044466c9d05bfef12c472232  
curl "https://api.bitails.io/scripthash/{scripthash}/balance"

The above command returns JSON structured like this:


{
    "scripthash": "c79e8d823c1ce9b80c9c340a389409f489989800044466c9d05bfef12c472232",
    "confirmed": 36453,
    "unconfirmed": 1000,
    "summary": 37453,
    "count":34,
}

This endpoint retrieves the balance of a scripthash.

HTTP Request

GET https://api.bitails.io/scripthash/{scripthash}/balance

Parameter Description
scripthash

Get Balance of Multiple Scripthashes

curl --location --request POST "https://api.bitails.io/scripthash/balance/multi" \--header "Content-Type: application/json" \--data "{\"scripthashes\": [\"213fb7922dc20cae6bd1cbf27f708a15fc089efdac632118fc8fb60ef1899630\", \"bbec6039916d01db85a839e06d84d95415515a7d791393128303707e5dd1c211\"]}"

The above command returns JSON structured like this:

{
  "scripthash": "c79e8d823c1ce9b80c9c340a389409f489989800044466c9d05bfef12c472232",
  "confirmed": 36453,
  "unconfirmed": 1000,
  "summary": 37453,
  "count": 34
}

This endpoint retrieves the total balance of multiple scripthashes.

HTTP Request

GET https://api.bitails.io/scripthash/balance/multi

Parameter Description
from Description for the 'from' parameter
limit Description for the 'limit' parameter

Get History of Scripthash


# c79e8d823c1ce9b80c9c340a389409f489989800044466c9d05bfef12c472232  
curl "https://api.bitails.io/scripthash/{scripthash}/history"

The above command returns JSON structured like this:

[
  {
    "scripthash": "c79e8d823c1ce9b80c9c340a389409f489989800044466c9d05bfef12c472232",
    "histories": [
    {
    "txid": "40ff70b97334699d71a552ab5ea97c996fa8d64a9e0dc0041ec1701b10ed6914",
    "inputSatoshis": 2000,
    "outputSatoshis": 0,
    "time": 1655049588,
    "blockheight": 815019,
    }
  ]
  }
]
  
  
  
  
  
  
  
  

This endpoint retrieves the history of a scripthash. Note that the inputSatoshis and outputSatoshis refer to the role of the scripthash in the transaction. In other words, when the inputSatoshis is a non-zero value, it means the scripthash was seen in the inputs of the transaction(Spent), and when the outputSatoshis is non-zero, it implies that the scripthash was seen in the output of the transaction(Received).

GET https://api.bitails.io/scripthash/{scripthash}/history

HTTP Request

URL Parameters

Parameter Description
scripthash
pgkey
limit Maximum 5000

Scenario Using pgkey

1. The first request has no pgkey - recommended limit=5000

2. The first response includes 5000 history(the set limit) plus one pgkey which acts as a place holder and points to the last served data.

3. in later requests, the pgkey should be sent to the server as well. Each response has a new pgkey which should be used in the next request.

How do we know when we get to the end of the history?

Good question! when you receive a response which has no pgkey anymore, it means you are at the end of the history. It is like you were scrolling a page and now you are at the end.

Get Details of Scripthash


# c79e8d823c1ce9b80c9c340a389409f489989800044466c9d05bfef12c472232  
curl "https://api.bitails.io/scripthash/{scripthash}/details"

The above command returns JSON structured like this:


{
  "balance":
              {
                  "scripthash": "c79e8d823c1ce9b80c9c340a389409f489989800044466c9d05bfef12c472232",
                  "confirmed": 36453,
                  "unconfirmed": 1000,
                  "summary": 37453,
                  "count": 34,
              },
  "lastSeen":
              {
                  "txid": "40ff70b97334699d71a552ab5ea97c996fa8d64a9e0dc0041ec1701b10ed6914",
                  "inputSatoshis": 0,
                  "outputSatoshis": 12120,
                  "time": 1655049588,
                  "blockheight": 815019,
              },
  "firstSeen": 
              {
                  "txid": "c3d6c4b466bc369561fa854cab42a6acd89aeeb528c5ffbde83e7a380dfc7914",
                  "inputSatoshis": 0,
                  "outputSatoshis": 12120,
                  "time": 1655049588,
                  "blockheight": 815019,
              },
}

This endpoint retrieves the details of a scripthash.

HTTP Request

GET https://api.bitails.io/scripthash/{scripthash}/details

Parameter Description
scripthash

Address

Get Unspent of Address


# 18C5qX7sM98gKtgGqTAXTa53dnbyrSkx6e  
curl "https://api.bitails.io/address/{address}/unspent"

The above command returns JSON structured like this:


  {
    "address": "18C5qX7sM98gKtgGqTAXTa53dnbyrSkx6e",
    "scripthash": "c79e8d823c1ce9b80c9c340a389409f489989800044466c9d05bfef12c472232",
    "unspent":
              [
                {
                "txid": "1f13d03c29ae4e0b996fd72636087247fcb9326dcc28b4852b7ffa7e5180f619",
                "vout": 1,
                "satoshis": 3522,
                "time": 1645960789,
                "blockheight": 815019,
                "confirmations": 200,
                }
              ]
  }

This endpoint retrieves unspent outputs(UTXO) of an address.

HTTP Request

GET https://api.bitails.io/address/{address}/unspent

Parameter Description
address
from
limit

Get Unspent of Multiple Addresses


  curl --location --request POST "https://api.bitails.io/address/unspent/multi" \
--header "Content-Type: application/json" \
--data "{\"addresses\": [\"18C5qX7sM98gKtgGqTAXTa53dnbyrSkx6e\", \"17F5qX7sM88gKtgGqTAXTa53dnbyrSkx6e\"]}"

The above command returns JSON structured like this:


[
  {
    "address": "18C5qX7sM98gKtgGqTAXTa53dnbyrSkx6e",
    "scripthash": "c79e8d823c1ce9b80c9c340a389409f489989800044466c9d05bfef12c472232",
    "unspent": 
    [
      {
        "txid": "1f13d03c29ae4e0b996fd72636087247fcb9326dcc28b4852b7ffa7e5180f619",
        "vout": 1,
        "satoshis": 3522,
        "time": 1645960789,
        "blockheight": 815019,
        "confirmations": 200,
      }
    ]
  },
  {
    "address": "18C5qX7sM98gKtgGqTAXTa53dnbyrSkx6e",
    "scripthash": "c79e8d823c1ce9b80c9c340a389409f489989800044466c9d05bfef12c472232",
    "unspent": 
    [
      {
        "txid": "1f13d03c29ae4e0b996fd72636087247fcb9326dcc28b4852b7ffa7e5180f619",
        "vout": 1,
        "satoshis": 3522,
        "time": 1645960789,
        "blockheight": 815019,
        "confirmations": 200,
      }
    ]
  }
] 

This endpoint retrieves unspent outputs(UTXO) of multiple addresses.

HTTP Request

POST https://api.bitails.io/address/unspent/multi

Parameter Description
from
limit

Get Balance of Address


# 18C5qX7sM98gKtgGqTAXTa53dnbyrSkx6e  
curl "https://api.bitails.io/address/{address}/balance"

The above command returns JSON structured like this:


{
    "address": "18C5qX7sM98gKtgGqTAXTa53dnbyrSkx6e",
    "scripthash": "c79e8d823c1ce9b80c9c340a389409f489989800044466c9d05bfef12c472232",
    "confirmed": 36453,
    "unconfirmed": 1000,
    "summary": 37453,
    "count": 34,
}

This endpoint retrieves the balance of an address.

HTTP Request

GET https://api.bitails.io/address/{address}/balance

Parameter Description
address

Get Balance of Multiple Addresses


  curl --location --request POST "https://api.bitails.io/address/balance/multi" \
--header "Content-Type: application/json" \
--data "{\"addresses\": [\"18C5qX7sM98gKtgGqTAXTa53dnbyrSkx6e\", \"17F5qX7sM88gKtgGqTAXTa53dnbyrSkx6e\"]}"

The above command returns JSON structured like this:


{
    "confirmed": 36453,
    "unconfirmed": 1000,
    "summary": 37453,
    "count": 34,
}

This endpoint retrieves the balance of an address.

HTTP Request

POST https://api.bitails.io/address/balance/multi

Get Balance of Multiple Addresses separately


  curl --location --request POST "https://api.bitails.io/address/balance/multi/seperate" \
--header "Content-Type: application/json" \
--data "{\"addresses\": [\"1FWQiwK27EnGXb6BiBMRLJvunJQZZPMcGd\", \"1FWQiwK27EnGXb6BiBMRLJvunJQZZPMcGd\"]}"

The above command returns JSON structured like this:


[
  {
    "confirmed": 36453,
    "unconfirmed": 1000,
    "summary": 37453,
    "count": 34,
    "address": "18C5qX7sM98gKtgGqTAXTa53dnbyrSkx6e",
  },
  {
  "confirmed": 36453,
  "unconfirmed": 1000,
  "summary": 37453,
  "count": 34,
  "address": "18C5qX7sM98gKtgGqTAXTa53dnbyrSkx6e",
  }
]

This endpoint retrieves the balance of multiple addresses separately.

HTTP Request

POST https://api.bitails.io/address/balance/multi/seperate

Get History of Address


# 18C5qX7sM98gKtgGqTAXTa53dnbyrSkx6e  
curl "https://api.bitails.io/address/{address}/history"

The above command returns JSON structured like this:

[
  {
  "address": "18C5qX7sM98gKtgGqTAXTa53dnbyrSkx6e",
    "scripthash": "c79e8d823c1ce9b80c9c340a389409f489989800044466c9d05bfef12c472232",
    "histories": [
    {
    "txid": "40ff70b97334699d71a552ab5ea97c996fa8d64a9e0dc0041ec1701b10ed6914",
    "inputSatoshis": 0,
    "outputSatoshis": 12120,
    "time": 1655049588,
    "blockheight": 815019,
    } 
  ]
  }
] 
  
  
  
  
  

This endpoint retrieves the history of an address. Note that the inputSatoshis and outputSatoshis refer to the role of the address in the transaction. In other words, when the inputSatoshis is a non-zero value, it means the address was seen in the inputs of the transaction(Spent), and when the outputSatoshis is non-zero, it implies that the address was seen in the output of the transaction(Received).

HTTP Request

GET https://api.bitails.io/address/{address}/history

Parameter Description
address
pgkey
limit Maximum 5000

Scenario Using pgkey

1. The first request has no pgkey - recommended limit=5000

2. The first response includes 5000 history(the set limit) plus one pgkey which acts as a place holder and points to the last served data.

3. in later requests, the pgkey should be sent to the server as well. Each response has a new pgkey which should be used in the next request.

How do we know when we get to the end of the history?

Good question! when you receive a response which has no pgkey anymore, it means you are at the end of the history. It is like you were scrolling a page and now you are at the end.

Get History of Multiple Addresses


curl --location --request POST "https://api.bitails.io/address/history/multi" \
--header "Content-Type: application/json" \
--data "{\"addresses\": [\"18C5qX7sM98gKtgGqTAXTa53dnbyrSkx6e\", \"17F5qX7sM88gKtgGqTAXTa53dnbyrSkx6e\"]}"

The above command returns JSON structured like this:


[
  {
  "txid": "40ff70b97334699d71a552ab5ea97c996fa8d64a9e0dc0041ec1701b10ed6914",
  "inputSatoshis": 1123,
  "outputSatoshis": 0,
  "time": 1655049588,
  "blockheight": 815019,
  },
  {
  "txid": "40ff70b97334699d71a552ab5ea97c996fa8d64a9e0dc0041ec1701b10ed6914",
  "inputSatoshis": 3243,
  "outputSatoshis": 0,
  "time": 1655049588,
  "blockheight": 815019,
  }
]
  
  
  
  
  

This endpoint retrieves the history of an address. Note that the inputSatoshis and outputSatoshis refer to the role of the address in the transaction. In other words, when the inputSatoshis is a non-zero value, it means the address was seen in the inputs of the transaction(Spent), and when the outputSatoshis is non-zero, it implies that the address was seen in the output of the transaction(Received).

HTTP Request

POST https://api.bitails.io/address/history/multi

Parameter Description
from
limit

Get Details of Address


# 18C5qX7sM98gKtgGqTAXTa53dnbyrSkx6e  
curl "https://api.bitails.io/address/{address}/details"

The above command returns JSON structured like this:


  {
  "balance":
              {
                  "address": "18C5qX7sM98gKtgGqTAXTa53dnbyrSkx6e",
                  "confirmed": 36453,
                  "unconfirmed": 1000,
                  "summary": 37453,
                  "count": 34,
              },
  "lastSeen":
              {
                  "txid": "40ff70b97334699d71a552ab5ea97c996fa8d64a9e0dc0041ec1701b10ed6914",
                  "inputSatoshis": 0,
                  "outputSatoshis": 12120,
                  "time": 1655049588,
                  "blockheight": 815019,
              },
  "firstSeen": 
              {
                  "txid": "c3d6c4b466bc369561fa854cab42a6acd89aeeb528c5ffbde83e7a380dfc7914",
                  "inputSatoshis": 0,
                  "outputSatoshis": 12120,
                  "time": 1655049588,
                  "blockheight": 815019,
              },
}

This endpoint retrieves the details of an address.

HTTP Request

GET https://api.bitails.io/address/{address}/details

Parameter Description
address

Transaction

The Transaction API is used to retrieve the details of a transaction, find the documentation regarding sockets on transactions in the 'Socket' section.

Get Input of Transaction


# 687a32b54ea9a8f270e648cdd6666185e452e5a9a92cabfc506d1bc1e3ecc5ac  
curl "https://api.bitails.io/tx/{txid}/input/{inputIndex}"

The above command returns JSON structured like this:


{
    "index": 0,
    "source": {
        "txid": "5a63449e5bcbc2e266857c9a2f90ae4cea9907b4dd16793d2db11f9524caaff7",
        "index": 0,
        "script": "76a9141519647c1f457a5f7784ef552ce0538dd3a5678a88ac",
        "scripthash": "43451f28dff6dd3109af4b83e5fe7828120d1169d1c1c5106c58b2f7039d50c4",
        "satoshis": 18776
      },
    "scriptSig": "483045022100cfda7d900ccce55c40089df9474e61177f27ac2f3be74b9e958805fab61c992202206ad20dbfcdb244fa8d49fbbb6fde6d5dbe43cd9f93e8d96b6bea983079f17829412102062d9f5d80fcd868c5db4ace2fb38d907296c0b2a00b603a0ec4237b850a04e7",
    "sequence": 4294967295,
}
 

This endpoint retrieves an input of a transaction.

HTTP Request

GET https://api.bitails.io/tx/{txid}/input/{inputIndex}

Parameter Description
txid
index Input index

Get Inputs of Transaction


# f3f4e891bf22e62530acdedae2ec383cd961b8ca70039c4183c1dee16ef8463b  
curl "https://api.bitails.io/tx/{txid}/inputs/{fromIndex}/{toIndex}"

The above command returns JSON structured like this:


[
{
"index": 0,
"source": {
    "txid": "5a63449e5bcbc2e266857c9a2f90ae4cea9907b4dd16793d2db11f9524caaff7",
    "index": 0,
    "script": "76a9141519647c1f457a5f7784ef552ce0538dd3a5678a88ac",
    "scripthash": "43451f28dff6dd3109af4b83e5fe7828120d1169d1c1c5106c58b2f7039d50c4",
    "satoshis": 18776
  },
"scriptSig": "483045022100cfda7d900ccce55c40089df9474e61177f27ac2f3be74b9e958805fab61c992202206ad20dbfcdb244fa8d49fbbb6fde6d5dbe43cd9f93e8d96b6bea983079f17829412102062d9f5d80fcd868c5db4ace2fb38d907296c0b2a00b603a0ec4237b850a04e7",
"sequence": 4294967295,
},
{
"index": 0,
"source": {
    "txid": "5a63449e5bcbc2e266857c9a2f90ae4cea9907b4dd16793d2db11f9524caaff7",
    "index": 0,
    "script": "76a9141519647c1f457a5f7784ef552ce0538dd3a5678a88ac",
    "scripthash": "43451f28dff6dd3109af4b83e5fe7828120d1169d1c1c5106c58b2f7039d50c4",
    "satoshis": 18776
  },
"scriptSig": "483045022100cfda7d900ccce55c40089df9474e61177f27ac2f3be74b9e958805fab61c992202206ad20dbfcdb244fa8d49fbbb6fde6d5dbe43cd9f93e8d96b6bea983079f17829412102062d9f5d80fcd868c5db4ace2fb38d907296c0b2a00b603a0ec4237b850a04e7",
"sequence": 4294967295,
},
{
"index": 0,
"source": {
    "txid": "5a63449e5bcbc2e266857c9a2f90ae4cea9907b4dd16793d2db11f9524caaff7",
    "index": 0,
    "script": "76a9141519647c1f457a5f7784ef552ce0538dd3a5678a88ac",
    "scripthash": "43451f28dff6dd3109af4b83e5fe7828120d1169d1c1c5106c58b2f7039d50c4",
    "satoshis": 18776
  },
"scriptSig": "483045022100cfda7d900ccce55c40089df9474e61177f27ac2f3be74b9e958805fab61c992202206ad20dbfcdb244fa8d49fbbb6fde6d5dbe43cd9f93e8d96b6bea983079f17829412102062d9f5d80fcd868c5db4ace2fb38d907296c0b2a00b603a0ec4237b850a04e7",
"sequence": 4294967295,
},
]

This endpoint retrieves multiple inputs of a transaction.

HTTP Request

GET https://api.bitails.io/tx/{txid}/inputs/{fromIndex}/{toIndex}

Parameter Description
txid
from Starting index
to Ending index

Get Output of Transaction


# f3f4e891bf22e62530acdedae2ec383cd961b8ca70039c4183c1dee16ef8463b  
curl "https://api.bitails.io/tx/{txid}/output/{outputIndex}"

The above command returns JSON structured like this:


{
    "index": 0,
    "type": "nulldata"
    "reqSigs": -1,
    "scripthash": "cbb5deafd5267b5cc8b09e4396928035121de3135ff053117eceebb882875d82",
    "spent": "false",
    "scriptSize": 938,
    "partialScript": "false",
    "script": "006a2231394878696756345179427633744870515663554551797131707a5a56646f41757403626173106170706c69636174696f6e2f6a736f6e0100306d705f74726164655f76345f3148456d3235445a326276634c7548757132767759546357577638776d5a524569395f3108677a69702c656e634d3103261d4dff43edf620b6f92a35a7a0eeed02f628d0494aa0c7895baf15892a5b1305d702b7726a1e53f9b3820cd03a5b40055b54b0fefbfa2f021637d5f5fea58b345a79b3d58a3c3cc427cf1ba5e3daeb35a6de2c90d1aa95db008845104bdbd8bab185305da20f3ecc7b59a6641a077fa011a1891d5bfabc1bb24943eb4e58038720f9347d8ab16069e94a600e9c0d5adba29b293606cd8849ee9125bf40313a3ca71b3d24a3c873ab1dc4322fcd22c541e8d22987cd5ca4d143f36759c3caff75f7b9e3e2583741f15252265db54a6e1113da9fea1448d1fd37f1e4c9f90cdbd925190a35f9e0df4bd243c0d5de4d8aca62ba60e53a792249f23dcfe4910a54bee9b16bfbfe84c68ad4b9bdb8ba7ee81c9c92ede77b2b11f93d8369b624c1259ec19e300d6b83b85d3baf508bba206fc72f23ce48950ff83cf81e7989ebc07e6d8d86efddb6a9352ad5c64dfa8d444b809e84130f8466b2dfc8f62b61475dfda02ba976f34fdf08e51cf0960b3eb...",
}
 

This endpoint retrieves an output of a transaction.

HTTP Request

GET https://api.bitails.io/tx/{txid}/output/{outputIndex}

Parameter Description
txid
index Output index

Get Outputs of Transaction


# 687a32b54ea9a8f270e648cdd6666185e452e5a9a92cabfc506d1bc1e3ecc5ac  
curl "https://api.bitails.io/tx/{txid}/outputs/{fromIndex}/{toIndex}"

The above command returns JSON structured like this:


[
{
"index": 0,
"type": "nulldata"
"reqSigs": -1,
"scripthash": "cbb5deafd5267b5cc8b09e4396928035121de3135ff053117eceebb882875d82",
"spent": "false",
"scriptSize": 938,
"partialScript": "false",
"script": "006a2231394878696756345179427633744870515663554551797131707a5a56646f41757403626173106170706c69636174696f6e2f6a736f6e0100306d705f74726164655f76345f3148456d3235445a326276634c7548757132767759546357577638776d5a524569395f3108677a69702c656e634d3103261d4dff43edf620b6f92a35a7a0eeed02f628d0494aa0c7895baf15892a5b1305d702b7726a1e53f9b3820cd03a5b40055b54b0fefbfa2f021637d5f5fea58b345a79b3d58a3c3cc427cf1ba5e3daeb35a6de2c90d1aa95db008845104bdbd8bab185305da20f3ecc7b59a6641a077fa011a1891d5bfabc1bb24943eb4e58038720f9347d8ab16069e94a600e9c0d5adba29b293606cd8849ee9125bf40313a3ca71b3d24a3c873ab1dc4322fcd22c541e8d22987cd5ca4d143f36759c3caff75f7b9e3e2583741f15252265db54a6e1113da9fea1448d1fd37f1e4c9f90cdbd925190a35f9e0df4bd243c0d5de4d8aca62ba60e53a792249f23dcfe4910a54bee9b16bfbfe84c68ad4b9bdb8ba7ee81c9c92ede77b2b11f93d8369b624c1259ec19e300d6b83b85d3baf508bba206fc72f23ce48950ff83cf81e7989ebc07e6d8d86efddb6a9352ad5c64dfa8d444b809e84130f8466b2dfc8f62b61475dfda02ba976f34fdf08e51cf0960b3eb...",
},
{
"index": 1,
"type": "pubkeyhash"
"reqSigs": 1,
"satoshis": 800,
"scripthash": "cbb5deafd5267b5cc8b09e4396928035121de3135ff053117eceebb882875d82",
"spent": "false",
"scriptSize": 25,
"partialScript": "false",
"script": "76a914feaf96c5b259c80d36bdd1d6f1d8caa9bb584fe188ac...",
]

This endpoint retrieves multiple outputs of a transaction.

HTTP Request

GET https://api.bitails.io/tx/{txid}/outputs/{fromIndex}/{toIndex}

Parameter Description
txid
from Starting index
to Ending index

Get Transaction By ID


# c32597ddd7d8623d7eb1ddd854ab36541e037dc1f9f0ab7aaf55d3a1e5a17af0  
curl "https://api.bitails.io/tx/{txid}"

The above command returns JSON structured like this:

[
  {
    "txid": "c32597ddd7d8623d7eb1ddd854ab36541e037dc1f9f0ab7aaf55d3a1e5a17af0",
    "blockhash": "00000000000000001055c413778451e93e4ab0b4ee442900470abe777916da35",
    "blockheight": 742364,
    "inblockIndex": 5,
    "confirmations": 1234,
    "time": 1654203396,
    "size": 1128,
    "fee": 645,
    "ops": [0]
    "inputsCount": 2,
    "sumOfInputsSatoshis": 1247,
    "outputsCount": 2,
    "sumOfOutputsSatoshis": 602,
    "locktime": 0,
    "partialInputs": false,
    "inputs": [
        {
        "index": 0,
        "source": {
            "txid": "5a63449e5bcbc2e266857c9a2f90ae4cea9907b4dd16793d2db11f9524caaff7",
            "index": 0,
            "script": "76a914334e3f294c770f954055533c8141a91a7f7ab0fa88ac",
            "scripthash": "2d287814f112e35f2c665b7c29a4ff2e8c8435c1d6353e5a0b34432209e87f73",
            "satoshis": 18776
                  },
        "scriptSig": "483045022100cfda7d900ccce55c40089df9474e61177f27ac2f3be74b9e958805fab61c992202206ad20dbfcdb244fa8d49fbbb6fde6d5dbe43cd9f93e8d96b6bea983079f17829412102062d9f5d80fcd868c5db4ace2fb38d907296c0b2a00b603a0ec4237b850a04e7",
        "sequence": 4294967295,
        },
        {
        "index": 1,
        "source": {
            "txid": "5a63449e5bcbc2e266857c9a2f90ae4cea9907b4dd16793d2db11f9524caaff7",
            "index": 0,
            "script": "76a914334e3f294c770f954055533c8141a91a7f7ab0fa88ac",
            "scripthash": "2d287814f112e35f2c665b7c29a4ff2e8c8435c1d6353e5a0b34432209e87f73",
            "satoshis": 18776
                  },
        "scriptSig": "483045022100cfda7d900ccce55c40089df9474e61177f27ac2f3be74b9e958805fab61c992202206ad20dbfcdb244fa8d49fbbb6fde6d5dbe43cd9f93e8d96b6bea983079f17829412102062d9f5d80fcd868c5db4ace2fb38d907296c0b2a00b603a0ec4237b850a04e7",
        "sequence": 4294967295,
        }
      ],
    "partialOutputs": false,
    "outputs": [
        {
        "index": 0,
        "type": "nulldata"
        "reqSigs": -1,
        "scripthash": "cbb5deafd5267b5cc8b09e4396928035121de3135ff053117eceebb882875d82",
        "spent": "false",
        "scriptSize": 938,
        "partialScript": "false",
        "script": "006a2231394878696756345179427633744870515663554551797131707a5a56646f41757403626173106170706c69636174696f6e2f6a736f6e0100306d705f74726164655f76345f3148456d3235445a326276634c7548757132767759546357577638776d5a524569395f3108677a69702c656e634d3103261d4dff43edf620b6f92a35a7a0eeed02f628d0494aa0c7895baf15892a5b1305d702b7726a1e53f9b3820cd03a5b40055b54b0fefbfa2f021637d5f5fea58b345a79b3d58a3c3cc427cf1ba5e3daeb35a6de2c90d1aa95db008845104bdbd8bab185305da20f3ecc7b59a6641a077fa011a1891d5bfabc1bb24943eb4e58038720f9347d8ab16069e94a600e9c0d5adba29b293606cd8849ee9125bf40313a3ca71b3d24a3c873ab1dc4322fcd22c541e8d22987cd5ca4d143f36759c3caff75f7b9e3e2583741f15252265db54a6e1113da9fea1448d1fd37f1e4c9f90cdbd925190a35f9e0df4bd243c0d5de4d8aca62ba60e53a792249f23dcfe4910a54bee9b16bfbfe84c68ad4b9bdb8ba7ee81c9c92ede77b2b11f93d8369b624c1259ec19e300d6b83b85d3baf508bba206fc72f23ce48950ff83cf81e7989ebc07e6d8d86efddb6a9352ad5c64dfa8d444b809e84130f8466b2dfc8f62b61475dfda02ba976f34fdf08e51cf0960b3eb...",
        },
        {
        "index": 1,
        "type": "pubkeyhash"
        "reqSigs": 1,
        "satoshis": 800,
        "scripthash": "cbb5deafd5267b5cc8b09e4396928035121de3135ff053117eceebb882875d82",
        "spent": "false",
        "scriptSize": 25,
        "partialScript": "false",
        "script": "76a914feaf96c5b259c80d36bdd1d6f1d8caa9bb584fe188ac...",
     }
    ]
  }
] 

This endpoint retrieves the parsed format of transaction.

HTTP Request

GET https://api.bitails.io/tx/{txid}

Parameter Description
txid

Get Transaction Status By ID


# c32597ddd7d8623d7eb1ddd854ab36541e037dc1f9f0ab7aaf55d3a1e5a17af0  
curl "https://api.bitails.io/tx/{txid}/status"

The above command returns JSON structured like this:

{
    "txid": "c32597ddd7d8623d7eb1ddd854ab36541e037dc1f9f0ab7aaf55d3a1e5a17af0",
    "blockhash": "00000000000000001055c413778451e93e4ab0b4ee442900470abe777916da35",
    "blockheight": 742364,
    "blocktime": 1654203396,
    "confirmations": 1234,
    "status": "confirmed|mempool|Not Found",
} 

This endpoint retrieves the status of a transaction(confirmed, mempool and Not Found).

HTTP Request

GET https://api.bitails.io/tx/{txid}/status

Parameter Description
txid

Get Multi Transactions Status By Their IDs


# c32597ddd7d8623d7eb1ddd854ab36541e037dc1f9f0ab7aaf55d3a1e5a17af0  
curl --location --request POST "https://api.bitails.io/tx/status/multi" \
--header "Content-Type: application/json" \
--data "{\"txsIds\": \["txid...\"]}"

The above command returns JSON structured like this:

[
  {
    "txid": "c32597ddd7d8623d7eb1ddd854ab36541e037dc1f9f0ab7aaf55d3a1e5a17af0",
    "blockhash": "00000000000000001055c413778451e93e4ab0b4ee442900470abe777916da35",
    "blockheight": 742364,
    "blocktime": 1654203396,
    "confirmations": 1234,
    "status": "confirmed|mempool|Not Found",
  }
] 

This endpoint retrieves the status of a batch of transactions(confirmed, mempool and Not Found).

HTTP Request

POST https://api.bitails.io/tx/status/multi

Parameter Description
txIds array of the txids

Get UTXO Status


# c32597ddd7d8623d7eb1ddd854ab36541e037dc1f9f0ab7aaf55d3a1e5a17af0  
curl "https://api.bitails.io/tx/{txid}/output/{outputIndex}/status"

The above command returns JSON structured like this:

{
    "txid": "c32597ddd7d8623d7eb1ddd854ab36541e037dc1f9f0ab7aaf55d3a1e5a17af0",
    "index": "00000000000000001055c413778451e93e4ab0b4ee442900470abe777916da35",
    "blockheight": 742364,
    "status": "exists|unknown",
    "spent": true|false,
}  

This endpoint retrieves the staus of a UTXO.

exists/false: The UTXO in mined in previous blocks and has not been spent in the mempool.

exists/true: The UTXO in mined in previous blocks but has been spent recently in a transaction which is not mined yet.

mempool/false: The UTXO just got created and has not been mined and spent.

mempool/true: The UTXO just got created and has not been mined but spent in another transaction which is also in the mempool.

Unknown: We dont know the UTXO(It was spent or didn't exists at all)

HTTP Request

GET https://api.bitails.io/tx/{txid}/output/{outputIndex}/status

Parameter Description
txid
index

Get Multi UTXOs Status


# c32597ddd7d8623d7eb1ddd854ab36541e037dc1f9f0ab7aaf55d3a1e5a17af0  
curl --location --request POST "https://api.bitails.io/tx/output/status/multi" \
--header "Content-Type: application/json" \
--data "{\"outputs\": [{\"txid\":\"txid...\", \"index\": number }]}"

The above command returns JSON structured like this:

[
  {
    "txid": "c32597ddd7d8623d7eb1ddd854ab36541e037dc1f9f0ab7aaf55d3a1e5a17af0",
    "index": "00000000000000001055c413778451e93e4ab0b4ee442900470abe777916da35",
    "blockheight": 742364,
    "status": "exists|unknown",
    "spent": true|false,
  }
]  

This endpoint retrieves the staus of multi UTXOs.

exists/false: The UTXO in mined in previous blocks and has not been spent in the mempool.

exists/true: The UTXO in mined in previous blocks but has been spent recently in a transaction which is not mined yet.

mempool/false: The UTXO just got created and has not been mined and spent.

mempool/true: The UTXO just got created and has not been mined but spent in another transaction which is also in the mempool.

Unknown: We dont know the UTXO(It was spent or didn't exists at all)

HTTP Request

POST https://api.bitails.io/tx/output/status/multi

Parameter Description
outputs array of txids and their indexes

Get Merkle Proof


# 13d94f78bcaddcadf0fb7672f788c62cb93d5cdaa73e187d44cee24849d80f89  
curl "https://api.bitails.io/tx/{txid}/proof"

The above command returns JSON structured like this:


{
"blockhash": "00000000000000000085985685d702b6c2911db73800cc5601333e2f60312ba2",
"branches": [
    {
        "pos": "R",
        "hash": "946e8cf5a6d812f2cb666531ba59e80847abd6cdc05d65695a5fc41682d4379c",
        },
        {
        "pos": "L",
        "hash": "966d90b60347991a47feff12dd3533d89b68cda452488e236481da0456a169d6",
        },
        {
        "pos": "L",
        "hash": "ea0b162823c00a628575ab0c4c008837a1d8e6544932be457dff1c5ef8c5a2bc",
        },
        {
        "pos": "R",
        "hash": "831c2840c0882ca369fd18b5187ea55a3108245480c6b25ff6cd15ec0f563990",
    }
  ],
"hash": "13d94f78bcaddcadf0fb7672f788c62cb93d5cdaa73e187d44cee24849d80f89",
"merkleRoot": "10aff887bac4789106e85312b2afdcebd71926c15b0604236af9f2972ab30d8d"
}

This endpoint retrieves the proof of a transaction.

HTTP Request

GET https://api.bitails.io/tx/{txid}/proof

Parameter Description
txid

Get Merkle Proof - TSC Format


# 13d94f78bcaddcadf0fb7672f788c62cb93d5cdaa73e187d44cee24849d80f89  
curl "https://api.bitails.io/tx/{txid}/proof/tsc"

The above command returns JSON structured like this:


{
"index": 6,
"txOrId": "13d94f78bcaddcadf0fb7672f788c62cb93d5cdaa73e187d44cee24849d80f89",
"target": "00000000000000000085985685d702b6c2911db73800cc5601333e2f60312ba2",
"nodes": [
"946e8cf5a6d812f2cb666531ba59e80847abd6cdc05d65695a5fc41682d4379c",
"966d90b60347991a47feff12dd3533d89b68cda452488e236481da0456a169d6",
"ea0b162823c00a628575ab0c4c008837a1d8e6544932be457dff1c5ef8c5a2bc",
"831c2840c0882ca369fd18b5187ea55a3108245480c6b25ff6cd15ec0f563990",
"e9b4210567f28b3b77c4979c4ed8f9e5fd9a123eee01d0dd5f31d9dc6315286e",
"e6c435ede10b252f8ee4f8bdd43ee5c93414d8e02aefbcc3921e33da5c6802d3",
  ]
}

This endpoint retrieves the proof of a transaction.

HTTP Request

GET https://api.bitails.io/tx/{txid}/proof/tsc

Parameter Description
txid

Send Raw Transaction


 
curl --location --request POST "https://api.bitails.io/tx/broadcast" \
--header "Content-Type: application/json" \
--data "{\"raw\": \"hexRawTX...\" }"

The above command returns JSON structured like this:


{
"txid": "946e8cf5a6d812f2cb666531ba59e80847abd6cdc05d65695a5fc41682d4379c",
}

This endpoint broadcasts the raw transaction up to 32MB in hex to the Blockchain.

HTTP Request

POST https://api.bitails.io/tx/broadcast

Request Body

Key Value
raw The raw format of tx in hex

Send Multi Raw Transactions


 
curl --location --request POST "https://api.bitails.io/tx/broadcast/multi" \
--header "Content-Type: application/json" \
--data "\"raws\": [\"hexRawTX...\", \"hexRawTX...\" ]"

The above command returns JSON structured like this:


[
  {
    "txid": "946e8cf5a6d812f2cb666531ba59e80847abd6cdc05d65695a5fc41682d4379c",
    "error":
    {
      "code": 0,
      "message": "string",
    }
  },
  {
    "txid": "946e8cf5a6d812f2cb666531ba59e80847abd6cdc05d65695a5fc41682d4379c",
    "error":
    {
      "code": 0,
      "message": "string",
    }
  }
]

This endpoint broadcasts the raw transaction up to 32MB in hex to the Blockchain.

HTTP Request

POST https://api.bitails.io/tx/broadcast/multi

Request Body

Key Value
raws The raw format of txs in hex

Send Big Raw Transaction


 
request(
  {
    url: 'https://test-api.bitails.io/tx/broadcast/multipart',
    method: 'POST',
    formData: { 
      raw: {
        value: Buffer.from(
          '0100000001944a3a02dd89a9eb0336a137.......',
          'hex'
        ),
        options: {
          filename: 'raw' 
        }
      }
    }
  },
  (err, res, body) => {
    console.log(err, body);
  }
);

The above command returns JSON structured like this:


{
"txid": "946e8cf5a6d812f2cb666531ba59e80847abd6cdc05d65695a5fc41682d4379c",
}

This endpoint is usefull for broadcasting a huge transaction.

HTTP Request

POST https://api.bitails.io/tx/broadcast/multipart

Request Body

Key Value
raw The raw format of tx in hex

Block

Get Block By Height

  
curl "https://api.bitails.io/block/height/{height}"

The above command returns JSON structured like this:


{
  "hash": "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201",
  "size": 81577,
  "height": 500000,
  "version": 536870912,
  "versionHex": "20000000",
  "merkleroot": "4af279645e1b337e655ae3286fc2ca09f58eb01efa6ab27adedd1e9e6ec19091",
  "transactionCount": 150,
  "time": 1509343584,
  "mediantime": 1509336533,
  "nonce": 3604508752,
  "bits": "1809b91a",
  "chainwork": "0000000000000000000000000000000000000000007ae48aca46e3b449ad9714",
  "previousBlockHash": "0000000000000000043831d6ebb013716f0580287ee5e5687e27d0ed72e6e523",
  "nextBlockHash": "00000000000000000568f0a96bf4348847bc84e455cbfec389f27311037a20f3",
  "transactionsInputsCount": 468,
  "sumOfInputSatoshis": 2978761212445,
  "transactionsOutputsCount": 273,
  "sumOfOutputSatoshis": 2978758164777,
  "fees": 3047668,
  "averageFee": 20454,
  "feeRate": 37.43879907621247,
  "blockSubsidy": 1250000000,
  "minerId": "string",
  "orphan": false,
  "tags": 
  [
    {
        "tag": "nonstandard",
        count: 4,
    },
    {
        "tag": "upfile",
        count: 4,
    }
  ]
  "partialTransactions": true,
  "transactionsDetails": [
      {
          "index": 0,
          "txid": "946e8cf5a6d812f2cb666531ba59e80847abd6cdc05d65695a5fc41682d4379c",
          "inputsCount": 2,
          "outputsCount": 2,
          "size": 350,
      },
      {
          "index": 0,
          "txid": "946e8cf5a6d812f2cb666531ba59e80847abd6cdc05d65695a5fc41682d4379c",
          "inputsCount": 2,
          "outputsCount": 2,
          "size": 350,
      },
      {
          "index": 0,
          "txid": "946e8cf5a6d812f2cb666531ba59e80847abd6cdc05d65695a5fc41682d4379c",
          "inputsCount": 2,
          "outputsCount": 2,
          "size": 350,
      }
    ]
}
 

This endpoint retrieves a block data by height.

HTTP Request

GET https://api.bitails.io/block/height/{height}

Parameter Description
height Block Height

Count Blocks By Miner

  
curl "https://api.bitails.io/block/count?minerId={MinerName}"

The above command returns JSON structured like this:


  56736

This endpoint retrieves block counts based on the miner.

HTTP Request

GET https://api.bitails.io/block/count?minerId={Miner Name}

Parameter Description
minerId Miner Name

Get Block List

  
curl "https://api.bitails.io/block/list?fromHeight={height}&limit={limit}"

The above command returns JSON structured like this:


[
  {
    "hash": "00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09",
    "confirmations": 819168,
    "height": 1000,
    "version": 1,
    "versionHex": "00000001",
    "merkleroot": "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33",
    "time": 1232346882,
    "mediantime": 1232344831,
    "nonce": 2595206198,
    "bits": "1d00ffff",
    "difficulty": 1,
    "chainwork": "000000000000000000000000000000000000000000000000000003e903e903e9",
    "previousBlockHash": "0000000008e647742775a230787d66fdf92c46a48c896bfbc85cdc8acc67e87d",
    "nextBlockHash": "00000000a2887344f8db859e372e7e4bc26b23b9de340f725afbf2edb265b4c6",
    "size": 216,
    "transactionsCount": 1,
    "details": {
      "transactionsInputsCount": 1,
      "sumOfInputSatoshis": 0,
      "transactionsOutputsCount": 1,
      "sumOfOutputSatoshis": 0,
      "totalFee": 0,
      "averageFee": 0,
      "age": 468760416,
      "minerId": ""
    }
  }
]

This endpoint retrieves a list of blocks with details.

HTTP Request

GET https://api.bitails.io/block/list??skip={skip}&limit={limit}&sort={sortBy}&direction={asc|desc}

URL Parameters

Parameter Description
skip number of blocks to skip
limit number of blocks to list
sortBy height|size|transactions|fees
direction asc|desc

Get Latest Block

  
curl "https://api.bitails.io/block/latest"

The above command returns JSON structured like this:


  {
  "hash": "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201",
  "size": 81577,
  "height": 500000,
  "version": 536870912,
  "versionHex": "20000000",
  "merkleroot": "4af279645e1b337e655ae3286fc2ca09f58eb01efa6ab27adedd1e9e6ec19091",
  "transactionCount": 150,
  "time": 1509343584,
  "mediantime": 1509336533,
  "nonce": 3604508752,
  "bits": "1809b91a",
  "chainwork": "0000000000000000000000000000000000000000007ae48aca46e3b449ad9714",
  "previousBlockHash": "0000000000000000043831d6ebb013716f0580287ee5e5687e27d0ed72e6e523",
  "nextBlockHash": "00000000000000000568f0a96bf4348847bc84e455cbfec389f27311037a20f3",
  "transactionsInputsCount": 468,
  "sumOfInputSatoshis": 2978761212445,
  "transactionsOutputsCount": 273,
  "sumOfOutputSatoshis": 2978758164777,
  "fees": 3047668,
  "averageFee": 20454,
  "feeRate": 37.43879907621247,
  "blockSubsidy": 1250000000,
  "minerId": "string",
  "orphan": false,
  "tags": 
  [
    {
        "tag": "nonstandard",
        count: 4,
    },
    {
        "tag": "upfile",
        count: 4,
    }
  ]
  "partialTransactions": true,
  "transactionsDetails": [
      {
          "index": 0,
          "txid": "946e8cf5a6d812f2cb666531ba59e80847abd6cdc05d65695a5fc41682d4379c",
          "inputsCount": 2,
          "outputsCount": 2,
          "size": 350,
      },
      {
          "index": 0,
          "txid": "946e8cf5a6d812f2cb666531ba59e80847abd6cdc05d65695a5fc41682d4379c",
          "inputsCount": 2,
          "outputsCount": 2,
          "size": 350,
      },
      {
          "index": 0,
          "txid": "946e8cf5a6d812f2cb666531ba59e80847abd6cdc05d65695a5fc41682d4379c",
          "inputsCount": 2,
          "outputsCount": 2,
          "size": 350,
      }
    ]
}
 

This endpoint retrieves the latest block.

HTTP Request

GET https://api.bitails.io/block/latest

Get Block By Hash

  
curl "https://api.bitails.io/block/{blockhash}"

The above command returns JSON structured like this:


  {
  "hash": "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201",
  "size": 81577,
  "height": 500000,
  "version": 536870912,
  "versionHex": "20000000",
  "merkleroot": "4af279645e1b337e655ae3286fc2ca09f58eb01efa6ab27adedd1e9e6ec19091",
  "transactionCount": 150,
  "time": 1509343584,
  "mediantime": 1509336533,
  "nonce": 3604508752,
  "bits": "1809b91a",
  "chainwork": "0000000000000000000000000000000000000000007ae48aca46e3b449ad9714",
  "previousBlockHash": "0000000000000000043831d6ebb013716f0580287ee5e5687e27d0ed72e6e523",
  "nextBlockHash": "00000000000000000568f0a96bf4348847bc84e455cbfec389f27311037a20f3",
  "transactionsInputsCount": 468,
  "sumOfInputSatoshis": 2978761212445,
  "transactionsOutputsCount": 273,
  "sumOfOutputSatoshis": 2978758164777,
  "fees": 3047668,
  "averageFee": 20454,
  "feeRate": 37.43879907621247,
  "blockSubsidy": 1250000000,
  "minerId": "string",
  "orphan": false,
  "tags": 
  [
    {
        "tag": "nonstandard",
        count: 4,
    },
    {
        "tag": "upfile",
        count: 4,
    }
  ]
  "partialTransactions": true,
  "transactionsDetails": [
      {
          "index": 0,
          "txid": "946e8cf5a6d812f2cb666531ba59e80847abd6cdc05d65695a5fc41682d4379c",
          "inputsCount": 2,
          "outputsCount": 2,
          "size": 350,
      },
      {
          "index": 0,
          "txid": "946e8cf5a6d812f2cb666531ba59e80847abd6cdc05d65695a5fc41682d4379c",
          "inputsCount": 2,
          "outputsCount": 2,
          "size": 350,
      },
      {
          "index": 0,
          "txid": "946e8cf5a6d812f2cb666531ba59e80847abd6cdc05d65695a5fc41682d4379c",
          "inputsCount": 2,
          "outputsCount": 2,
          "size": 350,
      }
    ]
}
 

This endpoint retrieves the block data by hash.

HTTP Request

GET https://api.bitails.io/block/{blockhash}

Parameter Description
hash Block Hash

Get Block Header by Height

  
curl "https://api.bitails.io/block/header/height/{blockheight}/raw"

The above command returns JSON structured like this:

{
  "header": "010000000c59cf62add14129195d91b7e55dad81b539002d7366acfc01902c0000000000ec5abb8c8b90e2e04c14648853ba9d262e4e8677b374a7da52650f2ea5ea1a9275f2794c9820691b0689738c",
}
 

This endpoint retrieves the block data by hash.

HTTP Request

GET https://api.bitails.io/block/header/height/{blockheight}/raw

Parameter Description
hash Block Hash

Get Transactions of Block

  
curl "https://api.bitails.io/block/{blockhash}/transactions"

The above command returns JSON structured like this:


 [
        {
        "index": 0,
        "txid": "946e8cf5a6d812f2cb666531ba59e80847abd6cdc05d65695a5fc41682d4379c",
        "inputsCount": 2,
        "outputsCount": 2,
        "size": 350,
        "ops": [4,6],
        "tags": ["string"]
        },
        {
        "index": 1,
        "txid": "946e8cf5a6d812f2cb666531ba59e80847abd6cdc05d65695a5fc41682d4379c",
        "inputsCount": 1,
        "outputsCount": 2,
        "size": 224,
        },
        {
        "index": 2,
        "txid": "946e8cf5a6d812f2cb666531ba59e80847abd6cdc05d65695a5fc41682d4379c",
        "inputsCount": 1,
        "outputsCount": 1,
        "size": 173,
        }
    ]
 

This endpoint retrieves the transactions of a block.

HTTP Request

GET https://api.bitails.io/block/{blockhash}/transactions

Parameter Description
hash Block Hash
from Starting Index
limit Number of Results

Get Stats of Transactions

  
curl "https://api.bitails.io/block/stats/tag/summary?fromTime={epocTime}&toTime={epocTime}"

The above command returns JSON structured like this:


 [
        {
        "tag": "string",
        "count": 1472,
        },
        {
        "tag": "string",
        "count": 1472,
        },
        {
        "tag": "string",
        "count": 1472,
        },
        {
        "tag": "string",
        "count": 1472,
        }
  ]
 

This endpoint retrieves the stats summary of transactions(based on the tags) in blocks(not including the transactions in Mempool).

HTTP Request

GET https://api.bitails.io/block/stats/tag/summary?fromTime=1684230509&toTime=1684930509

Parameter Description
fromTime Epoc - required
toTime

Get Histogram Stats of Transactions

  
curl "https://api.bitails.io/block/stats/tag/1h/histogram?fromTime=1700659941&toTime=1701091969"

The above command returns JSON structured like this:


  [
  {
    "time": 1700661491,
    "tags": [
      {
        "tag": "stas",
        "count": 7
      },
      {
        "tag": "tdxp",
        "count": 44
      },
      {
        "tag": "run",
        "count": 28
      }
    ]
  }
]

This endpoint retrieves the histogram summary of transactions(based on the tags) in blocks(not including the transactions in Mempool).

HTTP Request

GET https://api.bitails.io/block/stats/tag/1h/histogram?fromTime=1700659941&toTime=1701091969

Parameter Description
fromTime Epoc - required
toTime
period 1h, 24h, 7d

Get Histogram Mining Stats

  
curl "https://api.bitails.io/block/stats/mining/1h/histogram?fromTime=1700659941&toTime=1701091969"

The above command returns JSON structured like this:


 [
        {
        "time": "1700661491",
        "miners":
            [
                {
                "minerId": "string",
                "count": 1,
                "size": 423234,
                "fees": 685653,
                "txs": 1232
                }
            ]
        }
  ]
 

This endpoint retrieves the histogram summary of blocks mined by miners in a period of time.

HTTP Request

GET https://api.bitails.io/block/stats/tag/summary?fromTime=1684230509&toTime=1684930509

Parameter Description
fromTime Epoc - required
toTime
period 1h, 24h, 7d

Get Histogram Mining Metrics

  
curl "https://api.bitails.io/block/stats/props/1h/histogram?fromTime=1700659941&toTime=1701091969"

The above command returns JSON structured like this:


[
  {
  "averageNumOfTxs": 2501,
  "totalNumOfTxs": 2501,
  "totalTxsInputs": 3825,
  "totalTxsOutputs": 5628,
  "averageSize": 1049412,
  "totalSize": 1049412,
  "averageFees": 73,
  "txAverageFee": 73,
  "txMedianFee": 5,
  "totalBlockFees": 183119,
  "averageFeeRate": 0.17449676580790005,
  "averageTxSize": 419,
  "MedianTxSize": 293,
  "time": 1700661491
  },
  {
  "averageNumOfTxs": 2501,
  "totalNumOfTxs": 2501,
  "totalTxsInputs": 3825,
  "totalTxsOutputs": 5628,
  "averageSize": 1049412,
  "totalSize": 1049412,
  "averageFees": 73,
  "txAverageFee": 73,
  "txMedianFee": 5,
  "totalBlockFees": 183119,
  "averageFeeRate": 0.17449676580790005,
  "averageTxSize": 419,
  "MedianTxSize": 293,
  "time": 1700661491
  } 
]

This endpoint retrieves the histogram metrics for blocks mined in a period of time.

HTTP Request

GET https://api.bitails.io/block/stats/props/1h/histogram?fromTime=1700659941&toTime=1701091969

Parameter Description
fromTime Epoc - required
toTime
period 1h, 24h, 7d

Mempool

Get Mempool Info

  
curl "https://api.bitails.io/mempool"

The above command returns JSON structured like this:


  {
    "transactionsCount": 23764,
    "size": 10998880813,
    "circulatedSatoshis": "2976405264895",
    "age": 1776,
  }
 

This endpoint retrieves the Mempool info.

HTTP Request

GET https://api.bitails.io/mempool

Get Mempool transactions

 
   
curl "https://api.bitails.io/mempool/transactions"

The above command returns JSON structured like this:


[
  {
    "txid": "c09e7ecccc9305377b01c754e008b7bd434b092e0d629a1c836806a30d86338f",
    "countOfInputs": 2,
    "countOfOutputs": 1,
    "ops": [0],
    "size": 403,
    "timestamp": 1658243646,
  },
  {
  "txid": "c09e7ecccc9305377b01c754e008b7bd434b092e0d629a1c836806a30d86338f",
  "countOfInputs": 2,
  "countOfOutputs": 1,
  "ops": [0],
  "size": 403,
  "timestamp": 1658243646,
  },
  {
  "txid": "c09e7ecccc9305377b01c754e008b7bd434b092e0d629a1c836806a30d86338f",
  "countOfInputs": 2,
  "countOfOutputs": 1,
  "ops": [0],
  "size": 403,
  "timestamp": 1658243646,
  },
]
 

This endpoint retrieves the transactions in mempool.

HTTP Request

GET https://api.bitails.io/mempool/transactions

URL Parameters

Parameter Description
from Starting index
limit Number of transactions to retrieve

Network

Get Network Stats

  
curl "https://api.bitails.io/network/stats"

The above command returns JSON structured like this:


  [
    {
    "daily": "{",
    "transactions": 1858986,
    "tpsAverage": 21.759002588863734,
    "blocks": 140,
    "blockAverageTime": 610,
    "blockAverageSize": 120234565,
    "size": 18810864256,
    },
    {
    "weekly": "{",
    "transactions": 1858986,
    "tpsAverage": 21.759002588863734,
    "blocks": 140,
    "blockAverageTime": 610,
    "blockAverageSize": 120234565,
    "size": 18810864256,
    },
    {
    "monthly": "{",
    "transactions": 1858986,
    "tpsAverage": 21.759002588863734,
    "blocks": 140,
    "blockAverageTime": 610,
    "blockAverageSize": 120234565,
    "size": 18810864256,
    },
    {
    "yearly": "{",
    "transactions": 1858986,
    "tpsAverage": 21.759002588863734,
    "blocks": 140,
    "blockAverageTime": 610,
    "blockAverageSize": 120234565,
    "size": 18810864256,
    },
    {
    "alltime": "{",
    "transactions": 1858986,
    "tpsAverage": 21.759002588863734,
    "blocks": 140,
    "blockAverageTime": 610,
    "blockAverageSize": 120234565,
    "size": 18810864256,
    },
]
 

This endpoint retrieves the network stats.

HTTP Request

GET https://api.bitails.io/network/stats

Get Network Info

  
curl "https://api.bitails.io/network/info"

The above command returns JSON structured like this:


    {
    "blocks": 747778,
    "bestblockhash": "000000000000000009103cdfe9355853a1653148d5be978141d31f7bf2786cee",
    "chainwork": "00000000000000000000000000000000000000000139ace7839b1aef60d83f3c",
    "difficulty": 74430838267.01804,
    "mediantime": 1657539582,
    "blockAverageSize": 120234565,
    "size": 18810864256,
    }

This endpoint retrieves the network info.

HTTP Request

GET https://api.bitails.io/network/info

Download

Download Transaction


# 40ff70b97334699d71a552ab5ea97c996fa8d64a9e0dc0041ec1701b10ed6914 
curl "https://api.bitails.io/download/tx/{txid}"

The above command returns the transaction in binary and the following is one example on how to get the data:



  function bufferToHex (buffer) {
    return [...new Uint8Array (buffer)]
    .map (b => b.toString (16).padStart (2, "0"))
    .join ("");
}
axios.get('https://api.bitails.io/download/tx/40ff70b97334699d71a552ab5ea97c996fa8d64a9e0dc0041ec1701b10ed6914',
     {
          responseType: 'arraybuffer',
          headers: {
          'Content-Type': 'application/gzip'
     }
  })
  .then(async response => {
      console.log(bufferToHex(response.data));
  })
  .catch(error => {
      console.log({error});
});








This endpoint retrieves raw transaction data.

HTTP Request

GET https://api.bitails.io/download/tx/{txid}

Parameter Description
txid

Download Transaction in Hex


# 40ff70b97334699d71a552ab5ea97c996fa8d64a9e0dc0041ec1701b10ed6914 
curl "https://api.bitails.io/download/tx/{txid}/hex"

The above command returns the transaction in hex and the following is one example on how to get the data:



  function bufferToHex (buffer) {
    return [...new Uint8Array (buffer)]
    .map (b => b.toString (16).padStart (2, "0"))
    .join ("");
}
axios.get('https://api.bitails.io/download/tx/40ff70b97334699d71a552ab5ea97c996fa8d64a9e0dc0041ec1701b10ed6914/hex',
     {
          responseType: 'arraybuffer',
          headers: {
          'Content-Type': 'application/gzip'
     }
  })
  .then(async response => {
      console.log(bufferToHex(response.data));
  })
  .catch(error => {
      console.log({error});
});








This endpoint retrieves raw transaction data in Hex.

HTTP Request

GET https://api.bitails.io/download/tx/{txid}/hex

Parameter Description
txid

Download Transaction Output


# 40ff70b97334699d71a552ab5ea97c996fa8d64a9e0dc0041ec1701b10ed6914 
curl "https://api.bitails.io/download/tx/{txid}/output/{outputIndex}"

The above command returns the transaction output in binary, the following is one example on how to get the data:


function bufferToHex (buffer) {
      return [...new Uint8Array (buffer)]
      .map (b => b.toString (16).padStart (2, "0"))
      .join ("");
}
axios.get('https://api.bitails.io/download/tx/40ff70b97334699d71a552ab5ea97c996fa8d64a9e0dc0041ec1701b10ed6914/output/0',
       {
            responseType: 'arraybuffer',
            headers: {
            'Content-Type': 'application/gzip'
       }
    })
    .then(async response => {
        console.log(bufferToHex(response.data));
    })
    .catch(error => {
        console.log({error});
});










This endpoint retrieves specific transaction output( No need to download extra information).

HTTP Request

GET https://api.bitails.io/download/tx/{txid}/output/{outputIndex}

Parameter Description
txid
output Output index

Download Transaction Output in Hex


# 40ff70b97334699d71a552ab5ea97c996fa8d64a9e0dc0041ec1701b10ed6914 
curl "https://api.bitails.io/download/tx/{txid}/output/{outputIndex}/hex"

The above command returns the transaction output in Hex, the following is one example on how to get the data:


function bufferToHex (buffer) {
      return [...new Uint8Array (buffer)]
      .map (b => b.toString (16).padStart (2, "0"))
      .join ("");
}
axios.get('https://api.bitails.io/download/tx/40ff70b97334699d71a552ab5ea97c996fa8d64a9e0dc0041ec1701b10ed6914/output/0/hex',
       {
            responseType: 'arraybuffer',
            headers: {
            'Content-Type': 'application/gzip'
       }
    })
    .then(async response => {
        console.log(bufferToHex(response.data));
    })
    .catch(error => {
        console.log({error});
});










This endpoint retrieves specific transaction output in Hex( No need to download extra information).

HTTP Request

GET https://api.bitails.io/download/tx/{txid}/output/{outputIndex}/hex

Parameter Description
txid
output Output index

Download Transaction Input


# 40ff70b97334699d71a552ab5ea97c996fa8d64a9e0dc0041ec1701b10ed6914 
curl "https://api.bitails.io/download/tx/{txid}/input/{inputIndex}"

The above command returns the transaction input in binary, the following is one example on how to get the data:


function bufferToHex (buffer) {
      return [...new Uint8Array (buffer)]
      .map (b => b.toString (16).padStart (2, "0"))
      .join ("");
}
axios.get('https://api.bitails.io/download/tx/40ff70b97334699d71a552ab5ea97c996fa8d64a9e0dc0041ec1701b10ed6914/input/0',
       {
            responseType: 'arraybuffer',
            headers: {
            'Content-Type': 'application/gzip'
       }
    })
    .then(async response => {
        console.log(bufferToHex(response.data));
    })
    .catch(error => {
        console.log({error});
});










This endpoint retrieves specific transaction input( No need to download extra information).

HTTP Request

GET https://api.bitails.io/download/tx/{txid}/input/{inputIndex}

Parameter Description
txid
input Input index

Download Transaction Input in Hex


# 40ff70b97334699d71a552ab5ea97c996fa8d64a9e0dc0041ec1701b10ed6914 
curl "https://api.bitails.io/download/tx/{txid}/input/{inputIndex}/hex"

The above command returns the transaction input in Hex, the following is one example on how to get the data:


function bufferToHex (buffer) {
      return [...new Uint8Array (buffer)]
      .map (b => b.toString (16).padStart (2, "0"))
      .join ("");
}
axios.get('https://api.bitails.io/download/tx/40ff70b97334699d71a552ab5ea97c996fa8d64a9e0dc0041ec1701b10ed6914/input/0/hex',
       {
            responseType: 'arraybuffer',
            headers: {
            'Content-Type': 'application/gzip'
       }
    })
    .then(async response => {
        console.log(bufferToHex(response.data));
    })
    .catch(error => {
        console.log({error});
});










This endpoint retrieves specific transaction input in Hex( No need to download extra information).

HTTP Request

GET https://api.bitails.io/download/tx/{txid}/input/{inputIndex}/hex

Parameter Description
txid
input Input index

Search

Search Blockchain


curl "https://api.bitails.io/search?q={text}"

The above command returns JSON structured like this:


  {
    "ops": {
      "from": 0,
      "limit": 10,
      "total": 1400,
      "remain": 1390,
      "results":[
      {
      "txid": "40ff70b97334699d71a552ab5ea97c996fa8d64a9e0dc0041ec1701b10ed6914",
      "n": 0,
      "time": ,
      "highlight": [
      "Upfile-v1data:text/plain;base64,dGhpcyBpcyBhIHRlc3QgRmlsZQ==Upfile-v1"
       ]
      }
    ]
  }
}

This endpoint retrieves transactions including the search parameter.

HTTP Request

GET https://api.bitails.io/search?q={text}

Parameter Description
type all, ops, tx, block, scripthash, address
from Starting index
limit Ending index
fromTime Epoch
toTime Epoch

Socket

Fire up a socket and watch the network! A perfect tool for monitoring blockchain in real-time. It can be used for IoT devices, wallets and many other use cases.

Mempool Info


const { io } = require('socket.io-client')
const endpoint ='https://api.bitails.io/global'
const socket = io(endpoint, { transports: ['websocket']})
socket.connect()
socket.on('mempool',info => console.log(info))






Get mempool info in a 5 second interval

Topic

mempool

Watch All Transactions


const { io } = require('socket.io-client')
const endpoint ='https://api.bitails.io/global'
const socket = io(endpoint, { transports: ['websocket']})
socket.connect()
socket.on('tx', (data) => {
console.log(data);
});






Watch the network for all the transactions(different in output comparing to 'address' and 'scripthash' topics).

Topic

tx

Watch a Specific Transaction


const { io } = require('socket.io-client')
const endpoint ='https://api.bitails.io/global'
const socket = io(endpoint, { transports: ['websocket']})
socket.connect()
socket.on('tx-9e8ea17aa1fd450bf2e0ff41891e05286ba117d08f207f508094a2b1e0e7669d', (data) => {
console.log(data);
});






Watch the network for a specific transaction.

Topic

tx-{txid}

Watch all Addresses


const { io } = require('socket.io-client')
const endpoint ='https://api.bitails.io/global'
const socket = io(endpoint, { transports: ['websocket']})
socket.connect()
socket.on('lock-address', (data) => {
console.log(data);
});





Watch the network for all the addresses(different in output comparing to 'tx' and 'scripthash' topics).

Topic

lock-address

Lock to Address


const { io } = require('socket.io-client')
const endpoint ='https://api.bitails.io/global'
const socket = io(endpoint, { transports: ['websocket']})
socket.connect()
socket.on('lock-address-18C5qX7sM98gKtgGqTAXTa53dnbyrSkx6e', (data) => {
console.log(data);
});





This subscribes to a list of all the locked UTXOs (Unspent Transaction Outputs) associated with a specific address. It is triggered whenever the address is included in the outputs of a transaction, indicating that a new UTXOs associated with that address is created.

Topic

lock-address-{address}

Watch All Scripthashes


const { io } = require('socket.io-client')
const endpoint ='https://api.bitails.io/global'
const socket = io(endpoint, { transports: ['websocket']})
socket.connect()
socket.on('lock-scripthash', (data) => {
console.log(data);
});





Watch the network for all the scripthashes(different in output comparing to 'tx' and 'address' topics).

Topic

lock-scripthash

Lock to Scripthash


const { io } = require('socket.io-client')
const endpoint ='https://api.bitails.io/global'
const socket = io(endpoint, { transports: ['websocket']})
socket.connect()
socket.on('lock-scripthash-e4f725c7f7a95838f3fc8c138b7d5ce19dfbb8cd6cb9cb37f590533855dba399', (data) => {
console.log(data);
});





This subscribes to a list of all the locked UTXOs (Unspent Transaction Outputs) associated with a specific scripthash. It is triggered whenever the scripthash is included in the outputs of a transaction, indicating that a new UTXOs associated with that scripthash is created.

Topic

lock-scripthash-{scripthash}

Spent UTXOs on All Addresses


const { io } = require('socket.io-client')
const endpoint ='https://api.bitails.io/global'
const socket = io(endpoint, { transports: ['websocket']})
socket.connect()
socket.on('spent-address', (data) => {
console.log(data);
});





This endpoint lists all the spent UTXOs of any addresses.

Topic

spent-address

Spent UTXOs from an Address


const { io } = require('socket.io-client')
const endpoint ='https://api.bitails.io/global'
const socket = io(endpoint, { transports: ['websocket']})
socket.connect()
socket.on('spent-address-1GhhT4dXpqdtum9pS2Rqzbuyjm5gNDUHEU', (data) => {
console.log(data);
});





This subscribes to a list of all the spent UTXOs (Unspent Transaction Outputs) associated with a specific address. It is triggered whenever the address is included in the inputs of a transaction, indicating that the UTXOs associated with that address have been spent.

Topic

spent-address-{address}

Spent UTXOs on All scripthashes


const { io } = require('socket.io-client')
const endpoint ='https://api.bitails.io/global'
const socket = io(endpoint, { transports: ['websocket']})
socket.connect()
socket.on('spent-scripthash', (data) => {
console.log(data);
});





This endpoint lists all the spent UTXOs of any scripthashes.

Topic

spent-scripthash

Spent UTXOs from a Scripthash


const { io } = require('socket.io-client')
const endpoint ='https://api.bitails.io/global'
const socket = io(endpoint, { transports: ['websocket']})
socket.connect()
socket.on('spent-scripthash-e4f725c7f7a95838f3fc8c138b7d5ce19dfbb8cd6cb9cb37f590533855dba399', (data) => {
console.log(data);
});





This subscribes to a list of all the spent UTXOs (Unspent Transaction Outputs) associated with a specific scripthash. It is triggered whenever the scripthash is included in the inputs of a transaction, indicating that the UTXOs associated with that scripthash have been spent.

Topic

spent-scripthash-{scripthash}

Notify When the UTXO is Spent


const { io } = require('socket.io-client')
const endpoint ='https://api.bitails.io/global'
const socket = io(endpoint, { transports: ['websocket']})
socket.connect()
socket.on('utxo-spent-9e8ea17aa1fd450bf2e0ff41891e05286ba117d08f207f508094a2b1e0e7669d_0', (data) => {
console.log(data);
});





This endpoint notifies the user when the UTXO is spent.

Topic

utxo-spent-{txid_outputIndex}

Stas Protocol

Get Token-based UTXOs of an Address


curl "https://api.bitails.io/address/1AMzdZFfkJC7PnxXQndCPKp2q2v8TZSW9E/tokens/unspent?from=0&limit=10"

The above command returns JSON structured like this:


  {
    "address": "18C5qX7sM98gKtgGqTAXTa53dnbyrSkx6e",
    "utxos": [
    {
    "redeemAddr": "string",
    "symbol": "string",
    "txid": "string",
    "index": 0,
    "script": "string",
    "amount": 2000,
    }
    ]
  }

This endpoint retrieves unspent outputs(Stas-UTXOs) of an address.

HTTP Request

GET https://api.bitails.io/address/{address}/tokens/unspent?from=0&limit=10

Parameter Description
address
from
limit

Get Token-based UTXOs of Multiple Addresses


  curl --location --request POST "https://api.bitails.io/address/tokens/unspent/multi?from=0&limit=10" \
--header "Content-Type: application/json" \
--data "{\"addresses\": [\"18C5qX7sM98gKtgGqTAXTa53dnbyrSkx6e\", \"17F5qX7sM88gKtgGqTAXTa53dnbyrSkx6e\"]}"

The above command returns JSON structured like this:


[
 {
  "address": "18C5qX7sM98gKtgGqTAXTa53dnbyrSkx6e",
  "utxos": [
   {
   "redeemAddr": "string",
   "symbol": "string",
   "txid": "string",
   "index": 0,
   "script": "string",
   "amount": 2000,
   }
  ] 
 },
 {
  "address": "18C5qX7sM98gKtgGqTAXTa53dnbyrSkx6e",
  "utxos": [
   {
   "redeemAddr": "string",
   "symbol": "string",
   "txid": "string",
   "index": 0,
   "script": "string",
   "amount": 2000,
   }
  ] 
 }
] 

This endpoint retrieves unspent outputs(Stas-UTXOs) of multiple addresses.

HTTP Request

POST https://api.bitails.io/address/tokens/unspent/multi?from=0&limit=10

Parameter Description
from
limit

The body of the POST request is in the following format:

{"addresses": ["address1", "address2", ...]}

Get UTXOs of a Token in an Address


  curl "https://api.bitails.io/address/mm3SVBJwqRi6fR2DwfLQ5arFLeJHXeuF91/token/3c9ca41f66c5b20d6aecf198fe9c35b3c5bf51bc/symbol/ABC5/unspent?from=0&limit=10"

The above command returns JSON structured like this:


  {
      "address": "mm3SVBJwqRi6fR2DwfLQ5arFLeJHXeuF91",
      "utxos": [
      {
      "redeemAddr": "string",
      "symbol": "string",
      "txid": "string",
      "index": 0,
      "script": "string",
      "amount": 1000,
    }
  ]
  }
   
  

This endpoint retrieves the UTXOs of a specific token binded to a specific address.

HTTP Request

GET https://api.bitails.io/address/{address}/token/{tokenID}/symbol/{symbol}/unspent?from=0&limit=10

Parameter Description
address
tokenID
symbol
from
limit

Get UTXOs of a Token in Multiple Addresses


  curl --location --request POST "https://api.bitails.io/address/token/3c9ca41f66c5b20d6aecf198fe9c35b3c5bf51bc/symbol/ABC5/unspent?from=0&limit=10" \
--header "Content-Type: application/json" \
--data "{\"addresses\": [\"18C5qX7sM98gKtgGqTAXTa53dnbyrSkx6e\", \"17F5qX7sM88gKtgGqTAXTa53dnbyrSkx6e\"]}"

The above command returns JSON structured like this:


[
 {
  "address": "18C5qX7sM98gKtgGqTAXTa53dnbyrSkx6e",
  "utxos": [
   {
   "redeemAddr": "string",
   "symbol": "string",
   "txid": "string",
   "index": 0,
   "script": "string",
   "amount": 2000,
   }
  ] 
 },
 {
  "address": "18C5qX7sM98gKtgGqTAXTa53dnbyrSkx6e",
  "utxos": [
   {
   "redeemAddr": "string",
   "symbol": "string",
   "txid": "string",
   "index": 0,
   "script": "string",
   "amount": 2000,
   }
  ] 
 }
] 

This endpoint retrieves the UTXOs of a specific token binded to multiple addresses.

HTTP Request

POST https://api.bitails.io/address/token/{tokenID}/symbol/{symbol}/unspent?from=0&limit=10

Parameter Description
tokenID
symbol
from
limit

The body of the POST request is in the following format:

{"addresses": ["address1", "address2", ...]}

Get Token-based Balance of an Address


curl "https://api.bitails.io/address/mm3SVBJwqRi6fR2DwfLQ5arFLeJHXeuF91/tokens/balance"

The above command returns JSON structured like this:


[
   {
    "redeemAddr": "string",
    "symbol": "string",
    "image": "string",
    "protocol": "string",
    "balance": 2000,
   }
] 

This endpoint retrieves the Token-based balance of an address.

HTTP Request

GET https://api.bitails.io/address/{address}/tokens/balance

Parameter Description
address

Get Token-based Balance of Multiple Addresses


  curl --location --request POST "https://api.bitails.io/address/tokens/balance/multi" \
--header "Content-Type: application/json" \
--data "{\"addresses\": [\"18C5qX7sM98gKtgGqTAXTa53dnbyrSkx6e\", \"17F5qX7sM88gKtgGqTAXTa53dnbyrSkx6e\"]}"

The above command returns JSON structured like this:


[
    {
        "redeemAddr": "string",
        "symbol": "string",
        "image": "string",
        "protocol": "string",
        "balance": 2000,
    }
] 

This endpoint retrieves the Stas-based balance of multiple addresses.

HTTP Request

POST https://api.bitails.io/address/tokens/balance/multi

The body of the POST request is in the following format:

{"addresses": ["address1", "address2", ...]}

Get Token-based History of an Address


  curl "https://api.bitails.io/address/18C5qX7sM98gKtgGqTAXTa53dnbyrSkx6e/history/token?from=0&limit=10"

The above command returns JSON structured like this:


  [
     {
      "txid": "string",
      "tokenId": "string",
      "symbol": "string",
      "inputSatoshis": 0,
      "outputsSatoshis": 0,
      "time": 0,
     }
  ] 
  

This endpoint retrieves the Stas-based history of an address.

HTTP Request

GET https://api.bitails.io/address/{address}/history/token?from=0&limit=10

Parameter Description
address
from
limit

Get a Token's History of an Address


  curl "https://api.bitails.io/address/mm3SVBJwqRi6fR2DwfLQ5arFLeJHXeuF91/history/token/3c9ca41f66c5b20d6aecf198fe9c35b3c5bf51bc/symbol/ABC5?from=0&limit=10"

The above command returns JSON structured like this:


  [
     {
      "txid": "string",
      "tokenId": "string",
      "symbol": "string",
      "inputSatoshis": 0,
      "outputsSatoshis": 0,
      "time": 0,
     }
  ] 
  

This endpoint retrieves the history of a specific token binded to an address.

HTTP Request

GET https://api.bitails.io/address/{address}/history/token/{tokenID}/symbol/{symbol}?from=0&limit=10

Parameter Description
address
tokenID
symbol
from
limit

Get Token-based History of Multiple Addresses


  curl --location --request POST "https://api.bitails.io/address/history/token/multi?from=0&limit=10" \
--header "Content-Type: application/json" \
--data "{\"addresses\": [\"18C5qX7sM98gKtgGqTAXTa53dnbyrSkx6e\", \"17F5qX7sM88gKtgGqTAXTa53dnbyrSkx6e\"]}"

The above command returns JSON structured like this:


[
    {
        "txid": "string",
        "tokenID": "string",
        "symbol": "string",
        "inputSatoshis": 0,
        "outputsSatoshis": 0,
        "time": 0,
    }
] 

This endpoint retrieves the Stas-based tokens history of multiple addresses.

HTTP Request

POST https://api.bitails.io/address/history/token/multi?from=0&limit=10

Parameter Description
from
limit

The body of the POST request is in the following format:

{"addresses": ["address1", "address2", ...]}

Get a Token's History of Multiple Addresses


  curl --location --request POST "https://api.bitails.io/address/history/token/3c9ca41f66c5b20d6aecf198fe9c35b3c5bf51bc/symbol/ABC5/multi?from=0&limit=10" \
--header "Content-Type: application/json" \
--data "{\"addresses\": [\"18C5qX7sM98gKtgGqTAXTa53dnbyrSkx6e\", \"17F5qX7sM88gKtgGqTAXTa53dnbyrSkx6e\"]}"

The above command returns JSON structured like this:


[
    {
        "txid": "string",
        "tokenID": "string",
        "symbol": "string",
        "inputSatoshis": 0,
        "outputsSatoshis": 0,
        "time": 0,
    }
] 

This endpoint retrieves a specific token's history binded to multiple addresses.

HTTP Request

POST https://api.bitails.io/address/history/token/{tokenID}/symbol/{symbol}/multi?from=0&limit=10

Parameter Description
tokenID
symbol
from
limit

The body of the POST request is in the following format:

{"addresses": ["address1", "address2", ...]}

Get a Token Details


  curl "https://api.bitails.io/token/3c9ca41f66c5b20d6aecf198fe9c35b3c5bf51bc/symbol/ABC5"

The above command returns JSON structured like this:


{
    "contractTxs":
      [
        "string"
      ],
    "issuanceTxs":
      [
        "string"
      ],
    "name": "string",
    "tokenId": "string",
    "protocolId": "string",
    "symbol": "string",
    "description": "string",
    "image": "string",
    "totalSupply": 0,
    "decimals": 0,
    "satsPerToken": 0,
  }
  

This endpoint retrieves the details of a token by token ID and symbol.

HTTP Request

GET https://api.bitails.io/token/{tokenID}/symbol/{symbol}

Parameter Description
tokenID
symbol

Get a Token Transactions History


  curl "https://api.bitails.io/token/3c9ca41f66c5b20d6aecf198fe9c35b3c5bf51bc/symbol/ABC5/tx"

The above command returns JSON structured like this:


    {
      "redeemAddr": "string",
      "tokenId": "string",
      "symbol": "string",
      "txs":[
      "string"
      ]  
    }
  

This endpoint retrieves the transaction history of a token by token ID and symbol.

HTTP Request

GET https://api.bitails.io/token/{tokenID}/symbol/{symbol}/tx

Parameter Description
tokenID
symbol

Token Existence Check


  curl "https://api.bitails.io/token/tx/0b616f44f8ab16614d334be5dab53fa57d10058db991f774b700632a2565817d/out/0/exists"

The above command returns JSON structured like this:


    {
      "exists": true,
      "isStas": true,
      "spent": false,
    }
  

This endpoint retrieves the existence of a output of a transaction, its relation to Stas Protocol, and its spent/unspent status.

HTTP Request

GET https://api.bitails.io/token/tx/{txid}/out/{outputIndex}/exists

Parameter Description
txid
outputIndex

Tokens List


  curl "https://api.bitails.io/token/list"

The above command returns JSON structured like this:


    [
      {
        "tokenId": "aeded8ce7e2d25544be184ceb16875ede4711425",
        "symbol": "USDXS",
        "imageUrl": "string",
        "owners": 676,
        "circulationSupply": 4756839,
        "utxos": 5432,
      },
      {
        "tokenId": "aeded8ce7e2d25544be184ceb16875ede4711425",
        "symbol": "USDXS",
        "imageUrl": "string",
        "owners": 676,
        "circulationSupply": 4756839,
        "utxos": 5432,
      },
      {
        "tokenId": "aeded8ce7e2d25544be184ceb16875ede4711425",
        "symbol": "USDXS",
        "imageUrl": "string",
        "owners": 676,
        "circulationSupply": 4756839,
        "utxos": 5432,
      }
    ]
  

This endpoint retrieves the STAS protocol top tokens based on the owners.

HTTP Request

GET https://api.bitails.io/token/list

Parameter Description
txid
outputIndex

Errors

Error 404

As obvious as it is, a 404 error is generated when the page is not found

Error 500

Internal Error - And we are probably checking the system to see what happened!

Error 503

Scheduled Maintenance!

Contact Us

Contact Info

The following is the contact information for Bitails:

Thank you for using Bitails! (。♥‿♥。)🍻