Construction API
Write to the chain
The construction API facilitates actions such as generating and sending transactions to the chain. The available methods have been listed below.
Construction
Derive address from a public key
Method: POST
URL: /construction/derive
Sample Request:
{
"network_identifier" : {
"blockchain" : "ont",
"network" : "mainnet"
},
"public_key" : {
"hex_bytes" : "<pubkey hex string>",
"curve_type" : "secp256k1",
"metadata" : {
"type" : "hex"
}
}
}
In the type field
, the two address formats supported are hex and base58. The two supported curve types are secp256k1
and edwards25519
.
Sample Response:
{
"address" : "<address>",
"metadata" : {
"type" : "hex"
}
}
Create a metadata request
Method: POST
URL: /construction/preprocess
Sample Request:
{
"network_identifier": {
"blockchain": "ont",
"network": "privatenet"
},
"operations": [
{
"operation_identifier": {
"index": 0
},
"type": "transfer",
"status": "",
"account": {
"address": "AGc9NrdF5MuMJpkFfZ3MWKa67ds6H2fzud"
},
"amount": {
"value": "-1000000000",
"currency": {
"symbol": "ONT",
"decimals": 9,
"metadata": {
"ContractAddress": "0100000000000000000000000000000000000000",
"TokenType": "Governance Token"
}
}
}
},
{
"operation_identifier": {
"index": 1
},
"related_operations": [
{
"index": 0
}
],
"type": "transfer",
"status": "",
"account": {
"address": "Af6xrG7WB9wUKQ3aRDXnfba2G5DXjqejMS"
},
"amount": {
"value": "1000000000",
"currency": {
"symbol": "ONT",
"decimals": 9,
"metadata": {
"ContractAddress": "0100000000000000000000000000000000000000",
"TokenType": "Governance Token"
}
}
},
"metadata": {
"gasLimit": 20000,
"gasPrice": 2500
}
}
],
"metadata": {
"payer": "Af6xrG7WB9wUKQ3aRDXnfba2G5DXjqejMS"
}
}
Sample Response:
{
"options": {
"amount": "1000000000",
"decimals": 9,
"fromAddr": "AGc9NrdF5MuMJpkFfZ3MWKa67ds6H2fzud",
"gasLimit": 20000,
"gasPrice": 2500,
"payer": "Af6xrG7WB9wUKQ3aRDXnfba2G5DXjqejMS",
"symbol": "ONT",
"toAddr": "Af6xrG7WB9wUKQ3aRDXnfba2G5DXjqejMS"
}
}
Fetch transaction creation metadata
Method: POST
URL: /construction/metadata
Sample Request:
{
"network_identifier": {
"blockchain": "ont",
"network": "mainnet"
},
"options": {
"method": "transfer"
}
}
Sample Response:
{
"metadata": {
"amount": "",
"asset": "",
"fromAddr": "",
"gasLimit": "",
"gasPrice": "",
"payer": "",
"toAddr": ""
}
}
Generate an unsigned transaction and signing payloads
Method: POST
URL: /construction/payloads
Sample Request:
{
"network_identifier": {
"blockchain": "ont",
"network": "privatenet"
},
"operations": [
{
"operation_identifier": {
"index": 0
},
"type": "transfer",
"status": "",
"account": {
"address": "AGc9NrdF5MuMJpkFfZ3MWKa67ds6H2fzud"
},
"amount": {
"value": "-1000000000",
"currency": {
"symbol": "ONT",
"decimals": 9,
"metadata": {
"ContractAddress": "0100000000000000000000000000000000000000",
"TokenType": "Governance Token"
}
}
}
},
{
"operation_identifier": {
"index": 1
},
"related_operations": [
{
"index": 0
}
],
"type": "transfer",
"status": "",
"account": {
"address": "Af6xrG7WB9wUKQ3aRDXnfba2G5DXjqejMS"
},
"amount": {
"value": "1000000000",
"currency": {
"symbol": "ONT",
"decimals": 9,
"metadata": {
"ContractAddress": "0100000000000000000000000000000000000000",
"TokenType": "Governance Token"
}
}
},
"metadata": {
"gasLimit": 20000,
"gasPrice": 2500
}
}
],
"metadata": {
"payer": "Af6xrG7WB9wUKQ3aRDXnfba2G5DXjqejMS"
}
}
Sample Response:
{
"unsigned_transaction": "00d1b8c16889204e000000000000c409000000000000ffe723aefd01bac311d8b16ff8bfd594d77f31ee7100c66b14092118e0112274581b60dfb6fedcbfdcfc044be76a7cc814ffe723aefd01bac311d8b16ff8bfd594d77f31ee6a7cc8516a7cc86c51c1087472616e736665721400000000000000000000000000000000000000010068164f6e746f6c6f67792e4e61746976652e496e766f6b650000",
"payloads": [
{
"hex_bytes": "a4a88f45b51e7aa01eedd0db3a7d7aff0a6e641256f3e073e8dbabb19358513f",
"address": "AGc9NrdF5MuMJpkFfZ3MWKa67ds6H2fzud",
"signature_type": "ecdsa"
}
]
}
Parse a transaction
Method: POST
URL: /construction/parse
Sample Request:
{
"network_identifier": {
"blockchain": "ont",
"network": "privatenet"
},
"signed" : false,
"transaction":"00d10534aa05c409000000000000204e000000000000ffe723aefd01bac311d8b16ff8bfd594d77f31ee7100c66b14092118e0112274581b60dfb6fedcbfdcfc044be76a7cc814ffe723aefd01bac311d8b16ff8bfd594d77f31ee6a7cc8516a7cc86c51c1087472616e736665721400000000000000000000000000000000000000010068164f6e746f6c6f67792e4e61746976652e496e766f6b650000"
}
Sample Response:
{
"operations": [
{
"operation_identifier": {
"index": 0
},
"type": "transfer",
"status": "SUCCESS",
"account": {
"address": "AGc9NrdF5MuMJpkFfZ3MWKa67ds6H2fzud"
},
"amount": {
"value": "-1000000000",
"currency": {
"symbol": "ONT",
"decimals": 9,
"metadata": {
"ContractAddress": "0100000000000000000000000000000000000000",
"TokenType": "Governance Token"
}
}
}
},
{
"operation_identifier": {
"index": 1
},
"related_operations": [
{
"index": 0
}
],
"type": "transfer",
"status": "SUCCESS",
"account": {
"address": "Af6xrG7WB9wUKQ3aRDXnfba2G5DXjqejMS"
},
"amount": {
"value": "1000000000",
"currency": {
"symbol": "ONT",
"decimals": 9,
"metadata": {
"ContractAddress": "0100000000000000000000000000000000000000",
"TokenType": "Governance Token"
}
}
},
"metadata": {
"gasLimit": 20000,
"gasPrice": 2500
}
}
],
"signers": [],
"metadata": {
"payer": "Af6xrG7WB9wUKQ3aRDXnfba2G5DXjqejMS"
}
}
Create a transaction using signatures
Method: POST
URL: /construction/combine
Sample Request:
In this sample request, the account AGc9NrdF5MuMJpkFfZ3MWKa67ds6H2fzud
transfers 1 ONT to the account Af6xrG7WB9wUKQ3aRDXnfba2G5DXjqejMS
, and the account Af6xrG7WB9wUKQ3aRDXnfba2G5DXjqejMS
pays the transaction fee as the payer.
{
"network_identifier": {
"blockchain": "ont",
"network": "testnet"
},
"unsigned_transaction":"00d1594606d2c409000000000000204e000000000000ffe723aefd01bac311d8b16ff8bfd594d77f31ee7100c66b14092118e0112274581b60dfb6fedcbfdcfc044be76a7cc814ffe723aefd01bac311d8b16ff8bfd594d77f31ee6a7cc8516a7cc86c51c1087472616e736665721400000000000000000000000000000000000000010068164f6e746f6c6f67792e4e61746976652e496e766f6b650000",
"signatures":[
{
"signing_payload":{
"address":"Af6xrG7WB9wUKQ3aRDXnfba2G5DXjqejMS",
"hex_bytes":"2b371f76afde8a543fd0a6a58f2578281b3517e96c2a811114ea4c78e362b221",
"signature_type":"ecdsa"
},
"public_key":{
"hex_bytes":"02263e2e1eecf7a45f21e9e0f865510966d4e93551d95876ecb3c42acf2b68aaae",
"curve_type":"secp256k1"
},
"signature_type":"ecdsa",
"hex_bytes":"3b52bc592bbba306ca9368e2808d6eb1d14fe0c3e2c801294bf8ebe3a994b464e6888038b6411a78428f9020b9f43c9dbcada7f77c0307b3ce9a410d8d2b6fa6"
},
{
"signing_payload":{
"address":"AGc9NrdF5MuMJpkFfZ3MWKa67ds6H2fzud",
"hex_bytes":"2b371f76afde8a543fd0a6a58f2578281b3517e96c2a811114ea4c78e362b221",
"signature_type":"ecdsa"
},
"public_key":{
"hex_bytes":"03944e3ff777b14add03a76fd6767aaf4a65c227ec201375d9118d4e6b272494c7",
"curve_type":"secp256k1"
},
"signature_type":"ecdsa",
"hex_bytes":"a6f29359a94db9725ceafa37012abd3a02cff41fe1b3ca6fb0f4c58e86cd2e214567a5f29682cd4432404ecb8ded644bfb9324fe0eb746fe53097ffed13d11b1"
}
]
}
Sample Response:
{
"signed_transaction": "00d1594606d2c409000000000000204e000000000000ffe723aefd01bac311d8b16ff8bfd594d77f31ee7100c66b14092118e0112274581b60dfb6fedcbfdcfc044be76a7cc814ffe723aefd01bac311d8b16ff8bfd594d77f31ee6a7cc8516a7cc86c51c1087472616e736665721400000000000000000000000000000000000000010068164f6e746f6c6f67792e4e61746976652e496e766f6b65000241403b52bc592bbba306ca9368e2808d6eb1d14fe0c3e2c801294bf8ebe3a994b464e6888038b6411a78428f9020b9f43c9dbcada7f77c0307b3ce9a410d8d2b6fa6232102263e2e1eecf7a45f21e9e0f865510966d4e93551d95876ecb3c42acf2b68aaaeac4140a6f29359a94db9725ceafa37012abd3a02cff41fe1b3ca6fb0f4c58e86cd2e214567a5f29682cd4432404ecb8ded644bfb9324fe0eb746fe53097ffed13d11b1232103944e3ff777b14add03a76fd6767aaf4a65c227ec201375d9118d4e6b272494c7ac"
}
Fetch the hash of a signed transaction
Method: POST
URL: /construction/hash
Sample Request:
{
"network_identifier": {
"blockchain": "ont",
"network": "privatenet"
},
"signed_transaction":"00d1458813d9c409000000000000204e000000000000ffe723aefd01bac311d8b16ff8bfd594d77f31ee7100c66b14092118e0112274581b60dfb6fedcbfdcfc044be76a7cc814ffe723aefd01bac311d8b16ff8bfd594d77f31ee6a7cc8516a7cc86c51c1087472616e736665721400000000000000000000000000000000000000010068164f6e746f6c6f67792e4e61746976652e496e766f6b6500024140cb1e23e46a7e8e01563c64d7b5d9bf8022f549d411487156d55403ec7213f6cec49d413631d841852e493dca27e746977ea2ddd9e69906b8db7e71c3e15f7407232102263e2e1eecf7a45f21e9e0f865510966d4e93551d95876ecb3c42acf2b68aaaeac41409d15ed0d27224caecb55207b002f4a57846423bbe26764307e29704abfe4b327710c449531ac0f9ef621d864eab93a2ef373d2bc33027873c9466a30e748145f232103944e3ff777b14add03a76fd6767aaf4a65c227ec201375d9118d4e6b272494c7ac"
}
Sample Response:
{
"transaction_hash": "cc45747a18862709f4ce50290ac331c94fb5ef6b608c36c90b00314884312b03"
}
Submit a signed transaction
Method: POST
URL: /construction/submit
Sample Request:
{
"network_identifier": {
"blockchain": "ont",
"network": "mainnet"
},
"signed_transaction": "<signed tx hex>"
}
Sample Response:
{
"transaction_identifier": {
"hash": "<tx hash>"
},
"metadata": {}
}
Last updated