Ontology Rosetta Node | Data API

Overview

The data API methods can be used to fetch block, transaction, and other related data from the chain. The available methods have been classified based on the endpoints and listed below.

Network

Fetch the list of available networks

Method: POST

URL: /network/list

Sample Request:


{

  "metadata": {}

}

Sample Response:


{

  "network_identifiers": [

    {

      "blockchain": "ont",

      "network": "mainnet"

    }

  ]

}

Fetch network options

Method: POST

URL: /network/options

Sample Request:


{

  "network_identifier": {

    "blockchain": "ont",

    "network": "mainnet"

  }

}

Sample Response:


{

  "version": {

        "rosetta_version": "1.4.0",

        "node_version": "1.11.0"

  },

  "allow": {

    "operation_statuses": [

      {

        "status": "SUCCESS",

        "successful": true

      },

      {

        "status": "FAILED",

        "successful": false

      }

    ],

    "operation_types": ["transfer"],

    "errors": [

      {

        "code": 400,

        "message": "network identifier is not supported",

        "retriable": false

      },

      {

        "code": 401,

        "message": "block identifier is empty",

        "retriable": false

      },

      {

        "code": 402,

        "message": "block index is invalid",

        "retriable": false

      },

      {

        "code": 403,

        "message": "get block failed",

        "retriable": true

      },

      {

        "code": 404,

        "message": "block hash is invalid",

        "retriable": false

      },

      {

        "code": 405,

        "message": "get transaction failed",

        "retriable": true

      },

      {

        "code": 406,

        "message": "transaction hash is invalid",

        "retriable": false

      },

      {

        "code": 407,

        "message": "commit transaction failed",

        "retriable": false

      },

      {

        "code": 408,

        "message": "tx hash is invalid",

        "retriable": false

      },

      {

        "code": 409,

        "message": "block is not exist",

        "retriable": false

      },

      {

        "code": 500,

        "message": "service not realize",

        "retriable": false

      },

      {

        "code": 501,

        "message": "addr is invalid",

        "retriable": true

      },

      {

        "code": 502,

        "message": "get balance error",

        "retriable": true

      },

      {

        "code": 503,

        "message": "parse int error",

        "retriable": true

      },

      {

        "code": 504,

        "message": "json marshal failed",

        "retriable": false

      },

      {

        "code": 505,

        "message": "parse tx payload failed",

        "retriable": false

      },

      {

        "code": 506,

        "message": "currency not config",

        "retriable": false

      },

      {

        "code": 507,

        "message": "params error",

        "retriable": true

      },

      {

        "code": 508,

        "message": "contract addr invalid",

        "retriable": true

      },

      {

        "code": 509,

        "message": "preExecute contract failed",

        "retriable": false

      },

      {

        "code": 510,

        "message": "query balance failed",

        "retriable": true

      }

    ]

  }

}

Fetch the network status

Method: POST

URL: /network/status

Sample Request:


{

  "network_identifier": {

    "blockchain": "ont",

    "network": "mainnet"

  }

}

Sample Response:


{

  "current_block_identifier": {

    "index": 4789126,

    "hash": "76fcf0fbd5e979721fe52e472ac79eb26f4bc502c371508574c0e03386be20e6"

  },

  "current_block_timestamp": 1560312815000,

  "genesis_block_identifier": {

    "index": 0,

    "hash": "1b8fa7f242d0eeb4395f89cbb59e4c29634047e33245c4914306e78a88e14ce5"

  },

  "peers": [

    {

      "peer_id": "000000000000000000000000b41fe9ceaaaa4d7b",

      "metadata": {

        "address": "40.113.237.243:20338",

        "height": 8454242

      }

    },

    {

      "peer_id": "000000000000000000000000a4f0c524d8efd6a8",

      "metadata": {

        "address": "139.219.141.104:20338",

        "height": 8454242

      }

    },

    {

      "peer_id": "0000000000000000000000008e6528f4659f3112",

      "metadata": {

        "address": "50.18.219.74:20338",

        "height": 8454242

      }

    }

  ]

}

Account

Fetch account balance

Method: POST

URL: /account/balance

Sample Request:


{

  "network_identifier": {

    "blockchain": "ont",

    "network": "mainnet"

  },

  "account_identifier": {

    "address": "AFmseVrdL9f9oyCzZefL9tG6UbviEH9ugK",

    "metadata": {}

  },

  "block_identifier": {

    "index": 310

  }

}

Sample Response:


{

  "block_identifier": {

    "index": 310,

    "hash": "11405500403779cff364803bbd7fe4dc74ba9119015fd79473c188b727769c52"

  },

  "balances": [

    {

      "value": "14700000",

      "currency": {

        "symbol": "ONT",

        "decimals": 0,

        "metadata": {

          "ContractAddress": "0100000000000000000000000000000000000000",

          "TokenType": "Governance Token"

        }

      }

    },

    {

      "value": "1750000140000",

      "currency": {

        "symbol": "ONG",

        "decimals": 9,

        "metadata": {

          "ContractAddress": "0200000000000000000000000000000000000000",

          "TokenType": "Utility Token"

        }

      }

    }

  ]

}

Block

Fetch block details

Method: POST

URL: /block

Sample Request:


{

  "network_identifier": {

    "blockchain": "ont",

    "network": "mainnet"

  },

  "block_identifier": {

    "index": 54

  }

}


{

  "block": {

    "block_identifier": {

      "index": 54,

      "hash": "790ea8942e5722c75ba638312caa8c1380c41da4c145d6493ae510eb6017c5f3"

    },

    "parent_block_identifier": {

      "index": 53,

      "hash": "2b52c7fcdbdcd362211e1646fa6351c8f6fd4cbfa520fe7857133e59061ff348"

    },

    "timestamp": 1530389834000,

    "transactions": [

      {

        "transaction_identifier": {

          "hash": "20247d9df50d830b8978a5c49313a6f8a118fd5bb9c2950e3c7f95f5ac6410f6"

        },

        "operations": [

          {

            "operation_identifier": {

              "index": 0

            },

            "type": "transfer",

            "status": "SUCCESS",

            "account": {

              "address": "AJMFNZL5jGjZJEhBrJfVLHJeJ3KwiczJ6B"

            },

            "amount": {

              "value": "-1000000000",

              "currency": {

                "symbol": "ONT",

                "decimals": 0,

                "metadata": {

                  "ContractAddress": "0100000000000000000000000000000000000000",

                  "TokenType": "Governance Token"

                }

              }

            }

          },

          {

            "operation_identifier": {

              "index": 1

            },

            "related_operations": [

              {

                "index": 0

              }

            ],

            "type": "transfer",

            "status": "SUCCESS",

            "account": {

              "address": "AWyEMxiLUVr5MeVJe3Fw5Xsij7iZUmfYyk"

            },

            "amount": {

              "value": "1000000000",

              "currency": {

                "symbol": "ONT",

                "decimals": 0,

                "metadata": {

                  "ContractAddress": "0100000000000000000000000000000000000000",

                  "TokenType": "Governance Token"

                }

              }

            }

          }

        ]

      }

    ]

  }

}

Please note that the transaction record consists of two operations, i.e. the from operation, and the to operation. The transaction amount for the from operation is negative, while the amount for the to operation is equal and positive.

The currency field contains token details. The two tokens are denoted in the following manner:

ONT Parameters


{

    "symbol": "ONT",

    "decimals": 0,

    "metadata": {

        "ContractAddress": "0100000000000000000000000000000000000000",

        "TokenType": "Governance Token"

        }

}

ONG Parameters


{

    "symbol": "ONG",

    "decimals": 9,

    "metadata": {

        "ContractAddress": "0200000000000000000000000000000000000000",

        "TokenType": "Utility Token"

        }

}

Fetch transaction information from a block

Method: POST

URL: /block/transaction

Sample Request:


{

  "network_identifier": {

    "blockchain": "ont",

    "network": "mainnet"

  },

  "block_identifier": {

    "index": 54,

    "hash": "790ea8942e5722c75ba638312caa8c1380c41da4c145d6493ae510eb6017c5f3"

  },

  "transaction_identifier": {

    "hash": "20247d9df50d830b8978a5c49313a6f8a118fd5bb9c2950e3c7f95f5ac6410f6"

  }

}

Sample Response:


{

  "transaction": {

    "transaction_identifier": {

      "hash": "20247d9df50d830b8978a5c49313a6f8a118fd5bb9c2950e3c7f95f5ac6410f6"

    },

    "operations": [

      {

        "operation_identifier": {

          "index": 0

        },

        "type": "transfer",

        "status": "SUCCESS",

        "account": {

          "address": "AJMFNZL5jGjZJEhBrJfVLHJeJ3KwiczJ6B"

        },

        "amount": {

          "value": "-1000000000",

          "currency": {

            "symbol": "ONT",

            "decimals": 0,

            "metadata": {

              "ContractAddress": "0100000000000000000000000000000000000000",

              "TokenType": "Governance Token"

            }

          }

        }

      },

      {

        "operation_identifier": {

          "index": 1

        },

        "related_operations": [

          {

            "index": 0

          }

        ],

        "type": "transfer",

        "status": "SUCCESS",

        "account": {

          "address": "AWyEMxiLUVr5MeVJe3Fw5Xsij7iZUmfYyk"

        },

        "amount": {

          "value": "1000000000",

          "currency": {

            "symbol": "ONT",

            "decimals": 0,

            "metadata": {

              "ContractAddress": "0100000000000000000000000000000000000000",

              "TokenType": "Governance Token"

            }

          }

        }

      }

    ]

  }

}

Mempool

Fetch all mempool transactions

Method: POST

URL: /mempool

Sample Request:


{

  "network_identifier": {

    "blockchain": "ont",

    "network": "mainnet"

  }

}

Sample Response:


{

  "transaction_identifiers": [

    {

      "hash": "<tx hash>"

    }

  ]

}

Fetch details for a mempool transaction

Method: POST

URL: /mempool/transaction

Sample Request:


{

  "network_identifier": {

    "blockchain": "ont",

    "network": "mainnet"

  },

  "transaction_identifier": {

    "hash": "20247d9df50d830b8978a5c49313a6f8a118fd5bb9c2950e3c7f95f5ac6410f6"

  }

}

Sample Response:


{

  "transaction": {

    "transaction_identifier": {

      "hash": "20247d9df50d830b8978a5c49313a6f8a118fd5bb9c2950e3c7f95f5ac6410f6"

    },

    "operations": [

      {

        "operation_identifier": {

          "index": 0

        },

        "type": "transfer",

        "status": "SUCCESS",

        "account": {

          "address": "AJMFNZL5jGjZJEhBrJfVLHJeJ3KwiczJ6B"

        },

        "amount": {

          "value": "-1000000000",

          "currency": {

            "symbol": "ONT",

            "decimals": 0,

            "metadata": {

              "ContractAddress": "0100000000000000000000000000000000000000",

              "TokenType": "Governance Token"

            }

          }

        }

      },

      {

        "operation_identifier": {

          "index": 1

        },

        "related_operations": [

          {

            "index": 0

          }

        ],

        "type": "transfer",

        "status": "SUCCESS",

        "account": {

          "address": "AWyEMxiLUVr5MeVJe3Fw5Xsij7iZUmfYyk"

        },

        "amount": {

          "value": "1000000000",

          "currency": {

            "symbol": "ONT",

            "decimals": 0,

            "metadata": {

              "ContractAddress": "0100000000000000000000000000000000000000",

              "TokenType": "Governance Token"

            }

          }

        }

      }

    ]

  }

}

1 Like

Ontology’s Rosetta Node data API is also accessible from: https://docs.ont.io/developer-tools/api/rosetta-node-api/data-api

1 Like