Ergo Node API v5.0.15#
Getting Started!
API docs for Ergo Node. Scroll down for code samples, example requests and responses
Base URLs:
Authentication#
- API Key (ApiKeyAuth)
- Parameter Name: api_key, in: header.
UTXO#
getSnapshotsInfo#
Code samples
## You can also use wget
curl -X DEFAULT /utxo/getSnapshotsInfo
DEFAULT /utxo/getSnapshotsInfo HTTP/1.1
fetch('/utxo/getSnapshotsInfo',
{
method: 'DEFAULT'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
result = RestClient.default '/utxo/getSnapshotsInfo',
params: {
}
p JSON.parse(result)
import requests
r = requests.default('/utxo/getSnapshotsInfo')
print(r.json())
<?php
require 'vendor/autoload.php';
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('DEFAULT','/utxo/getSnapshotsInfo', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/utxo/getSnapshotsInfo");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DEFAULT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DEFAULT", "/utxo/getSnapshotsInfo", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DEFAULT /utxo/getSnapshotsInfo
Error
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
blocks#
getHeaderIds#
Code samples
## You can also use wget
curl -X GET /blocks \
-H 'Accept: application/json'
GET /blocks HTTP/1.1
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('/blocks',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get '/blocks',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('/blocks', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','/blocks', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/blocks");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/blocks", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /blocks
Get an array of header ids (hex encoded) for the given range of blockchain block heights. Returns a page of the whole list starting from offset
and containing limit
items.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
limit | query | integer(int32) | false | The number of items in list to return |
offset | query | integer(int32) | false | The first block height to include in the list |
Example responses
200 Response
[
"8b7ae20a4acd23e3f1bf38671ce97103ad96d8f1c780b5e5e865e4873ae16337"
]
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Array of header ids | Inline |
default | Default | Error | ApiError |
Response Schema
Status Code 200
Array of header ids
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
sendMinedBlock#
Code samples
## You can also use wget
curl -X POST /blocks \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /blocks HTTP/1.1
Content-Type: application/json
Accept: application/json
const inputBody = '{
"header": {
"id": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"timestamp": 1524143059077,
"version": 2,
"adProofsRoot": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"stateRoot": "333ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"transactionsRoot": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"nBits": 19857408,
"extensionHash": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"powSolutions": {
"pk": "0350e25cee8562697d55275c96bb01b34228f9bd68fd9933f2a25ff195526864f5",
"w": "0366ea253123dfdb8d6d9ca2cb9ea98629e8f34015b1e4ba942b1d88badfcc6a12",
"n": "0000000000000000",
"d": 987654321
},
"height": 667,
"difficulty": "9575989248",
"parentId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"votes": "000000",
"size": 0,
"extensionId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"transactionsId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"adProofsId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117"
},
"blockTransactions": {
"headerId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"transactions": [
{
"id": "2ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"inputs": [
{
"boxId": "1ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"spendingProof": {
"proofBytes": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd1173ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd1173ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"extension": {
"1": "a2aed72ff1b139f35d1ad2938cb44c9848a34d4dcfd6d8ab717ebde40a7304f2541cf628ffc8b5c496e6161eba3f169c6dd440704b1719e0"
}
}
}
],
"dataInputs": [
{
"boxId": "1ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117"
}
],
"outputs": [
{
"boxId": "1ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"value": 147,
"ergoTree": "0008cd0336100ef59ced80ba5f89c4178ebd57b6c1dd0f3d135ee1db9f62fc634d637041",
"creationHeight": 9149,
"assets": [
{
"tokenId": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"amount": 1000
}
],
"additionalRegisters": {
"R4": "100204a00b08cd0336100ef59ced80ba5f89c4178ebd57b6c1dd0f3d135ee1db9f62fc634d637041ea02d192a39a8cc7a70173007301"
},
"transactionId": "2ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"index": 0
}
],
"size": 0
}
],
"size": 0
},
"adProofs": {
"headerId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"proofBytes": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd1173ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd1173ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"digest": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"size": 0
},
"extension": {
"headerId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"digest": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"fields": [
[
"4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117"
]
]
},
"size": 0
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/blocks',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}
result = RestClient.post '/blocks',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('/blocks', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','/blocks', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/blocks");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/blocks", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /blocks
Send a mined block
Body parameter
{
"header": {
"id": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"timestamp": 1524143059077,
"version": 2,
"adProofsRoot": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"stateRoot": "333ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"transactionsRoot": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"nBits": 19857408,
"extensionHash": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"powSolutions": {
"pk": "0350e25cee8562697d55275c96bb01b34228f9bd68fd9933f2a25ff195526864f5",
"w": "0366ea253123dfdb8d6d9ca2cb9ea98629e8f34015b1e4ba942b1d88badfcc6a12",
"n": "0000000000000000",
"d": 987654321
},
"height": 667,
"difficulty": "9575989248",
"parentId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"votes": "000000",
"size": 0,
"extensionId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"transactionsId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"adProofsId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117"
},
"blockTransactions": {
"headerId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"transactions": [
{
"id": "2ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"inputs": [
{
"boxId": "1ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"spendingProof": {
"proofBytes": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd1173ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd1173ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"extension": {
"1": "a2aed72ff1b139f35d1ad2938cb44c9848a34d4dcfd6d8ab717ebde40a7304f2541cf628ffc8b5c496e6161eba3f169c6dd440704b1719e0"
}
}
}
],
"dataInputs": [
{
"boxId": "1ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117"
}
],
"outputs": [
{
"boxId": "1ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"value": 147,
"ergoTree": "0008cd0336100ef59ced80ba5f89c4178ebd57b6c1dd0f3d135ee1db9f62fc634d637041",
"creationHeight": 9149,
"assets": [
{
"tokenId": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"amount": 1000
}
],
"additionalRegisters": {
"R4": "100204a00b08cd0336100ef59ced80ba5f89c4178ebd57b6c1dd0f3d135ee1db9f62fc634d637041ea02d192a39a8cc7a70173007301"
},
"transactionId": "2ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"index": 0
}
],
"size": 0
}
],
"size": 0
},
"adProofs": {
"headerId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"proofBytes": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd1173ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd1173ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"digest": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"size": 0
},
"extension": {
"headerId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"digest": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"fields": [
[
"4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117"
]
]
},
"size": 0
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | FullBlock | true | none |
Example responses
default Response
{
"error": 500,
"reason": "Internal server error",
"detail": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Block is valid | None |
default | Default | Error | ApiError |
getFullBlockAt#
Code samples
## You can also use wget
curl -X GET /blocks/at/{blockHeight} \
-H 'Accept: application/json'
GET /blocks/at/{blockHeight} HTTP/1.1
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('/blocks/at/{blockHeight}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get '/blocks/at/{blockHeight}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('/blocks/at/{blockHeight}', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','/blocks/at/{blockHeight}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/blocks/at/{blockHeight}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/blocks/at/{blockHeight}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /blocks/at/{blockHeight}
Get header ids at the given height
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
blockHeight | path | integer(int32) | true | Height of a block to retrieve header ids |
Example responses
200 Response
[
"8b7ae20a4acd23e3f1bf38671ce97103ad96d8f1c780b5e5e865e4873ae16337"
]
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Array of header ids | Inline |
404 | Not Found | Blocks at this height doesn't exist | ApiError |
default | Default | Error | ApiError |
Response Schema
Status Code 200
Array of header ids
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
getChainSlice#
Code samples
## You can also use wget
curl -X GET /blocks/chainSlice \
-H 'Accept: application/json'
GET /blocks/chainSlice HTTP/1.1
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('/blocks/chainSlice',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get '/blocks/chainSlice',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('/blocks/chainSlice', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','/blocks/chainSlice', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/blocks/chainSlice");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/blocks/chainSlice", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /blocks/chainSlice
Get headers in a specified range of heights
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fromHeight | query | integer(int32) | false | Min header height (start of the range) |
toHeight | query | integer(int32) | false | Max header height of the range (last header height then omitted) |
Example responses
200 Response
[
{
"id": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"timestamp": 1524143059077,
"version": 2,
"adProofsRoot": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"stateRoot": "333ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"transactionsRoot": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"nBits": 19857408,
"extensionHash": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"powSolutions": {
"pk": "0350e25cee8562697d55275c96bb01b34228f9bd68fd9933f2a25ff195526864f5",
"w": "0366ea253123dfdb8d6d9ca2cb9ea98629e8f34015b1e4ba942b1d88badfcc6a12",
"n": "0000000000000000",
"d": 987654321
},
"height": 667,
"difficulty": "9575989248",
"parentId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"votes": "000000",
"size": 0,
"extensionId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"transactionsId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"adProofsId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117"
}
]
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Array of headers | Inline |
default | Default | Error | ApiError |
Response Schema
Status Code 200
Array of headers
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [BlockHeader] | false | none | Array of headers |
» id | ModifierId(base16) | true | none | Base16-encoded 32 byte modifier id |
» timestamp | Timestamp(int64) | true | none | Basic timestamp definition |
» version | Version(int8) | true | none | Ergo blockchain protocol version |
» adProofsRoot | Digest32(base16) | true | none | Base16-encoded 32 byte digest |
» stateRoot | ADDigest(base16) | true | none | Base16-encoded 33 byte digest - digest with extra byte with tree height |
» transactionsRoot | Digest32(base16) | true | none | Base16-encoded 32 byte digest |
» nBits | integer(int64) | true | none | Proof-of-work target (difficulty encoded) |
» extensionHash | Digest32(base16) | true | none | Base16-encoded 32 byte digest |
» powSolutions | PowSolutions | true | none | An object containing all components of pow solution |
»» pk | string | true | none | Base16-encoded public key |
»» w | string | true | none | none |
»» n | string | true | none | none |
»» d | number | true | none | none |
» height | integer(int32) | true | none | Height of the block (genesis block height == 1) |
» difficulty | string | true | none | none |
» parentId | ModifierId(base16) | true | none | Base16-encoded 32 byte modifier id |
» votes | Votes(base16) | true | none | Base16-encoded votes for a soft-fork and parameters |
» size | integer(int32) | false | none | Size of the header in bytes |
» extensionId | ModifierId(base16) | false | none | Base16-encoded 32 byte modifier id |
» transactionsId | ModifierId(base16) | false | none | Base16-encoded 32 byte modifier id |
» adProofsId | ModifierId(base16) | false | none | Base16-encoded 32 byte modifier id |
getFullBlockById#
Code samples
## You can also use wget
curl -X GET /blocks/{headerId} \
-H 'Accept: application/json'
GET /blocks/{headerId} HTTP/1.1
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('/blocks/{headerId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get '/blocks/{headerId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('/blocks/{headerId}', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','/blocks/{headerId}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/blocks/{headerId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/blocks/{headerId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /blocks/{headerId}
Get the full block info by a given header id
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
headerId | path | string | true | ID of the header the wanted block |
Example responses
200 Response
{
"header": {
"id": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"timestamp": 1524143059077,
"version": 2,
"adProofsRoot": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"stateRoot": "333ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"transactionsRoot": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"nBits": 19857408,
"extensionHash": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"powSolutions": {
"pk": "0350e25cee8562697d55275c96bb01b34228f9bd68fd9933f2a25ff195526864f5",
"w": "0366ea253123dfdb8d6d9ca2cb9ea98629e8f34015b1e4ba942b1d88badfcc6a12",
"n": "0000000000000000",
"d": 987654321
},
"height": 667,
"difficulty": "9575989248",
"parentId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"votes": "000000",
"size": 0,
"extensionId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"transactionsId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"adProofsId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117"
},
"blockTransactions": {
"headerId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"transactions": [
{
"id": "2ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"inputs": [
{
"boxId": "1ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"spendingProof": {
"proofBytes": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd1173ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd1173ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"extension": {
"1": "a2aed72ff1b139f35d1ad2938cb44c9848a34d4dcfd6d8ab717ebde40a7304f2541cf628ffc8b5c496e6161eba3f169c6dd440704b1719e0"
}
}
}
],
"dataInputs": [
{
"boxId": "1ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117"
}
],
"outputs": [
{
"boxId": "1ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"value": 147,
"ergoTree": "0008cd0336100ef59ced80ba5f89c4178ebd57b6c1dd0f3d135ee1db9f62fc634d637041",
"creationHeight": 9149,
"assets": [
{
"tokenId": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"amount": 1000
}
],
"additionalRegisters": {
"R4": "100204a00b08cd0336100ef59ced80ba5f89c4178ebd57b6c1dd0f3d135ee1db9f62fc634d637041ea02d192a39a8cc7a70173007301"
},
"transactionId": "2ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"index": 0
}
],
"size": 0
}
],
"size": 0
},
"adProofs": {
"headerId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"proofBytes": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd1173ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd1173ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"digest": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"size": 0
},
"extension": {
"headerId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"digest": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"fields": [
[
"4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117"
]
]
},
"size": 0
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Block object representing the full block data | FullBlock |
404 | Not Found | Block with this id doesn't exist | ApiError |
default | Default | Error | ApiError |
getFullBlockByIds#
Code samples
## You can also use wget
curl -X POST /blocks/headerIds \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /blocks/headerIds HTTP/1.1
Content-Type: application/json
Accept: application/json
const inputBody = '[
"string"
]';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/blocks/headerIds',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}
result = RestClient.post '/blocks/headerIds',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('/blocks/headerIds', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','/blocks/headerIds', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/blocks/headerIds");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/blocks/headerIds", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /blocks/headerIds
Get full blocks by given header ids
Body parameter
[
"string"
]
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | array[string] | true | none |
Example responses
200 Response
[
{
"header": {
"id": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"timestamp": 1524143059077,
"version": 2,
"adProofsRoot": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"stateRoot": "333ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"transactionsRoot": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"nBits": 19857408,
"extensionHash": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"powSolutions": {
"pk": "0350e25cee8562697d55275c96bb01b34228f9bd68fd9933f2a25ff195526864f5",
"w": "0366ea253123dfdb8d6d9ca2cb9ea98629e8f34015b1e4ba942b1d88badfcc6a12",
"n": "0000000000000000",
"d": 987654321
},
"height": 667,
"difficulty": "9575989248",
"parentId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"votes": "000000",
"size": 0,
"extensionId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"transactionsId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"adProofsId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117"
},
"blockTransactions": {
"headerId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"transactions": [
{
"id": "2ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"inputs": [
{
"boxId": "1ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"spendingProof": {
"proofBytes": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd1173ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd1173ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"extension": {
"1": "a2aed72ff1b139f35d1ad2938cb44c9848a34d4dcfd6d8ab717ebde40a7304f2541cf628ffc8b5c496e6161eba3f169c6dd440704b1719e0"
}
}
}
],
"dataInputs": [
{
"boxId": "1ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117"
}
],
"outputs": [
{
"boxId": "1ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"value": 147,
"ergoTree": "0008cd0336100ef59ced80ba5f89c4178ebd57b6c1dd0f3d135ee1db9f62fc634d637041",
"creationHeight": 9149,
"assets": [
{
"tokenId": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"amount": 1000
}
],
"additionalRegisters": {
"R4": "100204a00b08cd0336100ef59ced80ba5f89c4178ebd57b6c1dd0f3d135ee1db9f62fc634d637041ea02d192a39a8cc7a70173007301"
},
"transactionId": "2ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"index": 0
}
],
"size": 0
}
],
"size": 0
},
"adProofs": {
"headerId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"proofBytes": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd1173ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd1173ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"digest": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"size": 0
},
"extension": {
"headerId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"digest": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"fields": [
[
"4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117"
]
]
},
"size": 0
}
]
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Full blocks corresponding to ids provided | Inline |
404 | Not Found | No block exist for every id provided | ApiError |
default | Default | Error | ApiError |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [FullBlock] | false | none | [Block with header and transactions] |
» header | BlockHeader | true | none | Header of a block. It authenticates link to a previous block, other block sections (transactions, UTXO set transformation proofs, extension), UTXO set, votes for blockchain parameters to be changed and proof-of-work related data. |
»» id | ModifierId(base16) | true | none | Base16-encoded 32 byte modifier id |
»» timestamp | Timestamp(int64) | true | none | Basic timestamp definition |
»» version | Version(int8) | true | none | Ergo blockchain protocol version |
»» adProofsRoot | Digest32(base16) | true | none | Base16-encoded 32 byte digest |
»» stateRoot | ADDigest(base16) | true | none | Base16-encoded 33 byte digest - digest with extra byte with tree height |
»» transactionsRoot | Digest32(base16) | true | none | Base16-encoded 32 byte digest |
»» nBits | integer(int64) | true | none | Proof-of-work target (difficulty encoded) |
»» extensionHash | Digest32(base16) | true | none | Base16-encoded 32 byte digest |
»» powSolutions | PowSolutions | true | none | An object containing all components of pow solution |
»»» pk | string | true | none | Base16-encoded public key |
»»» w | string | true | none | none |
»»» n | string | true | none | none |
»»» d | number | true | none | none |
»» height | integer(int32) | true | none | Height of the block (genesis block height == 1) |
»» difficulty | string | true | none | none |
»» parentId | ModifierId(base16) | true | none | Base16-encoded 32 byte modifier id |
»» votes | Votes(base16) | true | none | Base16-encoded votes for a soft-fork and parameters |
»» size | integer(int32) | false | none | Size of the header in bytes |
»» extensionId | ModifierId(base16) | false | none | Base16-encoded 32 byte modifier id |
»» transactionsId | ModifierId(base16) | false | none | Base16-encoded 32 byte modifier id |
»» adProofsId | ModifierId(base16) | false | none | Base16-encoded 32 byte modifier id |
» blockTransactions | BlockTransactions | true | none | Section of a block which contains transactions. |
»» headerId | ModifierId(base16) | true | none | Base16-encoded 32 byte modifier id |
»» transactions | [ErgoTransaction] | true | none | List of ErgoTransaction objects |
»»» id | TransactionId(base16) | false | none | Base16-encoded transaction id bytes |
»»» inputs | [ErgoTransactionInput] | true | none | Inputs, that will be spent by this transaction |
»»»» boxId | TransactionBoxId(base16) | true | none | Base16-encoded transaction box id bytes. Should be 32 bytes long |
»»»» spendingProof | SpendingProof | true | none | Spending proof for transaction input |
»»»»» proofBytes | SpendingProofBytes(base16) | true | none | Base16-encoded spending proofs |
»»»»» extension | object | true | none | Variables to be put into context |
»»»»»» additionalProperties | SValue(base16) | false | none | Base-16 encoded serialized Sigma-state value |
»»» dataInputs | [ErgoTransactionDataInput] | true | none | Read-only inputs, that are not going to be spent by transaction. |
»»»» boxId | TransactionBoxId(base16) | true | none | Base16-encoded transaction box id bytes. Should be 32 bytes long |
»»» outputs | [ErgoTransactionOutput] | true | none | Outputs of the transaction, i.e. box candidates to be created by this transaction. |
»»»» boxId | TransactionBoxId(base16) | false | none | Base16-encoded transaction box id bytes. Should be 32 bytes long |
»»»» value | integer(int64) | true | none | Amount of Ergo token |
»»»» ergoTree | ErgoTree(base16) | true | none | Base16-encoded ergo tree bytes |
»»»» creationHeight | integer(int32) | true | none | Height the output was created at |
»»»» assets | [Asset] | false | none | Assets list in the transaction |
»»»»» tokenId | Digest32(base16) | true | none | Base16-encoded 32 byte digest |
»»»»» amount | integer(int64) | true | none | Amount of the token |
»»»» additionalRegisters | Registers | true | none | Ergo box registers |
»»»»» additionalProperties | SValue(base16) | false | none | Base-16 encoded serialized Sigma-state value |
»»»» transactionId | TransactionId(base16) | false | none | Base16-encoded transaction id bytes |
»»»» index | integer(int32) | false | none | Index in the transaction outputs |
»»» size | integer(int32) | false | none | Size of ErgoTransaction in bytes |
»» size | integer(int32) | true | none | Size in bytes of all block transactions |
» adProofs | BlockADProofs | true | none | none |
»» headerId | ModifierId(base16) | true | none | Base16-encoded 32 byte modifier id |
»» proofBytes | SerializedAdProof(base16) | true | none | Base16-encoded ad proofs |
»» digest | Digest32(base16) | true | none | Base16-encoded 32 byte digest |
»» size | integer(int32) | true | none | Size in bytes |
» extension | Extension | true | none | Section of a block which contains extension data. |
»» headerId | ModifierId(base16) | true | none | Base16-encoded 32 byte modifier id |
»» digest | Digest32(base16) | true | none | Base16-encoded 32 byte digest |
»» fields | [KeyValueItem]¦null | true | none | List of key-value records |
» size | integer(int32) | true | none | Size in bytes |
getBlockHeaderById#
Code samples
## You can also use wget
curl -X GET /blocks/{headerId}/header \
-H 'Accept: application/json'
GET /blocks/{headerId}/header HTTP/1.1
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('/blocks/{headerId}/header',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get '/blocks/{headerId}/header',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('/blocks/{headerId}/header', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','/blocks/{headerId}/header', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/blocks/{headerId}/header");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/blocks/{headerId}/header", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /blocks/{headerId}/header
Get the block header info by a given header id
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
headerId | path | string | true | ID of a wanted block header |
Example responses
200 Response
{
"id": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"timestamp": 1524143059077,
"version": 2,
"adProofsRoot": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"stateRoot": "333ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"transactionsRoot": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"nBits": 19857408,
"extensionHash": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"powSolutions": {
"pk": "0350e25cee8562697d55275c96bb01b34228f9bd68fd9933f2a25ff195526864f5",
"w": "0366ea253123dfdb8d6d9ca2cb9ea98629e8f34015b1e4ba942b1d88badfcc6a12",
"n": "0000000000000000",
"d": 987654321
},
"height": 667,
"difficulty": "9575989248",
"parentId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"votes": "000000",
"size": 0,
"extensionId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"transactionsId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"adProofsId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Block header object | BlockHeader |
404 | Not Found | Block with this id doesn't exist | ApiError |
default | Default | Error | ApiError |
getBlockTransactionsById#
Code samples
## You can also use wget
curl -X GET /blocks/{headerId}/transactions \
-H 'Accept: application/json'
GET /blocks/{headerId}/transactions HTTP/1.1
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('/blocks/{headerId}/transactions',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get '/blocks/{headerId}/transactions',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('/blocks/{headerId}/transactions', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','/blocks/{headerId}/transactions', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/blocks/{headerId}/transactions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/blocks/{headerId}/transactions", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /blocks/{headerId}/transactions
Get the block transactions info by a given signature
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
headerId | path | string | true | ID of a wanted block transactions |
Example responses
200 Response
{
"headerId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"transactions": [
{
"id": "2ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"inputs": [
{
"boxId": "1ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"spendingProof": {
"proofBytes": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd1173ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd1173ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"extension": {
"1": "a2aed72ff1b139f35d1ad2938cb44c9848a34d4dcfd6d8ab717ebde40a7304f2541cf628ffc8b5c496e6161eba3f169c6dd440704b1719e0"
}
}
}
],
"dataInputs": [
{
"boxId": "1ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117"
}
],
"outputs": [
{
"boxId": "1ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"value": 147,
"ergoTree": "0008cd0336100ef59ced80ba5f89c4178ebd57b6c1dd0f3d135ee1db9f62fc634d637041",
"creationHeight": 9149,
"assets": [
{
"tokenId": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"amount": 1000
}
],
"additionalRegisters": {
"R4": "100204a00b08cd0336100ef59ced80ba5f89c4178ebd57b6c1dd0f3d135ee1db9f62fc634d637041ea02d192a39a8cc7a70173007301"
},
"transactionId": "2ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"index": 0
}
],
"size": 0
}
],
"size": 0
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Block transaction object | BlockTransactions |
404 | Not Found | Block with this id doesn't exist | ApiError |
default | Default | Error | ApiError |
getProofForTx#
Code samples
## You can also use wget
curl -X GET /blocks/{headerId}/proofFor/{txId} \
-H 'Accept: application/json'
GET /blocks/{headerId}/proofFor/{txId} HTTP/1.1
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('/blocks/{headerId}/proofFor/{txId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get '/blocks/{headerId}/proofFor/{txId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('/blocks/{headerId}/proofFor/{txId}', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','/blocks/{headerId}/proofFor/{txId}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/blocks/{headerId}/proofFor/{txId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/blocks/{headerId}/proofFor/{txId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /blocks/{headerId}/proofFor/{txId}
Get Merkle proof for transaction
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
headerId | path | string | true | ID of a wanted block transactions |
txId | path | string | true | ID of a wanted transaction |
Example responses
200 Response
{
"leaf": "cd665e49c834b0c25574fcb19a158d836f3f2aad8e91ac195f972534c25449b3",
"levels": [
[
"018b7ae20a4acd23e3f1bf38671ce97103ad96d8f1c780b5e5e865e4873ae16337",
0
]
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Merkle proof object | MerkleProof |
default | Default | Error | ApiError |
getLastHeaders#
Code samples
## You can also use wget
curl -X GET /blocks/lastHeaders/{count} \
-H 'Accept: application/json'
GET /blocks/lastHeaders/{count} HTTP/1.1
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('/blocks/lastHeaders/{count}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get '/blocks/lastHeaders/{count}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('/blocks/lastHeaders/{count}', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','/blocks/lastHeaders/{count}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/blocks/lastHeaders/{count}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/blocks/lastHeaders/{count}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /blocks/lastHeaders/{count}
Get the last headers objects
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
count | path | number | true | a number of block headers to return |
Example responses
200 Response
[
{
"id": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"timestamp": 1524143059077,
"version": 2,
"adProofsRoot": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"stateRoot": "333ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"transactionsRoot": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"nBits": 19857408,
"extensionHash": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"powSolutions": {
"pk": "0350e25cee8562697d55275c96bb01b34228f9bd68fd9933f2a25ff195526864f5",
"w": "0366ea253123dfdb8d6d9ca2cb9ea98629e8f34015b1e4ba942b1d88badfcc6a12",
"n": "0000000000000000",
"d": 987654321
},
"height": 667,
"difficulty": "9575989248",
"parentId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"votes": "000000",
"size": 0,
"extensionId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"transactionsId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"adProofsId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117"
}
]
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Array of block headers | Inline |
default | Default | Error | ApiError |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [BlockHeader] | false | none | [Header of a block. It authenticates link to a previous block, other block sections (transactions, UTXO set transformation proofs, extension), UTXO set, votes for blockchain parameters to be changed and proof-of-work related data.] |
» id | ModifierId(base16) | true | none | Base16-encoded 32 byte modifier id |
» timestamp | Timestamp(int64) | true | none | Basic timestamp definition |
» version | Version(int8) | true | none | Ergo blockchain protocol version |
» adProofsRoot | Digest32(base16) | true | none | Base16-encoded 32 byte digest |
» stateRoot | ADDigest(base16) | true | none | Base16-encoded 33 byte digest - digest with extra byte with tree height |
» transactionsRoot | Digest32(base16) | true | none | Base16-encoded 32 byte digest |
» nBits | integer(int64) | true | none | Proof-of-work target (difficulty encoded) |
» extensionHash | Digest32(base16) | true | none | Base16-encoded 32 byte digest |
» powSolutions | PowSolutions | true | none | An object containing all components of pow solution |
»» pk | string | true | none | Base16-encoded public key |
»» w | string | true | none | none |
»» n | string | true | none | none |
»» d | number | true | none | none |
» height | integer(int32) | true | none | Height of the block (genesis block height == 1) |
» difficulty | string | true | none | none |
» parentId | ModifierId(base16) | true | none | Base16-encoded 32 byte modifier id |
» votes | Votes(base16) | true | none | Base16-encoded votes for a soft-fork and parameters |
» size | integer(int32) | false | none | Size of the header in bytes |
» extensionId | ModifierId(base16) | false | none | Base16-encoded 32 byte modifier id |
» transactionsId | ModifierId(base16) | false | none | Base16-encoded 32 byte modifier id |
» adProofsId | ModifierId(base16) | false | none | Base16-encoded 32 byte modifier id |
getModifierById#
Code samples
## You can also use wget
curl -X GET /blocks/modifier/{modifierId} \
-H 'Accept: application/json'
GET /blocks/modifier/{modifierId} HTTP/1.1
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('/blocks/modifier/{modifierId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get '/blocks/modifier/{modifierId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('/blocks/modifier/{modifierId}', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','/blocks/modifier/{modifierId}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/blocks/modifier/{modifierId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/blocks/modifier/{modifierId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /blocks/modifier/{modifierId}
Get the persistent modifier by its id
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
modifierId | path | string | true | ID of a wanted modifier |
Example responses
404 Response
{
"error": 500,
"reason": "Internal server error",
"detail": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Persistent modifier object | None |
404 | Not Found | Modifier with this id doesn't exist | ApiError |
default | Default | Error | ApiError |
nipopow#
getPopowHeaderById#
Code samples
## You can also use wget
curl -X GET /nipopow/popowHeaderById/{headerId} \
-H 'Accept: application/json'
GET /nipopow/popowHeaderById/{headerId} HTTP/1.1
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('/nipopow/popowHeaderById/{headerId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get '/nipopow/popowHeaderById/{headerId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('/nipopow/popowHeaderById/{headerId}', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','/nipopow/popowHeaderById/{headerId}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/nipopow/popowHeaderById/{headerId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/nipopow/popowHeaderById/{headerId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /nipopow/popowHeaderById/{headerId}
Construct PoPow header according to given header id
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
headerId | path | string | true | ID of wanted header |
Example responses
200 Response
{
"header": {
"id": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"timestamp": 1524143059077,
"version": 2,
"adProofsRoot": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"stateRoot": "333ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"transactionsRoot": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"nBits": 19857408,
"extensionHash": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"powSolutions": {
"pk": "0350e25cee8562697d55275c96bb01b34228f9bd68fd9933f2a25ff195526864f5",
"w": "0366ea253123dfdb8d6d9ca2cb9ea98629e8f34015b1e4ba942b1d88badfcc6a12",
"n": "0000000000000000",
"d": 987654321
},
"height": 667,
"difficulty": "9575989248",
"parentId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"votes": "000000",
"size": 0,
"extensionId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"transactionsId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"adProofsId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117"
},
"interlinks": [
"3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117"
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | PoPow header object | PopowHeader |
404 | Not Found | Header of extension of a corresponding block are not available | ApiError |
default | Default | Error | ApiError |
getPopowHeaderByHeight#
Code samples
## You can also use wget
curl -X GET /nipopow/popowHeaderByHeight/{height} \
-H 'Accept: application/json'
GET /nipopow/popowHeaderByHeight/{height} HTTP/1.1
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('/nipopow/popowHeaderByHeight/{height}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get '/nipopow/popowHeaderByHeight/{height}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('/nipopow/popowHeaderByHeight/{height}', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','/nipopow/popowHeaderByHeight/{height}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/nipopow/popowHeaderByHeight/{height}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/nipopow/popowHeaderByHeight/{height}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /nipopow/popowHeaderByHeight/{height}
Construct PoPow header for best header at given height
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
height | path | integer(int32) | true | Height of a wanted header |
Example responses
200 Response
{
"header": {
"id": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"timestamp": 1524143059077,
"version": 2,
"adProofsRoot": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"stateRoot": "333ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"transactionsRoot": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"nBits": 19857408,
"extensionHash": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"powSolutions": {
"pk": "0350e25cee8562697d55275c96bb01b34228f9bd68fd9933f2a25ff195526864f5",
"w": "0366ea253123dfdb8d6d9ca2cb9ea98629e8f34015b1e4ba942b1d88badfcc6a12",
"n": "0000000000000000",
"d": 987654321
},
"height": 667,
"difficulty": "9575989248",
"parentId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"votes": "000000",
"size": 0,
"extensionId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"transactionsId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"adProofsId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117"
},
"interlinks": [
"3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117"
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | PoPow header object | PopowHeader |
404 | Not Found | Header of extension of a corresponding block are not available | ApiError |
default | Default | Error | ApiError |
getPopowProof#
Code samples
## You can also use wget
curl -X GET /nipopow/proof/{minChainLength}/{suffixLength} \
-H 'Accept: application/json'
GET /nipopow/proof/{minChainLength}/{suffixLength} HTTP/1.1
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('/nipopow/proof/{minChainLength}/{suffixLength}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get '/nipopow/proof/{minChainLength}/{suffixLength}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('/nipopow/proof/{minChainLength}/{suffixLength}', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','/nipopow/proof/{minChainLength}/{suffixLength}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/nipopow/proof/{minChainLength}/{suffixLength}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/nipopow/proof/{minChainLength}/{suffixLength}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /nipopow/proof/{minChainLength}/{suffixLength}
Construct PoPoW proof for given min superchain length and suffix length
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
minChainLength | path | number | true | Minimal superchain length |
suffixLength | path | number | true | Suffix length |
Example responses
200 Response
{
"m": 0,
"k": 0,
"prefix": [
{
"header": {
"id": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"timestamp": 1524143059077,
"version": 2,
"adProofsRoot": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"stateRoot": "333ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"transactionsRoot": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"nBits": 19857408,
"extensionHash": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"powSolutions": {
"pk": "0350e25cee8562697d55275c96bb01b34228f9bd68fd9933f2a25ff195526864f5",
"w": "0366ea253123dfdb8d6d9ca2cb9ea98629e8f34015b1e4ba942b1d88badfcc6a12",
"n": "0000000000000000",
"d": 987654321
},
"height": 667,
"difficulty": "9575989248",
"parentId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"votes": "000000",
"size": 0,
"extensionId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"transactionsId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"adProofsId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117"
},
"interlinks": [
"3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117"
]
}
],
"suffixHead": {
"header": {
"id": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"timestamp": 1524143059077,
"version": 2,
"adProofsRoot": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"stateRoot": "333ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"transactionsRoot": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"nBits": 19857408,
"extensionHash": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"powSolutions": {
"pk": "0350e25cee8562697d55275c96bb01b34228f9bd68fd9933f2a25ff195526864f5",
"w": "0366ea253123dfdb8d6d9ca2cb9ea98629e8f34015b1e4ba942b1d88badfcc6a12",
"n": "0000000000000000",
"d": 987654321
},
"height": 667,
"difficulty": "9575989248",
"parentId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"votes": "000000",
"size": 0,
"extensionId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"transactionsId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"adProofsId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117"
},
"interlinks": [
"3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117"
]
},
"suffixTail": [
{
"id": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"timestamp": 1524143059077,
"version": 2,
"adProofsRoot": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"stateRoot": "333ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"transactionsRoot": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"nBits": 19857408,
"extensionHash": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"powSolutions": {
"pk": "0350e25cee8562697d55275c96bb01b34228f9bd68fd9933f2a25ff195526864f5",
"w": "0366ea253123dfdb8d6d9ca2cb9ea98629e8f34015b1e4ba942b1d88badfcc6a12",
"n": "0000000000000000",
"d": 987654321
},
"height": 667,
"difficulty": "9575989248",
"parentId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"votes": "000000",
"size": 0,
"extensionId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"transactionsId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"adProofsId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Nipopow proof object | NipopowProof |
default | Default | Error | ApiError |
getPopowProofByHeaderId#
Code samples
## You can also use wget
curl -X GET /nipopow/proof/{minChainLength}/{suffixLength}/{headerId} \
-H 'Accept: application/json'
GET /nipopow/proof/{minChainLength}/{suffixLength}/{headerId} HTTP/1.1
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('/nipopow/proof/{minChainLength}/{suffixLength}/{headerId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get '/nipopow/proof/{minChainLength}/{suffixLength}/{headerId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('/nipopow/proof/{minChainLength}/{suffixLength}/{headerId}', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','/nipopow/proof/{minChainLength}/{suffixLength}/{headerId}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/nipopow/proof/{minChainLength}/{suffixLength}/{headerId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/nipopow/proof/{minChainLength}/{suffixLength}/{headerId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /nipopow/proof/{minChainLength}/{suffixLength}/{headerId}
Construct PoPoW proof for given min superchain length, suffix length and header ID
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
minChainLength | path | number | true | Minimal superchain length |
suffixLength | path | number | true | Suffix length |
headerId | path | string | true | ID of wanted header |
Example responses
200 Response
{
"m": 0,
"k": 0,
"prefix": [
{
"header": {
"id": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"timestamp": 1524143059077,
"version": 2,
"adProofsRoot": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"stateRoot": "333ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"transactionsRoot": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"nBits": 19857408,
"extensionHash": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"powSolutions": {
"pk": "0350e25cee8562697d55275c96bb01b34228f9bd68fd9933f2a25ff195526864f5",
"w": "0366ea253123dfdb8d6d9ca2cb9ea98629e8f34015b1e4ba942b1d88badfcc6a12",
"n": "0000000000000000",
"d": 987654321
},
"height": 667,
"difficulty": "9575989248",
"parentId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"votes": "000000",
"size": 0,
"extensionId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"transactionsId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"adProofsId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117"
},
"interlinks": [
"3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117"
]
}
],
"suffixHead": {
"header": {
"id": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"timestamp": 1524143059077,
"version": 2,
"adProofsRoot": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"stateRoot": "333ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"transactionsRoot": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"nBits": 19857408,
"extensionHash": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"powSolutions": {
"pk": "0350e25cee8562697d55275c96bb01b34228f9bd68fd9933f2a25ff195526864f5",
"w": "0366ea253123dfdb8d6d9ca2cb9ea98629e8f34015b1e4ba942b1d88badfcc6a12",
"n": "0000000000000000",
"d": 987654321
},
"height": 667,
"difficulty": "9575989248",
"parentId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"votes": "000000",
"size": 0,
"extensionId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"transactionsId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"adProofsId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117"
},
"interlinks": [
"3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117"
]
},
"suffixTail": [
{
"id": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"timestamp": 1524143059077,
"version": 2,
"adProofsRoot": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"stateRoot": "333ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"transactionsRoot": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"nBits": 19857408,
"extensionHash": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"powSolutions": {
"pk": "0350e25cee8562697d55275c96bb01b34228f9bd68fd9933f2a25ff195526864f5",
"w": "0366ea253123dfdb8d6d9ca2cb9ea98629e8f34015b1e4ba942b1d88badfcc6a12",
"n": "0000000000000000",
"d": 987654321
},
"height": 667,
"difficulty": "9575989248",
"parentId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"votes": "000000",
"size": 0,
"extensionId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"transactionsId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"adProofsId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Nipopow proof object | NipopowProof |
default | Default | Error | ApiError |
info#
getNodeInfo#
Code samples
## You can also use wget
curl -X GET /info \
-H 'Accept: application/json'
GET /info HTTP/1.1
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('/info',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get '/info',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('/info', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','/info', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/info");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/info", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /info
Get the information about the Node
Example responses
200 Response
{
"name": "my-node-1",
"appVersion": "0.0.1",
"fullHeight": 667,
"headersHeight": 667,
"maxPeerHeight": 706162,
"bestFullHeaderId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"previousFullHeaderId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"bestHeaderId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"stateRoot": "dab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"stateType": "digest",
"stateVersion": "fab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"isMining": true,
"peersCount": 327,
"unconfirmedCount": 327,
"difficulty": 667,
"currentTime": 1524143059077,
"launchTime": 1524143059077,
"headersScore": 0,
"fullBlocksScore": 0,
"genesisBlockId": "3ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"parameters": {
"height": 667,
"storageFeeFactor": 100000,
"minValuePerByte": 360,
"maxBlockSize": 1048576,
"maxBlockCost": 104876,
"blockVersion": 2,
"tokenAccessCost": 100,
"inputCost": 100,
"dataInputCost": 100,
"outputCost": 100
},
"eip27Supported": true,
"restApiUrl": "https://example.com"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Node info object | NodeInfo |
default | Default | Error | ApiError |
transactions#
sendTransaction#
Code samples
## You can also use wget
curl -X POST /transactions \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /transactions HTTP/1.1
Content-Type: application/json
Accept: application/json
const inputBody = '{
"id": "2ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"inputs": [
{
"boxId": "1ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"spendingProof": {
"proofBytes": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd1173ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd1173ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"extension": {
"1": "a2aed72ff1b139f35d1ad2938cb44c9848a34d4dcfd6d8ab717ebde40a7304f2541cf628ffc8b5c496e6161eba3f169c6dd440704b1719e0"
}
}
}
],
"dataInputs": [
{
"boxId": "1ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117"
}
],
"outputs": [
{
"boxId": "1ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"value": 147,
"ergoTree": "0008cd0336100ef59ced80ba5f89c4178ebd57b6c1dd0f3d135ee1db9f62fc634d637041",
"creationHeight": 9149,
"assets": [
{
"tokenId": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"amount": 1000
}
],
"additionalRegisters": {
"R4": "100204a00b08cd0336100ef59ced80ba5f89c4178ebd57b6c1dd0f3d135ee1db9f62fc634d637041ea02d192a39a8cc7a70173007301"
},
"transactionId": "2ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"index": 0
}
],
"size": 0
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/transactions',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}
result = RestClient.post '/transactions',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('/transactions', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','/transactions', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/transactions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/transactions", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /transactions
Submit an Ergo transaction to unconfirmed pool to send it over the network
Body parameter
{
"id": "2ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"inputs": [
{
"boxId": "1ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"spendingProof": {
"proofBytes": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd1173ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd1173ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"extension": {
"1": "a2aed72ff1b139f35d1ad2938cb44c9848a34d4dcfd6d8ab717ebde40a7304f2541cf628ffc8b5c496e6161eba3f169c6dd440704b1719e0"
}
}
}
],
"dataInputs": [
{
"boxId": "1ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117"
}
],
"outputs": [
{
"boxId": "1ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"value": 147,
"ergoTree": "0008cd0336100ef59ced80ba5f89c4178ebd57b6c1dd0f3d135ee1db9f62fc634d637041",
"creationHeight": 9149,
"assets": [
{
"tokenId": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"amount": 1000
}
],
"additionalRegisters": {
"R4": "100204a00b08cd0336100ef59ced80ba5f89c4178ebd57b6c1dd0f3d135ee1db9f62fc634d637041ea02d192a39a8cc7a70173007301"
},
"transactionId": "2ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"index": 0
}
],
"size": 0
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | ErgoTransaction | true | none |
Example responses
200 Response
"2ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117"
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | JSON with ID of the new transaction | TransactionId |
default | Default | Error | ApiError |
sendTransactionAsBytes#
Code samples
## You can also use wget
curl -X POST /transactions/bytes \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /transactions/bytes HTTP/1.1
Content-Type: application/json
Accept: application/json
const inputBody = '"02c9e71790399816b3e40b2207e9ade19a9b7fe0600186cfb8e2b115bfdb34b57f38cd3c9f2890d11720eb3bb993993f00ededf812a590d2993df094a7ca4f0213e4820e1ab831eed5dc5c72665396d3a01d2a12900f1c3ab77700b284ae24fa8e8f7754f86f2282c795db6b0b17df1c29cc0552e59d01f7d777c638a813333277271c2f8b4d99d01ff0e6ee8695697bdd5b568089395620d7198c6093ce8bc59b928611b1b12452c05addaa42f4beff6a0a6fe90000000380d0dbc3f40210090402040005c801040205c8010500040004000e2003faf2cb329f2e90d6d23b58d91bbb6c046aa143261cc21f52fbe2824bfcbf04d807d601e4c6a70408d602b2a5730000d603e4c6a70601d604e4c6a7080ed605e4c6a70505d606e4c6a70705d60795720399c1a7c1720299c17202c1a7eb027201d1ededededededededed93c27202c2a793e4c672020408720193e4c6720205059572039d9c72057eb272047301000573029d9c72057eb2720473030005730494e4c672020601720393e4c672020705720693e4c67202080e720493e4c67202090ec5a79572039072079c720672059272079c72067205917207730595ef720393b1db630872027306d801d608b2db63087202730700ed938c7208017308938c7208027206c8df35000508cd030c8f9c4dc08f3c006fa85a47c9156dedbede000a8b764c6e374fd097e873ba0405c8a8c105010105dc8b020e0266608cdea8baf0380008cd030c8f9c4dc08f3c006fa85a47c9156dedbede000a8b764c6e374fd097e873ba04c8df350000c0843d1005040004000e36100204a00b08cd0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798ea02d192a39a8cc7a701730073011001020402d19683030193a38cc7b2a57300000193c2b2a57301007473027303830108cdeeac93b1a57304c8df350000"';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/transactions/bytes',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}
result = RestClient.post '/transactions/bytes',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('/transactions/bytes', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','/transactions/bytes', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/transactions/bytes");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/transactions/bytes", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /transactions/bytes
Submit an Ergo transaction given as hex-encoded transaction bytes to unconfirmed pool to send it over the network
Body parameter
"\"02c9e71790399816b3e40b2207e9ade19a9b7fe0600186cfb8e2b115bfdb34b57f38cd3c9f2890d11720eb3bb993993f00ededf812a590d2993df094a7ca4f0213e4820e1ab831eed5dc5c72665396d3a01d2a12900f1c3ab77700b284ae24fa8e8f7754f86f2282c795db6b0b17df1c29cc0552e59d01f7d777c638a813333277271c2f8b4d99d01ff0e6ee8695697bdd5b568089395620d7198c6093ce8bc59b928611b1b12452c05addaa42f4beff6a0a6fe90000000380d0dbc3f40210090402040005c801040205c8010500040004000e2003faf2cb329f2e90d6d23b58d91bbb6c046aa143261cc21f52fbe2824bfcbf04d807d601e4c6a70408d602b2a5730000d603e4c6a70601d604e4c6a7080ed605e4c6a70505d606e4c6a70705d60795720399c1a7c1720299c17202c1a7eb027201d1ededededededededed93c27202c2a793e4c672020408720193e4c6720205059572039d9c72057eb272047301000573029d9c72057eb2720473030005730494e4c672020601720393e4c672020705720693e4c67202080e720493e4c67202090ec5a79572039072079c720672059272079c72067205917207730595ef720393b1db630872027306d801d608b2db63087202730700ed938c7208017308938c7208027206c8df35000508cd030c8f9c4dc08f3c006fa85a47c9156dedbede000a8b764c6e374fd097e873ba0405c8a8c105010105dc8b020e0266608cdea8baf0380008cd030c8f9c4dc08f3c006fa85a47c9156dedbede000a8b764c6e374fd097e873ba04c8df350000c0843d1005040004000e36100204a00b08cd0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798ea02d192a39a8cc7a701730073011001020402d19683030193a38cc7b2a57300000193c2b2a57301007473027303830108cdeeac93b1a57304c8df350000\""
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | string | true | none |
Example responses
200 Response
"2ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117"
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | JSON with ID of the new transaction | TransactionId |
default | Default | Error | ApiError |
checkTransaction#
Code samples
## You can also use wget
curl -X POST /transactions/check \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /transactions/check HTTP/1.1
Content-Type: application/json
Accept: application/json
const inputBody = '{
"id": "2ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"inputs": [
{
"boxId": "1ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"spendingProof": {
"proofBytes": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd1173ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd1173ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"extension": {
"1": "a2aed72ff1b139f35d1ad2938cb44c9848a34d4dcfd6d8ab717ebde40a7304f2541cf628ffc8b5c496e6161eba3f169c6dd440704b1719e0"
}
}
}
],
"dataInputs": [
{
"boxId": "1ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117"
}
],
"outputs": [
{
"boxId": "1ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"value": 147,
"ergoTree": "0008cd0336100ef59ced80ba5f89c4178ebd57b6c1dd0f3d135ee1db9f62fc634d637041",
"creationHeight": 9149,
"assets": [
{
"tokenId": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"amount": 1000
}
],
"additionalRegisters": {
"R4": "100204a00b08cd0336100ef59ced80ba5f89c4178ebd57b6c1dd0f3d135ee1db9f62fc634d637041ea02d192a39a8cc7a70173007301"
},
"transactionId": "2ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"index": 0
}
],
"size": 0
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/transactions/check',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}
result = RestClient.post '/transactions/check',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('/transactions/check', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','/transactions/check', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/transactions/check");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/transactions/check", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /transactions/check
Checks an Ergo transaction without sending it over the network. Checks that transaction is valid and its inputs are in the UTXO set. Returns transaction identifier if the transaction is passing the checks.
Body parameter
{
"id": "2ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"inputs": [
{
"boxId": "1ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"spendingProof": {
"proofBytes": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd1173ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd1173ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"extension": {
"1": "a2aed72ff1b139f35d1ad2938cb44c9848a34d4dcfd6d8ab717ebde40a7304f2541cf628ffc8b5c496e6161eba3f169c6dd440704b1719e0"
}
}
}
],
"dataInputs": [
{
"boxId": "1ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117"
}
],
"outputs": [
{
"boxId": "1ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"value": 147,
"ergoTree": "0008cd0336100ef59ced80ba5f89c4178ebd57b6c1dd0f3d135ee1db9f62fc634d637041",
"creationHeight": 9149,
"assets": [
{
"tokenId": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"amount": 1000
}
],
"additionalRegisters": {
"R4": "100204a00b08cd0336100ef59ced80ba5f89c4178ebd57b6c1dd0f3d135ee1db9f62fc634d637041ea02d192a39a8cc7a70173007301"
},
"transactionId": "2ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"index": 0
}
],
"size": 0
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | ErgoTransaction | true | none |
Example responses
200 Response
"2ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117"
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | JSON with ID of the new transaction | TransactionId |
default | Default | Error | ApiError |
checkTransactionAsBytes#
Code samples
## You can also use wget
curl -X POST /transactions/checkBytes \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /transactions/checkBytes HTTP/1.1
Content-Type: application/json
Accept: application/json
const inputBody = '"02c9e71790399816b3e40b2207e9ade19a9b7fe0600186cfb8e2b115bfdb34b57f38cd3c9f2890d11720eb3bb993993f00ededf812a590d2993df094a7ca4f0213e4820e1ab831eed5dc5c72665396d3a01d2a12900f1c3ab77700b284ae24fa8e8f7754f86f2282c795db6b0b17df1c29cc0552e59d01f7d777c638a813333277271c2f8b4d99d01ff0e6ee8695697bdd5b568089395620d7198c6093ce8bc59b928611b1b12452c05addaa42f4beff6a0a6fe90000000380d0dbc3f40210090402040005c801040205c8010500040004000e2003faf2cb329f2e90d6d23b58d91bbb6c046aa143261cc21f52fbe2824bfcbf04d807d601e4c6a70408d602b2a5730000d603e4c6a70601d604e4c6a7080ed605e4c6a70505d606e4c6a70705d60795720399c1a7c1720299c17202c1a7eb027201d1ededededededededed93c27202c2a793e4c672020408720193e4c6720205059572039d9c72057eb272047301000573029d9c72057eb2720473030005730494e4c672020601720393e4c672020705720693e4c67202080e720493e4c67202090ec5a79572039072079c720672059272079c72067205917207730595ef720393b1db630872027306d801d608b2db63087202730700ed938c7208017308938c7208027206c8df35000508cd030c8f9c4dc08f3c006fa85a47c9156dedbede000a8b764c6e374fd097e873ba0405c8a8c105010105dc8b020e0266608cdea8baf0380008cd030c8f9c4dc08f3c006fa85a47c9156dedbede000a8b764c6e374fd097e873ba04c8df350000c0843d1005040004000e36100204a00b08cd0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798ea02d192a39a8cc7a701730073011001020402d19683030193a38cc7b2a57300000193c2b2a57301007473027303830108cdeeac93b1a57304c8df350000"';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/transactions/checkBytes',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}
result = RestClient.post '/transactions/checkBytes',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('/transactions/checkBytes', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','/transactions/checkBytes', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/transactions/checkBytes");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/transactions/checkBytes", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /transactions/checkBytes
Checks an Ergo transaction without sending it over the network given in form of hex-encoded transaction bytes. Checks that transaction is valid and its inputs are in the UTXO set. Returns transaction identifier if the transaction is passing the checks.
Body parameter
"\"02c9e71790399816b3e40b2207e9ade19a9b7fe0600186cfb8e2b115bfdb34b57f38cd3c9f2890d11720eb3bb993993f00ededf812a590d2993df094a7ca4f0213e4820e1ab831eed5dc5c72665396d3a01d2a12900f1c3ab77700b284ae24fa8e8f7754f86f2282c795db6b0b17df1c29cc0552e59d01f7d777c638a813333277271c2f8b4d99d01ff0e6ee8695697bdd5b568089395620d7198c6093ce8bc59b928611b1b12452c05addaa42f4beff6a0a6fe90000000380d0dbc3f40210090402040005c801040205c8010500040004000e2003faf2cb329f2e90d6d23b58d91bbb6c046aa143261cc21f52fbe2824bfcbf04d807d601e4c6a70408d602b2a5730000d603e4c6a70601d604e4c6a7080ed605e4c6a70505d606e4c6a70705d60795720399c1a7c1720299c17202c1a7eb027201d1ededededededededed93c27202c2a793e4c672020408720193e4c6720205059572039d9c72057eb272047301000573029d9c72057eb2720473030005730494e4c672020601720393e4c672020705720693e4c67202080e720493e4c67202090ec5a79572039072079c720672059272079c72067205917207730595ef720393b1db630872027306d801d608b2db63087202730700ed938c7208017308938c7208027206c8df35000508cd030c8f9c4dc08f3c006fa85a47c9156dedbede000a8b764c6e374fd097e873ba0405c8a8c105010105dc8b020e0266608cdea8baf0380008cd030c8f9c4dc08f3c006fa85a47c9156dedbede000a8b764c6e374fd097e873ba04c8df350000c0843d1005040004000e36100204a00b08cd0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798ea02d192a39a8cc7a701730073011001020402d19683030193a38cc7b2a57300000193c2b2a57301007473027303830108cdeeac93b1a57304c8df350000\""
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | string | true | none |
Example responses
200 Response
"2ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117"
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | JSON with ID of the new transaction | TransactionId |
default | Default | Error | ApiError |
getUnconfirmedTransactions#
Code samples
## You can also use wget
curl -X GET /transactions/unconfirmed \
-H 'Accept: application/json'
GET /transactions/unconfirmed HTTP/1.1
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('/transactions/unconfirmed',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get '/transactions/unconfirmed',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('/transactions/unconfirmed', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','/transactions/unconfirmed', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/transactions/unconfirmed");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/transactions/unconfirmed", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /transactions/unconfirmed
Get current pool of the unconfirmed transactions pool
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
limit | query | integer(int32) | false | The number of items in list to return |
offset | query | integer(int32) | false | The number of items in list to skip |
Example responses
200 Response
[
{
"id": "2ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"inputs": [
{
"boxId": "1ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"spendingProof": {
"proofBytes": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd1173ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd1173ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"extension": {
"1": "a2aed72ff1b139f35d1ad2938cb44c9848a34d4dcfd6d8ab717ebde40a7304f2541cf628ffc8b5c496e6161eba3f169c6dd440704b1719e0"
}
}
}
],
"dataInputs": [
{
"boxId": "1ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117"
}
],
"outputs": [
{
"boxId": "1ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"value": 147,
"ergoTree": "0008cd0336100ef59ced80ba5f89c4178ebd57b6c1dd0f3d135ee1db9f62fc634d637041",
"creationHeight": 9149,
"assets": [
{
"tokenId": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"amount": 1000
}
],
"additionalRegisters": {
"R4": "100204a00b08cd0336100ef59ced80ba5f89c4178ebd57b6c1dd0f3d135ee1db9f62fc634d637041ea02d192a39a8cc7a70173007301"
},
"transactionId": "2ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"index": 0
}
],
"size": 0
}
]
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Array with Ergo transactions | Transactions |
default | Default | Error | ApiError |
checkUnconfirmedTransaction#
Code samples
## You can also use wget
curl -X HEAD /transactions/unconfirmed/{txId}
HEAD /transactions/unconfirmed/{txId} HTTP/1.1
fetch('/transactions/unconfirmed/{txId}',
{
method: 'HEAD'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
result = RestClient.head '/transactions/unconfirmed/{txId}',
params: {
}
p JSON.parse(result)
import requests
r = requests.head('/transactions/unconfirmed/{txId}')
print(r.json())
<?php
require 'vendor/autoload.php';
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('HEAD','/transactions/unconfirmed/{txId}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/transactions/unconfirmed/{txId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("HEAD");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("HEAD", "/transactions/unconfirmed/{txId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
HEAD /transactions/unconfirmed/{txId}
Check if given transaction is unconfirmed in pool
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
txId | path | string | true | ID of a transaction in question |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Transaction is in pool | None |
404 | Not Found | Transaction is not in pool | None |
getUnconfirmedTransactionById#
Code samples
## You can also use wget
curl -X GET /transactions/unconfirmed/byTransactionId/{txId} \
-H 'Accept: application/json'
GET /transactions/unconfirmed/byTransactionId/{txId} HTTP/1.1
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('/transactions/unconfirmed/byTransactionId/{txId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get '/transactions/unconfirmed/byTransactionId/{txId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('/transactions/unconfirmed/byTransactionId/{txId}', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','/transactions/unconfirmed/byTransactionId/{txId}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/transactions/unconfirmed/byTransactionId/{txId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/transactions/unconfirmed/byTransactionId/{txId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /transactions/unconfirmed/byTransactionId/{txId}
Get unconfirmed transaction from pool
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
txId | path | string | true | ID of a transaction in question |
Example responses
200 Response
{
"id": "2ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"inputs": [
{
"boxId": "1ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"spendingProof": {
"proofBytes": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd1173ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd1173ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"extension": {
"1": "a2aed72ff1b139f35d1ad2938cb44c9848a34d4dcfd6d8ab717ebde40a7304f2541cf628ffc8b5c496e6161eba3f169c6dd440704b1719e0"
}
}
}
],
"dataInputs": [
{
"boxId": "1ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117"
}
],
"outputs": [
{
"boxId": "1ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"value": 147,
"ergoTree": "0008cd0336100ef59ced80ba5f89c4178ebd57b6c1dd0f3d135ee1db9f62fc634d637041",
"creationHeight": 9149,
"assets": [
{
"tokenId": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"amount": 1000
}
],
"additionalRegisters": {
"R4": "100204a00b08cd0336100ef59ced80ba5f89c4178ebd57b6c1dd0f3d135ee1db9f62fc634d637041ea02d192a39a8cc7a70173007301"
},
"transactionId": "2ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"index": 0
}
],
"size": 0
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Ergo transaction | ErgoTransaction |
default | Default | Error | ApiError |
getUnconfirmedTransactionsByErgoTree#
Code samples
## You can also use wget
curl -X POST /transactions/unconfirmed/byErgoTree \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /transactions/unconfirmed/byErgoTree HTTP/1.1
Content-Type: application/json
Accept: application/json
const inputBody = '"100204a00b08cd021cf943317b0fdb50f60892a46b9132b9ced337c7de79248b104b293d9f1f078eea02d192a39a8cc7a70173007301"';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/transactions/unconfirmed/byErgoTree',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}
result = RestClient.post '/transactions/unconfirmed/byErgoTree',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('/transactions/unconfirmed/byErgoTree', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','/transactions/unconfirmed/byErgoTree', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/transactions/unconfirmed/byErgoTree");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/transactions/unconfirmed/byErgoTree", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /transactions/unconfirmed/byErgoTree
Finds unconfirmed transactions by ErgoTree hex of one of its output or input boxes (if present in UtxoState)
Body parameter
"\"100204a00b08cd021cf943317b0fdb50f60892a46b9132b9ced337c7de79248b104b293d9f1f078eea02d192a39a8cc7a70173007301\""
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | string | true | none |
limit | query | integer(int32) | false | The number of items in list to return |
offset | query | integer(int32) | false | The number of items in list to skip |
Example responses
200 Response
[
{
"id": "2ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"inputs": [
{
"boxId": "1ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"spendingProof": {
"proofBytes": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd1173ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd1173ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"extension": {
"1": "a2aed72ff1b139f35d1ad2938cb44c9848a34d4dcfd6d8ab717ebde40a7304f2541cf628ffc8b5c496e6161eba3f169c6dd440704b1719e0"
}
}
}
],
"dataInputs": [
{
"boxId": "1ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117"
}
],
"outputs": [
{
"boxId": "1ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"value": 147,
"ergoTree": "0008cd0336100ef59ced80ba5f89c4178ebd57b6c1dd0f3d135ee1db9f62fc634d637041",
"creationHeight": 9149,
"assets": [
{
"tokenId": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"amount": 1000
}
],
"additionalRegisters": {
"R4": "100204a00b08cd0336100ef59ced80ba5f89c4178ebd57b6c1dd0f3d135ee1db9f62fc634d637041ea02d192a39a8cc7a70173007301"
},
"transactionId": "2ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"index": 0
}
],
"size": 0
}
]
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Ergo transaction | Transactions |
default | Default | Error | ApiError |
getFeeHistogram#
Code samples
## You can also use wget
curl -X GET /transactions/poolHistogram \
-H 'Accept: application/json'
GET /transactions/poolHistogram HTTP/1.1
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('/transactions/poolHistogram',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get '/transactions/poolHistogram',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('/transactions/poolHistogram', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','/transactions/poolHistogram', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/transactions/poolHistogram");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/transactions/poolHistogram", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /transactions/poolHistogram
Get histogram (waittime, (n_trans, sum(fee)) for transactions in mempool. It contains "bins"+1 bins, where i-th elements corresponds to transaction with wait time [imaxtime/bins, (i+1)maxtime/bins), and last bin corresponds to the transactions with wait time >= maxtime.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
bins | query | integer(int32) | false | The number of bins in histogram |
maxtime | query | integer(int64) | false | Maximal wait time in milliseconds |
Example responses
200 Response
[
{
"nTxns": 0,
"totalFee": 0
}
]
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Array with fee histogram | FeeHistogram |
default | Default | Error | ApiError |
getRecommendedFee#
Code samples
## You can also use wget
curl -X GET /transactions/getFee?waitTime=1&txSize=100 \
-H 'Accept: application/json'
GET /transactions/getFee?waitTime=1&txSize=100 HTTP/1.1
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('/transactions/getFee?waitTime=1&txSize=100',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get '/transactions/getFee',
params: {
'waitTime' => 'integer(int32)',
'txSize' => 'integer(int32)'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('/transactions/getFee', params={
'waitTime': '1', 'txSize': '100'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','/transactions/getFee', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/transactions/getFee?waitTime=1&txSize=100");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/transactions/getFee", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /transactions/getFee
Get recommended fee (in nanoErgs) for a transaction with specified size (in bytes) to be proceeded in specified time (in minutes)
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
waitTime | query | integer(int32) | true | Maximum transaction wait time in minutes |
txSize | query | integer(int32) | true | Transaction size |
Example responses
200 Response
0
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Recommended fee for the transaction (in nanoErgs) | integer |
default | Default | Error | ApiError |
getExpectedWaitTime#
Code samples
## You can also use wget
curl -X GET /transactions/waitTime?fee=1&txSize=100 \
-H 'Accept: application/json'
GET /transactions/waitTime?fee=1&txSize=100 HTTP/1.1
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('/transactions/waitTime?fee=1&txSize=100',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get '/transactions/waitTime',
params: {
'fee' => 'integer(int32)',
'txSize' => 'integer(int32)'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('/transactions/waitTime', params={
'fee': '1', 'txSize': '100'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','/transactions/waitTime', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/transactions/waitTime?fee=1&txSize=100");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/transactions/waitTime", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /transactions/waitTime
Get expected wait time for the transaction with specified fee and size
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fee | query | integer(int32) | true | Transaction fee (in nanoErgs) |
txSize | query | integer(int32) | true | Transaction size |
Example responses
200 Response
0
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Expected wait time in milliseconds | integer |
default | Default | Error | ApiError |
inputs#
getUnconfirmedTransactionInputBoxById#
Code samples
## You can also use wget
curl -X GET /transactions/unconfirmed/inputs/byBoxId/{boxId} \
-H 'Accept: application/json'
GET /transactions/unconfirmed/inputs/byBoxId/{boxId} HTTP/1.1
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('/transactions/unconfirmed/inputs/byBoxId/{boxId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get '/transactions/unconfirmed/inputs/byBoxId/{boxId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('/transactions/unconfirmed/inputs/byBoxId/{boxId}', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','/transactions/unconfirmed/inputs/byBoxId/{boxId}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/transactions/unconfirmed/inputs/byBoxId/{boxId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/transactions/unconfirmed/inputs/byBoxId/{boxId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /transactions/unconfirmed/inputs/byBoxId/{boxId}
Get input box from unconfirmed transactions in pool
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
boxId | path | string | true | ID of an input box in question |
Example responses
200 Response
{
"boxId": "1ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"value": 147,
"ergoTree": "0008cd0336100ef59ced80ba5f89c4178ebd57b6c1dd0f3d135ee1db9f62fc634d637041",
"creationHeight": 9149,
"assets": [
{
"tokenId": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"amount": 1000
}
],
"additionalRegisters": {
"R4": "100204a00b08cd0336100ef59ced80ba5f89c4178ebd57b6c1dd0f3d135ee1db9f62fc634d637041ea02d192a39a8cc7a70173007301"
},
"transactionId": "2ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"index": 0
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Unspent Ergo Box that is to be used as Input in unconfirmed tx | ErgoTransactionOutput |
default | Default | Error | ApiError |
outputs#
getUnconfirmedTransactionOutputBoxById#
Code samples
## You can also use wget
curl -X GET /transactions/unconfirmed/outputs/byBoxId/{boxId} \
-H 'Accept: application/json'
GET /transactions/unconfirmed/outputs/byBoxId/{boxId} HTTP/1.1
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('/transactions/unconfirmed/outputs/byBoxId/{boxId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get '/transactions/unconfirmed/outputs/byBoxId/{boxId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('/transactions/unconfirmed/outputs/byBoxId/{boxId}', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','/transactions/unconfirmed/outputs/byBoxId/{boxId}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/transactions/unconfirmed/outputs/byBoxId/{boxId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/transactions/unconfirmed/outputs/byBoxId/{boxId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /transactions/unconfirmed/outputs/byBoxId/{boxId}
Get output box from unconfirmed transactions in pool
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
boxId | path | string | true | ID of an output box in question |
Example responses
200 Response
{
"boxId": "1ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"value": 147,
"ergoTree": "0008cd0336100ef59ced80ba5f89c4178ebd57b6c1dd0f3d135ee1db9f62fc634d637041",
"creationHeight": 9149,
"assets": [
{
"tokenId": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"amount": 1000
}
],
"additionalRegisters": {
"R4": "100204a00b08cd0336100ef59ced80ba5f89c4178ebd57b6c1dd0f3d135ee1db9f62fc634d637041ea02d192a39a8cc7a70173007301"
},
"transactionId": "2ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"index": 0
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Unspent Ergo Box that is to be created by unconfirmed tx | ErgoTransactionOutput |
default | Default | Error | ApiError |
getUnconfirmedTransactionOutputBoxesByErgoTree#
Code samples
## You can also use wget
curl -X POST /transactions/unconfirmed/outputs/byErgoTree \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /transactions/unconfirmed/outputs/byErgoTree HTTP/1.1
Content-Type: application/json
Accept: application/json
const inputBody = '"100204a00b08cd021cf943317b0fdb50f60892a46b9132b9ced337c7de79248b104b293d9f1f078eea02d192a39a8cc7a70173007301"';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/transactions/unconfirmed/outputs/byErgoTree',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}
result = RestClient.post '/transactions/unconfirmed/outputs/byErgoTree',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('/transactions/unconfirmed/outputs/byErgoTree', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','/transactions/unconfirmed/outputs/byErgoTree', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/transactions/unconfirmed/outputs/byErgoTree");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/transactions/unconfirmed/outputs/byErgoTree", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /transactions/unconfirmed/outputs/byErgoTree
Finds all output boxes by ErgoTree hex among unconfirmed transactions
Body parameter
"\"100204a00b08cd021cf943317b0fdb50f60892a46b9132b9ced337c7de79248b104b293d9f1f078eea02d192a39a8cc7a70173007301\""
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | string | true | none |
limit | query | integer(int32) | false | The number of items in list to return |
offset | query | integer(int32) | false | The number of items in list to skip |
Example responses
200 Response
[
{
"boxId": "1ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"value": 147,
"ergoTree": "0008cd0336100ef59ced80ba5f89c4178ebd57b6c1dd0f3d135ee1db9f62fc634d637041",
"creationHeight": 9149,
"assets": [
{
"tokenId": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"amount": 1000
}
],
"additionalRegisters": {
"R4": "100204a00b08cd0336100ef59ced80ba5f89c4178ebd57b6c1dd0f3d135ee1db9f62fc634d637041ea02d192a39a8cc7a70173007301"
},
"transactionId": "2ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"index": 0
}
]
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Unconfirmed transaction output boxes that correspond to given ErgoTree hex | Inline |
default | Default | Error | ApiError |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [ErgoTransactionOutput] | false | none | none |
» boxId | TransactionBoxId(base16) | false | none | Base16-encoded transaction box id bytes. Should be 32 bytes long |
» value | integer(int64) | true | none | Amount of Ergo token |
» ergoTree | ErgoTree(base16) | true | none | Base16-encoded ergo tree bytes |
» creationHeight | integer(int32) | true | none | Height the output was created at |
» assets | [Asset] | false | none | Assets list in the transaction |
»» tokenId | Digest32(base16) | true | none | Base16-encoded 32 byte digest |
»» amount | integer(int64) | true | none | Amount of the token |
» additionalRegisters | Registers | true | none | Ergo box registers |
»» additionalProperties | SValue(base16) | false | none | Base-16 encoded serialized Sigma-state value |
» transactionId | TransactionId(base16) | false | none | Base16-encoded transaction id bytes |
» index | integer(int32) | false | none | Index in the transaction outputs |
getUnconfirmedTransactionOutputBoxesByTokenId#
Code samples
## You can also use wget
curl -X GET /transactions/unconfirmed/outputs/byTokenId/{tokenId} \
-H 'Accept: application/json'
GET /transactions/unconfirmed/outputs/byTokenId/{tokenId} HTTP/1.1
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('/transactions/unconfirmed/outputs/byTokenId/{tokenId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get '/transactions/unconfirmed/outputs/byTokenId/{tokenId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('/transactions/unconfirmed/outputs/byTokenId/{tokenId}', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','/transactions/unconfirmed/outputs/byTokenId/{tokenId}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/transactions/unconfirmed/outputs/byTokenId/{tokenId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/transactions/unconfirmed/outputs/byTokenId/{tokenId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /transactions/unconfirmed/outputs/byTokenId/{tokenId}
Get output box from unconfirmed transactions in pool by tokenId
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
tokenId | path | string | true | ID of a token in question |
Example responses
200 Response
[
{
"boxId": "1ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"value": 147,
"ergoTree": "0008cd0336100ef59ced80ba5f89c4178ebd57b6c1dd0f3d135ee1db9f62fc634d637041",
"creationHeight": 9149,
"assets": [
{
"tokenId": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"amount": 1000
}
],
"additionalRegisters": {
"R4": "100204a00b08cd0336100ef59ced80ba5f89c4178ebd57b6c1dd0f3d135ee1db9f62fc634d637041ea02d192a39a8cc7a70173007301"
},
"transactionId": "2ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"index": 0
}
]
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Unspent Ergo Boxes that are to be created by unconfirmed tx and contain given token | Inline |
default | Default | Error | ApiError |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [ErgoTransactionOutput] | false | none | none |
» boxId | TransactionBoxId(base16) | false | none | Base16-encoded transaction box id bytes. Should be 32 bytes long |
» value | integer(int64) | true | none | Amount of Ergo token |
» ergoTree | ErgoTree(base16) | true | none | Base16-encoded ergo tree bytes |
» creationHeight | integer(int32) | true | none | Height the output was created at |
» assets | [Asset] | false | none | Assets list in the transaction |
»» tokenId | Digest32(base16) | true | none | Base16-encoded 32 byte digest |
»» amount | integer(int64) | true | none | Amount of the token |
» additionalRegisters | Registers | true | none | Ergo box registers |
»» additionalProperties | SValue(base16) | false | none | Base-16 encoded serialized Sigma-state value |
» transactionId | TransactionId(base16) | false | none | Base16-encoded transaction id bytes |
» index | integer(int32) | false | none | Index in the transaction outputs |
getUnconfirmedTransactionOutputBoxesByRegisters#
Code samples
## You can also use wget
curl -X POST /transactions/unconfirmed/outputs/byRegisters \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /transactions/unconfirmed/outputs/byRegisters HTTP/1.1
Content-Type: application/json
Accept: application/json
const inputBody = '{
"R4": "100204a00b08cd0336100ef59ced80ba5f89c4178ebd57b6c1dd0f3d135ee1db9f62fc634d637041ea02d192a39a8cc7a70173007301"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/transactions/unconfirmed/outputs/byRegisters',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}
result = RestClient.post '/transactions/unconfirmed/outputs/byRegisters',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('/transactions/unconfirmed/outputs/byRegisters', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','/transactions/unconfirmed/outputs/byRegisters', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/transactions/unconfirmed/outputs/byRegisters");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/transactions/unconfirmed/outputs/byRegisters", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /transactions/unconfirmed/outputs/byRegisters
Finds all output boxes among unconfirmed transactions that contain given registers
Body parameter
{
"R4": "100204a00b08cd0336100ef59ced80ba5f89c4178ebd57b6c1dd0f3d135ee1db9f62fc634d637041ea02d192a39a8cc7a70173007301"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | Registers | true | none |
limit | query | integer(int32) | false | The number of items in list to return |
offset | query | integer(int32) | false | The number of items in list to skip |
Example responses
200 Response
[
{
"boxId": "1ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"value": 147,
"ergoTree": "0008cd0336100ef59ced80ba5f89c4178ebd57b6c1dd0f3d135ee1db9f62fc634d637041",
"creationHeight": 9149,
"assets": [
{
"tokenId": "4ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"amount": 1000
}
],
"additionalRegisters": {
"R4": "100204a00b08cd0336100ef59ced80ba5f89c4178ebd57b6c1dd0f3d135ee1db9f62fc634d637041ea02d192a39a8cc7a70173007301"
},
"transactionId": "2ab9da11fc216660e974842cc3b7705e62ebb9e0bf5ff78e53f9cd40abadd117",
"index": 0
}
]
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Unconfirmed transaction output boxes that contain given registers | Inline |
default | Default | Error | ApiError |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [ErgoTransactionOutput] | false | none | none |
» boxId | TransactionBoxId(base16) | false | none | Base16-encoded transaction box id bytes. Should be 32 bytes long |
» value | integer(int64) | true | none | Amount of Ergo token |
» ergoTree | ErgoTree(base16) | true | none | Base16-encoded ergo tree bytes |
» creationHeight | integer(int32) | true | none | Height the output was created at |
» assets | [Asset] | false | none | Assets list in the transaction |
»» tokenId | Digest32(base16) | true | none | Base16-encoded 32 byte digest |
»» amount | integer(int64) | true | none | Amount of the token |
» additionalRegisters | Registers | true | none | Ergo box registers |
»» additionalProperties | SValue(base16) | false | none | Base-16 encoded serialized Sigma-state value |
» transactionId | TransactionId(base16) | false | none | Base16-encoded transaction id bytes |
» index | integer(int32) | false | none | Index in the transaction outputs |
peers#
getAllPeers#
Code samples
## You can also use wget
curl -X GET /peers/all \
-H 'Accept: application/json'
GET /peers/all HTTP/1.1
Accept: application/json
const