1. Sidechain Node API spec

1.1. Sidechain Block operations

POST /block/findById

Find Block by ID

Parameters

Name Type Required Description
blockId String yes Find block by ID
query boolean active:
 return only active versions
query boolean built:
 return only built versions

Example request:

curl -X POST “http://127.0.0.1:9085/block/findById” -H “accept: application/json” -H “Content-Type: application/json” -d “{“blockId”:”0…6”}”

Example response:

HTTP/1.1 200 OK
Vary: Accept
Content-Type: text/javascript

{
   "result":{
      "blockHex":"string",
      "block":{
         "id":"string",
         "parentId":"string",
         "timestamp":0,
         "mainchainBlocks":[
            {
               "header":{
                  "mainchainHeaderBytes":"string",
                  "version":0,
                  "hashPrevBlock":"string",
                  "hashMerkleRoot":"string",
                  "hashReserved":"string",
                  "hashSCMerkleRootsMap":"string",
                  "time":0,
                  "bits":0,
                  "nonce":"string",
                  "solution":"string"
               },
               "sidechainRelatedAggregatedTransaction":{
                  "id":"string",
                  "fee":0,
                  "timestamp":0,
                  "mc2scTransactionsMerkleRootHash":"string",
                  "newBoxes":[
                     {
                        "id":"string",
                        "proposition":{
                           "publicKey":"string"
                        },
                        "value":0,
                        "nonce":0,
                        "activeFromWithdrawalEpoch":0,
                        "typeId":0
                     }
                  ]
               },
               "merkleRoots":[
                  {
                     "key":"string",
                     "value":"string"
                  }
               ]
            }
         ],
         "sidechainTransactions":[
            {

            }
         ],
         "forgerPublicKey":{
            "publicKey":"string"
         },
         "signature":{
            "signature":"string"
         }
      }
   },
   "error":{
      "code":"string",
      "description":"string",
      "detail":"string"
   }
}

POST /block/findLastIds

Returns an array with the ids of the last x blocks

Parameters

Name Type Required Description
number int yes Retrieves the last x number of blocks

Example request:

curl -X POST “http://127.0.0.1:9085/block/findLastIds” -H “accept: application/json” -H “Content-Type: application/json” -d “{“number”:10}”

Example response:

{
   "result":{
      "lastBlockIds":[
         "055c15d9a6c9ae299493d241705a2bcfdfbc72a19f04394a26aa53b39f6ee2a6",
         "ae6bcf104b7a7cccf83dfa23494760fb8d9a4d5cc3de82443de8b82bb86669d1",
         "9120b0f8518d1944d4b0e8fac8990acc7dcb792ea660414906a03f346407160c",
         "e5b0e97df9502c9510e4862041754b62931c9dc0a4fa873b3a0d75561dcbe712",
         "6a080e3ee665980bf647b450749b04177fe272537808bb4aec70417f9994bd04",
         "97d1956ecb1199fe03171b0923dff4031850e33db56dd1afc3b5384350315d80",
         "2c3a4a91989110218a827f8baefa3a8e5baf33e7e16d32b2bdace94553478dde",
         "cf82fba3e75ac89ca7e8d1c29458b2d5eff9d807407d3265c14251da2c70b3b1",
         "d61da61b2c877f717fa50563a42cbad4420486bfa3b1f05d888528d69d8258d8",
         "921f9406d8edd03d2f5b65aa6f89e452720c7ef07244ee06f3ad19d2c49e45d8"
      ]
   }
}

POST /block/findIdByHeight

Return a sidechain block Id by its height in a blockchain

Parameters

Name Type Required Description
height int yes Retrieves block ID by it´s height

Example request:

curl -X POST “http://127.0.0.1:9086/block/findIdByHeight” -H “accept: application/json” -H “Content-Type: application/json” -d “{“height”:100}”

Example response:

{
   "result":{
      "blockId":"e8c92a6c217a7dced190b729a7815f0be6a011ea23a38e083e79298bb66620e7"
   }
}

POST /block/best

Return here best sidechain block id and height in active chain

No Parameters

Example request:

curl -X POST “http://127.0.0.1:9086/block/best” -H “accept: application/json”

Example response:

{
  "result": {
    "block": {
      "header": {
        "version": 1,
        "parentId": "ae6bcf104b7a7cccf83dfa23494760fb8d9a4d5cc3de82443de8b82bb86669d1",
        "timestamp": 1595475730,
        "forgerBox": {
          "nonce": -8596034112114319000,
          "id": "f290e648415642b051cf6075b5fcaa7609eddd9a919d144cc2062db632918d9e",
          "typeId": 3,
          "vrfPubKey": {
            "valid": true,
            "publicKey": "d984ea8909760cb69d0a1a13848bd534e9ac28ec0ac20c3b05d557fa6512405185d799d1bab96068ad903a8f72e08329f29b45747a9ab1e66841b9a8440140e507457168d07bf6032875a6112dba9e6cb728d1a37e47c196aa9045136dd3000098a74b639a0bd495b3a19facd5c7b2811257a45476fb369c282002ec4f3aad4324b73e6555290b35db447705375824a5c5805a94c0438125f38b138e6842bb48bef94da30b4c5b121ce368544c86351ccdc8197d9f2334d2e52a44620381000000"
          },
          "blockSignProposition": {
            "publicKey": "153623a54522cc0336068a305ac13f530f4fdc95ee105a7ee85939326b9996fb"
          },
          "value": 10000000000,
          "proposition": {
            "publicKey": "153623a54522cc0336068a305ac13f530f4fdc95ee105a7ee85939326b9996fb"
          }
        },
        "forgerBoxMerklePath": "00000000",
        "vrfProof": {
          "vrfProof": "6be4253461faa494c5b79befbd12a39d73bf80c8c0d4b004bb72b49d0203fee1880057100dec12d4fbaf49e304798726ae07fe3acca2250376e93c3d7315ae45ecc99f70b36e21154026d035fa52cb584f2477ad5b677b199d4b5801e6b70100f8be8238b793179259207f1f372d796bd00223c46126316e9833965adabd3d21f2c11d0bc15e583ecbe4e00232082eb88dc78af8e9be5b68f6f7571dcd45ba6c563427a3f4f529a33edad6a79e1c9ecf9bc0e1ad54009ac1899cbf4d9b7a0000009a34323da1dc589a82cbe0eaad05bcebeea9b215c1128e2179402da8f4d556c5231a94f88170638199ddfe45fedebd1456796a47bc4c8cf583c004451a824bcae2ce1b88fdb1fa991b850e31847ecc8fa3f66de17e170ee478e2e7cd4b8b00009b232901e99f7da9c747d72a32579ff19d076b68434f2438e24230db15c1af7f0e31fcc7e8c2b90ce9206a05feed010e5f2dccb89030f6fd3a582901a9451a2fc232a816c48af827d1e98120cd191152ccfe81ccfa8db563aaaaeb3d36600000"
        },
        "sidechainTransactionsMerkleRootHash": "0000000000000000000000000000000000000000000000000000000000000000",
        "mainchainMerkleRootHash": "0000000000000000000000000000000000000000000000000000000000000000",
        "ommersMerkleRootHash": "0000000000000000000000000000000000000000000000000000000000000000",
        "ommersCumulativeScore": 0,
        "signature": {
          "signature": "2c5e2d784bdb46ab07a9958152605a363931fa2794c714169e054667ef615f176be20a8db5a8dc40f02daca3d66842b85289be2ec4e11d9151f235f13a8a0105",
          "typeId": 1
        },
        "id": "055c15d9a6c9ae299493d241705a2bcfdfbc72a19f04394a26aa53b39f6ee2a6"
      },
      "sidechainTransactions": [],
      "mainchainBlockReferencesData": [],
      "mainchainHeaders": [],
      "ommers": [],
      "timestamp": 1595475730,
      "parentId": "ae6bcf104b7a7cccf83dfa23494760fb8d9a4d5cc3de82443de8b82bb86669d1",
      "id": "055c15d9a6c9ae299493d241705a2bcfdfbc72a19f04394a26aa53b39f6ee2a6"
    },
    "height": 371
  }
}

POST /block/startForging

Start forging

No Parameters

Example request:

curl -X POST “http://127.0.0.1:9086/block/startForging” -H “accept: application/json”

Example response:

{
  "result": {
    "result": "string"
  },
  "error": {
    "code": "string",
    "description": "string",
    "detail": "string"
  }
}

POST /block/stopForging

Stop forging

No Parameters

Example request:

curl -X POST “http://127.0.0.1:9086/block/stopForging” -H “accept: application/json”

Example response:

{
  "result": {
    "result": "string"
  },
  "error": {
    "code": "string",
    "description": "string",
    "detail": "string"
  }
}

POST /block/generate

Try to generate new block by epoch and slot number Returns id of generated sidechain block

Parameters

Name Type Required Description
epochNumber int yes Epoch Number
slotNumber int yes Slot Number

Example request:

curl -X POST “http://127.0.0.1:9086/block/generate” -H “accept: application/json” -H “Content-Type: application/json” -d “{“epochNumber”:3,”slotNumber”:45}”

Example response:

{
  "result": {
    "blockId": "7f25d35aadae65062033757e5049e44728128b7405ff739070e91d753b419094"
  }
}

POST /block/forgingInfo

Get forging info

No Parameters

Example request:

curl -X POST “http://127.0.0.1:9086/block/forgingInfo” -H “accept: application/json”

Example response:

{
  "result": {
    "consensusSecondsInSlot": 120,
    "consensusSlotsInEpoch": 720,
    "bestEpochNumber": 3,
    "bestSlotNumber": 45
  }
}

1.2. Sidechain Transaction operations

POST /transaction/allTransactions

Find all transactions in the memory pool

Parameters

Name Type Required Description
format boolean no Returns an array of transaction ids if formatMemPool=false, otherwise a JSONObject for each transaction

Example request:

curl -X POST “http://127.0.0.1:9087/transaction/allTransactions” -H “accept: application/json” -H “Content-Type: application/json” -d “{“format”:true}”

Example response:

{
  "result": {
    "transactions": []
  }
}

POST /transaction/findById
  • blockHash set -> Search in block referenced by blockHash (do not care about txIndex parameter)
  • blockHash not set, txIndex = true -> Search in memory pool, if not found, search in the whole blockchain
  • blockHash not set, txIndex = false -> Search in memory pool

Parameters

Name Type Description
transactionId String Find by Transaction Id
blockHash String Search in block referenced by blockHash (do not care about txIndex parameter)
transactionIndex boolean txIndex = true -> Search in memory pool, if not found, search in the whole blockchain
format boolean  

Example request:

curl -X POST “http://127.0.0.1:9087/transaction/findById” -H “accept: application/json” -H “Content-Type: application/json” -d “{“transactionId”:”string”,”blockHash”:”string”,”transactionIndex”:false,”format”:false}”

Example response:

{
  "result": {
    "transaction": {},
    "transactionBytes": "string"
  },
  "error": {
    "code": "string",
    "description": "string",
    "detail": "string"
  }
}

POST /transaction/decodeTransactionBytes

Return a JSON representation of a transaction given its byte serialization

Parameters

Name Type Required Description
transactionBytes String yes byte String

Example request:

curl -X POST “http://127.0.0.1:9087/transaction/decodeTransactionBytes” -H “accept: application/json” -H “Content-Type: application/json” -d “{“transactionBytes”:”string”}”

Example response:

{
  "result": {
    "transaction": {}
  },
  "error": {
    "code": "string",
    "description": "string",
    "detail": "string"
  }
}

POST /transaction/createCoreTransaction

Create and sign a Sidechain core transaction, specifying inputs and outputs. Return the new transaction as a hex string if format = false, otherwise its JSON representation.

Parameters

Example Value

{
  "transactionInputs": [
    {
      "boxId": "string"
    }
  ],
  "regularOutputs": [
    {
      "publicKey": "string",
      "value": 0
    }
  ],
  "withdrawalRequests": [
    {
      "publicKey": "string",
      "value": 0
    }
  ],
  "forgerOutputs": [
    {
      "publicKey": "string",
      "blockSignPublicKey": "string",
      "vrfPubKey": "string",
      "value": 0
    }
  ],
  "format": false
}

Example request:

curl -X POST “http://127.0.0.1:9087/transaction/createCoreTransaction” -H “accept: application/json” -H “Content-Type: application/json” -d “{“transactionInputs”:[{“boxId”:”string”}],”regularOutputs”:[{“publicKey”:”string”,”value”:0}],”withdrawalRequests”:[{“publicKey”:”string”,”value”:0}],”forgerOutputs”:[{“publicKey”:”string”,”blockSignPublicKey”:”string”,”vrfPubKey”:”string”,”value”:0}],”format”:false}”

Example response:

{
  "result": {
    "transaction": {},
    "transactionBytes": "string"
  },
  "error": {
    "code": "string",
    "description": "string",
    "detail": "string"
  }
}

POST /transaction/createCoreTransactionSimplified

Create and sign a Sidechain core transaction, specifying inputs and outputs. Return the new transaction as a hex string if format = false, otherwise its JSON representation.

Parameters

Example Value

{
  "regularOutputs": [
    {
      "publicKey": "string",
      "value": 0
    }
  ],
  "withdrawalRequests": [
    {
      "publicKey": "string",
      "value": 0
    }
  ],
  "forgerOutputs": [
    {
      "publicKey": "string",
      "blockSignPublicKey": "string",
      "vrfPubKey": "string",
      "value": 0
    }
  ],
  "fee": 0,
  "format": true
}

Example request:

curl -X POST “http://127.0.0.1:9087/transaction/createCoreTransactionSimplified” -H “accept: application/json” -H “Content-Type: application/json” -d “{“regularOutputs”:[{“publicKey”:”string”,”value”:0}],”withdrawalRequests”:[{“publicKey”:”string”,”value”:0}],”forgerOutputs”:[{“publicKey”:”string”,”blockSignPublicKey”:”string”,”vrfPubKey”:”string”,”value”:0}],”fee”:0,”format”:true}”

Example response:

{
  "result": {
    "transaction": {},
    "transactionBytes": "string"
  },
  "error": {
    "code": "string",
    "description": "string",
    "detail": "string"
  }
}

POST /transaction/sendCoinsToAddress

Create and sign a regular transaction, specifying outputs and fee. Then validate and send the transaction. Then return the id of the transaction

Parameters

Example Value

{
  "outputs": [
    {
      "publicKey": "string",
      "value": 0
    }
  ],
  "fee": 0
}

Example request:

curl -X POST “http://127.0.0.1:9087/transaction/sendCoinsToAddress” -H “accept: application/json” -H “Content-Type: application/json” -d “{“outputs”:[{“publicKey”:”string”,”value”:0}],”fee”:0}”

Example response:

{
  "result": {
    "transactionId": "string"
  },
  "error": {
    "code": "string",
    "description": "string",
    "detail": "string"
  }
}

POST /transaction/withdrawCoins

Create and sign a regular transaction, specifying withdrawal outputs and fee. Then validate and send the transaction. Then return the id of the transaction

Parameters

{
  "outputs": [
    {
      "publicKey": "string",
      "value": 0
    }
  ],
  "fee": 0
}

Example request:

curl -X POST “http://127.0.0.1:9087/transaction/withdrawCoins” -H “accept: application/json” -H “Content-Type: application/json” -d “{“outputs”:[{“publicKey”:”string”,”value”:0}],”fee”:0}”

Example response:

{
  "code": 0,
  "reason": "string",
  "detail": "string"
}

POST /transaction/makeForgerStake

Create and sign a Sidechain core transaction, specifying forger stake outputs and fee. Then validate and send the transaction. Then return the id of the transaction

Parameters

Example Value

{
  "outputs": [
    {
      "publicKey": "string",
      "blockSignPublicKey": "string",
      "vrfPubKey": "string",
      "value": 0
    }
  ],
  "fee": 0
}

Example request:

curl -X POST “http://127.0.0.1:9087/transaction/makeForgerStake” -H “accept: application/json” -H “Content-Type: application/json” -d “{“outputs”:[{“publicKey”:”string”,”blockSignPublicKey”:”string”,”vrfPubKey”:”string”,”value”:0}],”fee”:0}”

Example response:

{
  "result": {
    "transactionId": "string"
  },
  "error": {
    "code": "string",
    "description": "string",
    "detail": "string"
  }
}

POST /transaction/spendForgingStake

Create and sign sidechain core transaction, specifying inputs and outputs. Return the new transaction as a hex string if format = false, otherwise its JSON representation.

Parameters

Example Value

{
  "transactionInputs": [
    {
      "boxId": "string"
    }
  ],
  "regularOutputs": [
    {
      "publicKey": "string",
      "value": 0
    }
  ],
  "forgerOutputs": [
    {
      "publicKey": "string",
      "blockSignPublicKey": "string",
      "vrfPubKey": "string",
      "value": 0
    }
  ],
  "format": false
}

Example request:

curl -X POST “http://127.0.0.1:9087/transaction/spendForgingStake” -H “accept: application/json” -H “Content-Type: application/json” -d “{“transactionInputs”:[{“boxId”:”string”}],”regularOutputs”:[{“publicKey”:”string”,”value”:0}],”forgerOutputs”:[{“publicKey”:”string”,”blockSignPublicKey”:”string”,”vrfPubKey”:”string”,”value”:0}],”format”:false}”

Example response:

{
  "result": {
    "transaction": {},
    "transactionBytes": "string"
  },
  "error": {
    "code": "string",
    "description": "string",
    "detail": "string"
  }
}

POST /transaction/sendTransaction

Validate and send a transaction, given its serialization as input. Then return the id of the transaction

Parameters

Name Type Description
transactionBytes String Signed Transaction Bytes

Example request:

curl -X POST “http://127.0.0.1:9087/transaction/sendTransaction” -H “accept: application/json” -H “Content-Type: application/json” -d “{“transactionBytes”:”string”}”

Example response:

{
  "result": {
    "transactionId": "string"
  },
  "error": {
    "code": "string",
    "description": "string",
    "detail": "string"
  }
}

1.3. Sidechain Wallet Operations

POST /wallet/allBoxes

Return all boxes, excluding those which ids are included in excludeBoxIds list

Parameters

Example Value

{
  "boxTypeClass": "string",
  "excludeBoxIds": [
    "string"
  ]
}

Example request:

curl -X POST “http://127.0.0.1:9086/wallet/allBoxes” -H “accept: application/json” -H “Content-Type: application/json” -d “{“boxTypeClass”:”string”,”excludeBoxIds”:[“string”]}”

Example response:

{
  "result": {
    "boxes": [
      {
        "id": "string",
        "proposition": {
          "publicKey": "string"
        },
        "value": 0,
        "nonce": 0,
        "activeFromWithdrawalEpoch": 0,
        "typeId": 0
      }
    ]
  },
  "error": {
    "code": "string",
    "description": "string",
    "detail": "string"
  }
}

POST /wallet/balance

Return the global balance for all types of boxes

Parameters

Name Type Required Description
boxType String No Box type

Example request:

curl -X POST “http://127.0.0.1:9086/wallet/balance” -H “accept: application/json” -H “Content-Type: application/json” -d “{“boxType”:”string”}”

Example response:

{
  "result": {
    "balance": 0
  },
  "error": {
    "code": "string",
    "description": "string",
    "detail": "string"
  }
}

POST /wallet/createPrivateKey25519

Create new secret and return corresponding address (public key)

No Parameters

Example request:

curl -X POST “http://127.0.0.1:9086/wallet/createPrivateKey25519” -H “accept: application/json”

Example response:

{
  "result": {
    "proposition": {
      "publicKey": "string"
    }
  },
  "error": {
    "code": "string",
    "description": "string",
    "detail": "string"
  }
}

POST /wallet/createVrfSecret

Create new Vrf secret and return corresponding public key

No Parameters

Example request:

curl -X POST “http://127.0.0.1:9086/wallet/createVrfSecret” -H “accept: application/json”

Example response:

{
  "result": {
    "proposition": {
      "valid": true,
      "publicKey": "ef3df0e2ca6f34dc89c2c14e23aecd37370ec4739230a6ec640a1fc87857ee5e7f55f3784e5ddd3c8e733bcdefb6795fda1d1228013c1968639bfd8888a48a07bbf978bec536412338eefd96e8d980e667f2d78a8e284bc3c9e8f7e4697400008ab41ebebb96464c0d4a77c6ac059e8265095faede25bf2e22a4d2dc82e6631dce2a61c2c5fb8e77160cee81fe84de136225ac1853f4b971eb3ecfadee7993bbb9cf7af75bb6523b248debb2a2173a8bcfba90ee5e2c55f7edb89f182e1f010000"
    }
  }
}

POST /wallet/allPublicKeys

Returns the list of all wallet’s propositions (public keys)

Parameters

Name Type Description
protoype String  

Example request:

curl -X POST “http://127.0.0.1:9086/wallet/allPublicKeys” -H “accept: application/json” -H “Content-Type: application/json” -d “{}”

Example response:

{
  "result": {
    "propositions": [
      {
        "publicKey": "string"
      }
    ]
  },
  "error": {
    "code": "string",
    "description": "string",
    "detail": "string"
  }
}

1.4. Sidechain node operations

POST /node/allPeers

Returns the list of all sidechain node peers

No Parameters

Example request:

curl -X POST “http://127.0.0.1:9086/node/allPeers” -H “accept: application/json”

Example response:

{
  "result": {
    "peers": [
      {
        "address": "string",
        "lastSeen": 0,
        "name": "string",
        "connectionType": "string"
      }
    ]
  },
  "error": {
    "code": "string",
    "description": "string",
    "detail": "string"
  }
}

POST /node/connect

Send the request to connect to a sidechain node

Parameters

Name Type Description
host String Node hostname
port int Node Port

Example request:

curl -X POST “http://127.0.0.1:9086/node/connect” -H “accept: application/json” -H “Content-Type: application/json” -d “{“host”:”string”,”port”:0}”

Example response:

{
  "result": {
    "connectedTo": "string"
  },
  "error": {
    "code": "string",
    "description": "string",
    "detail": "string"
  }
}

POST /node/connectedPeers

Returns the list of all connected sidechain node peers

No Parameters

Example request:

curl -X POST “http://127.0.0.1:9086/node/connectedPeers” -H “accept: application/json”

Example response:

{
  "result": {
    "peers": [
      {
        "address": "string",
        "lastSeen": 0,
        "name": "string",
        "connectionType": "string"
      }
    ]
  },
  "error": {
    "code": "string",
    "description": "string",
    "detail": "string"
  }
}

POST /node/blacklistedPeers

Returns the list of all blacklisted sidechain node peers

No Parameters

Example request:

curl -X POST “http://127.0.0.1:9086/node/blacklistedPeers” -H “accept: application/json”

Example response:

{
  "result": {
    "addresses": [
      "string"
    ]
  },
  "error": {
    "code": "string",
    "description": "string",
    "detail": "string"
  }
}

1.5. Sidechain Mainchain Operations

POST /mainchain/bestBlockReferenceInfo

Returns the best MC block header which has already been included in a SC block. Returns:

  • Mainchain block reference hash with the most height;
  • Its height in mainchain;
  • Sidechain block ID which contains this MC block reference.

No Parameters

Example request:

curl -X POST “http://127.0.0.1:9086/mainchain/bestBlockReferenceInfo” -H “accept: application/json”

Example response:

{
  "result": {
    "blockReferenceInfo": {
      "mainchainHeaderSidechainBlockId": "a9fd0eee294ee95daad3b72e1f307b52d6b34591dc0c211e49238634c68ecac2",
      "mainchainReferenceDataSidechainBlockId": "a9fd0eee294ee95daad3b72e1f307b52d6b34591dc0c211e49238634c68ecac2",
      "hash": "0e9329f275d8e5081cb10b605a767841eed9d6b4a49e550114bde0ca96fd375c",
      "parentHash": "00ecbbcb1beb5c262f4638d8ac9c9dd5f1e5474f8d97114a426f53d856eccd7a",
      "height": 255
    }
  }
}

POST /mainchain/genesisBlockReferenceInfo

Reference to Genesis Block

No Parameters

Example request:

curl -X POST “http://127.0.0.1:9086/mainchain/genesisBlockReferenceInfo” -H “accept: application/json”

Example response:

{
  "result": {
    "blockReferenceInfo": {
      "mainchainHeaderSidechainBlockId": "5392e4e8f0f02b00600604d9e65d606418e9e4788552eb0a02629ea9bf6d2a74",
      "mainchainReferenceDataSidechainBlockId": "5392e4e8f0f02b00600604d9e65d606418e9e4788552eb0a02629ea9bf6d2a74",
      "hash": "0536ec69de7f5ec3c8161bc34a014ffe7cae112cab03770972e45fd15da2de82",
      "parentHash": "06660749307d87444d627c3c8b7d795706ce42a62f2b1858043dd9892f8a20d5",
      "height": 221
    }
  }
}

POST /mainchain/blockReferenceInfoBy

Parameters

Name Type Description
hash String Block hash
height int Block height
format boolean  

Example request:

curl -X POST “http://127.0.0.1:9086/mainchain/blockReferenceInfoBy” -H “accept: application/json” -H “Content-Type: application/json” -d “{“hash”:”string”,”height”:0,”format”:false}”

Example response:

{
  "result": {
    "blocReferencekInfo": {
      "hash": "string",
      "parentHash": "string",
      "height": 0,
      "sidechainBlockId": "string"
    },
    "blockHex": "string"
  },
  "error": {
    "code": "string",
    "description": "string",
    "detail": "string"
  }
}

POST /mainchain/blockReferenceByHash

Reference block by hash

Parameters

Name Type Description
hash String Block hash
format boolean  

Example request:

curl -X POST “http://127.0.0.1:9086/mainchain/blockReferenceByHash” -H “accept: application/json” -H “Content-Type: application/json” -d “{“hash”:”string”,”format”:false}”

Example response:

{
  "result": {
    "blockReference": {
      "header": {
        "mainchainHeaderBytes": "string",
        "version": 0,
        "hashPrevBlock": "string",
        "hashMerkleRoot": "string",
        "hashReserved": "string",
        "hashSCMerkleRootsMap": "string",
        "time": 0,
        "bits": 0,
        "nonce": "string",
        "solution": "string"
      },
      "sidechainRelatedAggregatedTransaction": {
        "id": "string",
        "fee": 0,
        "timestamp": 0,
        "mc2scTransactionsMerkleRootHash": "string",
        "newBoxes": [
          {
            "id": "string",
            "proposition": {
              "publicKey": "string"
            },
            "value": 0,
            "nonce": 0,
            "activeFromWithdrawalEpoch": 0,
            "typeId": 0
          }
        ]
      },
      "merkleRoots": [
        {
          "key": "string",
          "value": "string"
        }
      ]
    },
    "blockHex": "string"
  },
  "error": {
    "code": "string",
    "description": "string",
    "detail": "string"
  }
}