Skip to content

Frequently Asked Questions

Blockchain FAQ

❓What blockchains does the API support?

Currently the Blockchain API supports DCT, ETC and BTC with more planned for a future release.


❓What is a transfer?

A transfer is a blockchain operation which moves balance from one address to another.


❓What is an address?

An address is a unique key that references a specific ledger on a given blockchain that is cryptographically secured with unique Private and Public Keys. In some ways one might view it as similar to an 'account' although this is a very loose abstraction.


❓What is a transaction fee?

Some blockchain implementations charge a transaction fee to reward nodes that 'sign' any new blocks added to the blockchain.


❓What is a transaction hash?

A transaction hash (often referred to as a txid) is a cryptographically unique identifier associated with a specific transaction on a particular blockchain. A txid can be used to specifically reference an individual transaction.

Security FAQ


❓What is an API Key?

Most REST APIs require the caller have a unique API key which identifies them and potentially, together with additional authentication, determines what resources are available to them. The BlockchainAPI utilises an extended HTTP header, x-api-key, to transmit the API Key.

See Obtaining an API Key for information on obtaining an API Key.


❓What does a Blockchain API Key look like?

The keys used with the Blockchain API are 40 character long strings consisting of both upper and lower case character plus digits.


❓Is a 'key' required to use the API?

Yes, a developer key is required to use the API.

See Obtaining an API Key for information on obtaining an API Key.


❓Where do I get a developer API key from?

See Obtaining an API Key for information on obtaining an API Key.

See Also:

API FAQ

❓How do I send the key to the API?

The key is presented to the API by including it, in the extended HTTP header, x-api-key. See the cURL examples for Addresses Endpoint and Transfers Endpoint for more clarity.


❓What communication protocols are supported by the API?

REST over HTTPS is the communication protocol used by the API.


❓Does the API support REST?

Yes, REST over HTTPS is the communication protocol used by the API.


❓Does the API support Websockets?

The API does not support websockets at the current time.


❓What is an API 'endpoint'?

An endpoint is the location where an API's resource, or 'method', is available. Calling an endpoint with appropriate information requests that the API respond in a certain manner (specific to that endpoint and data supplied).


❓ Is the API Rate Limited?

Yes, the development version of the Blockchain API is rate limited. This is an artefact of the development system and these restrictions will be lifted once fully deployed, .


❓ What are the API rate limits?

These vary from day to day but should not impact the ability of developers to test systems built on the Blockchain API.


❓ Does the Blockchain API Access Wallets?

No. The Blockchain API does not access your wallets.


❓ Where can I find more detail about endpoint parameters?

More information on endpoint parameters is available in the documentation for the Addresses Endpoint and the Transfers Endpoint.


❓Where can I find more detail about endpoint response values?

More information on endpoint responses is available in the documentation for the Addresses Endpoint and the Transfers Endpoint.

Miscellaneous FAQ

❓What is cURL?

cURL is a command line tool that allows a developer to communicate with online server resources using multiple protcols without the need to create programs specifically for the purpose. It is ideal for quick testing and implementing simple scripts.


❓What is JSON?

JSON (see www.json.org also) is an Open Standard lightweight file format that uses human readable and editable text to describe structured data for storage and data-interchange applications.

It is frequently used as a transport format for modern RESTian APIs and is used extensively by the DECENT Blockchain API.

See the Endpoint Descriptions (Addresses & Transfers), Endpoint Examples and Object Definititions for examples Blockchain API JSON object structures.


❓How do I (un)escape JSON objects to use with cURL or in program code?

There are a number of methods available including IDE extensions, language modules, regular expressions and online tools.

If using Visual Studio Code, which is available for Windows, Mac and Linux ( .dep, .rpm ), the extension JSON Escaper is very convenient and will both escape and un-escape a JSON object with ease.

Another useful tool is JSON Tools which provides code formatting and Pretty Printing as well as Paste JSON as Code which will generate data structures matching the JSON held on the clipboard in a number of languages.


❓How do I see if the JSON body for my cURL call is correctly escaped?

If you are using Bash, you can simply use echo to display the un-escaped sequence.

For example:

echo "{\"address\":\"my-new-test-account\"}"
will display:
{"address":"my-new-test-account"}
Which is what is expected.

Any errors, or unusual formatting that doesn't match the expected output will need to be investigated and fixed.


❓Can I use 'Here-Doc' to submit JSON to cURL?

Yes, 'Here-Doc' can be usually be used to submit JSON without escaping.

The general outline of the command is as follows:

curl localhost -d @- << EOF
{json: "starts", here: 1}
EOF
You will need to replace localhost in the above example with the required endpoint URL and header specifications.

As a suggestion, Here-doc will also work well in Perl as will the Python equivalent, multiline strings.