The QRL Public API allows developers to interact with the QRL blockchain network, perform transactions, and access blockchain data. Used to lookup information, send and process transactions, on the network and gather information on the node or network status.
While there is no authentication required to interact with most of the QRL's API's, you will need to be able to reach a node at the API service IP and port in order to interact with the QRL Blockchain. It is recommended that you run a local QRL node and serve the API from the local node. More information can be found to run your own QRL node here.
Before using the API, make sure you have the following prerequisites:
Connection to a synced QRL Node (remote or local ) Open API port (*Default enabled at port 19009) Basic understanding of the QRL blockchain and gRPC The base URL for accessing the QRL API running on a local node is: 127.0.0.1:19009
. This address is configurable and may be different depending on your setup.
See the Node Configuration documentation for more information for setting port numbers for your QRL Node. Additional network settings and configuration may be needed to reach a node and is outside the scope of this document.
The API follows the protobuf definition found in qrl.proto .
Here's an example of how to use the QRL API in different programming languages:
import grpc from qrl . protos import qrl_pb2 , qrl_pb2_grpc channel = grpc . insecure_channel ( '127.0.0.1:19009' ) qrl_stub = qrl_pb2_grpc . QRLServiceStub ( channel ) block_request = qrl_pb2 . GetBlockInfoRequest ( block_number = 123456 ) block_info = qrl_stub . GetBlockInfo ( block_request ) print ( block_info )
const grpc = require ( 'grpc' ) const qrl_proto = require ( './qrl_pb' ) const qrl_grpc = require ( './qrl_grpc_pb' ) const client = new qrl_grpc . QRLServiceClient ( '127.0.0.1:19009' , grpc . credentials . createInsecure ( ) ) const blockRequest = new qrl_proto . GetBlockInfoRequest ( ) blockRequest . setBlockNumber ( 123456 ) client . getBlockInfo ( blockRequest , ( error , response ) => { if ( error ) { console . error ( error ) } else { console . log ( response . toObject ( ) ) } } )
package main import ( "log" "google.golang.org/grpc" qrlpb "github.com/theQRL/QRL/src/qrl/protos" ) func main ( ) { conn , err := grpc . Dial ( "127.0.0.1:19009" , grpc . WithInsecure ( ) ) if err != nil { log . Fatalf ( "Failed to connect: %v" , err ) } defer conn . Close ( ) client := qrlpb . NewQRLServiceClient ( conn ) blockRequest := & qrlpb . GetBlockInfoRequest { BlockNumber : 123456 , } blockInfo , err := client . GetBlockInfo ( context . Background ( ) , blockRequest ) if err != nil { log . Fatalf ( "Error while calling GetBlockInfo: %v" , err ) } log . Println ( blockInfo ) }
Note: Make sure to import the appropriate Protobuf and gRPC client libraries in your code.
Please refer to the qrl.proto file for the complete API definition.
The PublicAPIService service provides public API methods for interacting with the QRL node.
Retrieves the current state of the QRL node queried.
GetNodeState GetNodeStateReq GetNodeStateResp service PublicAPI { rpc GetNodeState ( GetNodeStateReq ) returns ( GetNodeStateResp ) { option ( google . api . http ) = { get : "/node-state" } ; } ; }
No additional request parameters needed.
message GetNodeStateReq { }
GetNodeStateResp
returns NodeInfo data from the connected node.
Field Type Details info
NodeInfo Object NodeInfo object contains: version state num_connections num_known_peers uptime block_height block_last_hash network_id
message GetNodeStateResp { NodeInfo info = 1 ; }
Please refer to the NodeInfo content for more details.
Returns data on known peers connected to the node queried.
GetKnownPeers GetKnownPeersReq GetKnownPeersResp service PublicAPI { rpc GetKnownPeers ( GetKnownPeersReq ) returns ( GetKnownPeersResp ) { option ( google . api . http ) = { get : "/known-peers" } ; } ; }
message GetKnownPeersReq { }
Field Type Details node_info
NodeInfo Object NodeInfo object contains: version state num_connections num_known_peers uptime block_height block_last_hash network_id known_peers
Repeated Peer Object List of Peer objects containing peer nodes detailed information
message GetKnownPeersResp { NodeInfo node_info = 1 ; repeated Peer known_peers = 2 ; }
Returns stats on known peers.
GetPeersStat GetPeersStatReq GetPeersStatResp service PublicAPI { rpc GetPeersStat ( GetPeersStatReq ) returns ( GetPeersStatResp ) { option ( google . api . http ) = { get : "/peers-stat" } ; } ; }
message GetPeersStatReq { }
message GetPeersStatResp { repeated PeerStat peers_stat = 1 ; }
Returns Node stats for the QRL Node queried with optional block timeseries data returned
GetStats GetStatsReq GetStatsResp service PublicAPI { rpc GetStats ( GetStatsReq ) returns ( GetStatsResp ) { option ( google . api . http ) = { get : "/stats" } ; } ; }
Field Type Details include_timeseries
bool Boolean to define if block timeseries should be included in reply or not
message GetStatsReq { bool include_timeseries = 1 ; }
Field Type Details node_info
NodeInfo Object NodeInfo object contains: version state num_connections num_known_peers uptime block_height block_last_hash network_id epoch
uint64 Current epoch uptime_network
uint64 Indicates uptime in seconds block_last_reward
uint64 Block reward block_time_mean
uint64 Blocktime average block_time_sd
uint64 Blocktime standard deviation coins_total_supply
uint64 Total coins supply coins_emitted
uint64 Total coins emitted BlockDataPoint
repeated BlockDataPoint Object BlockDataPoint Object contains: number difficulty timestamp time_last time_movavg hash_power header_hash header_hash_prev
message GetStatsResp { NodeInfo node_info = 1 ; uint64 epoch = 2 ; uint64 uptime_network = 3 ; uint64 block_last_reward = 4 ; uint64 block_time_mean = 5 ; uint64 block_time_sd = 6 ; uint64 coins_total_supply = 7 ; uint64 coins_emitted = 8 ; repeated BlockDataPoint block_timeseries = 9 ; }
GetAddressState
returns information on a given address.
This function requires a QRL address with optional fields to include OTS Bitfield and Transaction Hashes .
GetAddressState GetAddressStateReq GetAddressStateResp service PublicAPI { rpc GetAddressState ( GetAddressStateReq ) returns ( GetAddressStateResp ) { option ( google . api . http ) = { get : "/address-state" } ; } ; }
Field Type Details address
bytes QRL Address to query address state exclude_ots_bitfield
bool Boolean to include OTS bitfield information or not exclude_transaction_hashes
bool Boolean to include transaction hashes from address
message GetAddressStateReq { bytes address = 1 ; bool exclude_ots_bitfield = 2 ; bool exclude_transaction_hashes = 3 ; }
Field Type Details state
AddressState Object AddressState Object contains: address balance nonce *ots_bitfield *transaction_hashes tokens latticePK_list slave_pks_access_type ots_counter
*Optional boolean request needed for this data to be returned .
message GetAddressStateResp { AddressState state = 1 ; }
Returns Optimized Address State information.
GetOptimizedAddressState GetAddressStateReq GetOptimizedAddressStateResp service PublicAPI { rpc GetOptimizedAddressState ( GetAddressStateReq ) returns ( GetOptimizedAddressStateResp ) { option ( google . api . http ) = { get : "/optimized-address-state" } ; } ; }
Field Type Details address
bytes Required QRL Address for the state information lookupexclude_ots_bitfield
bool Optional Boolean to exclude OTS Bitfield informationexclude_transaction_hashes
bool Optional Boolean to exclude transaction hash information
message GetAddressStateReq { bytes address = 1 ; bool exclude_ots_bitfield = 2 ; bool exclude_transaction_hashes = 3 ; }
Field Type Details state
OptimizedAddressState Object OptimizedAddressState Object contains: address balance nonce ots_bitfield_used_page used_ots_key_coun transaction_hash_count tokens_count slaves_count lattice_pk_count multi_sig_address_count multi_sig_spend_count inbox_message_count foundation_multi_sig_spend_txn_hash foundation_multi_sig_vote_txn_hash unvotes proposal_vote_stats
message GetOptimizedAddressStateResp { OptimizedAddressState state = 1 ; }
GetMultiSigAddressState GetMultiSigAddressStateReq GetMultiSigAddressStateResp service PublicAPI { rpc GetMultiSigAddressState ( GetMultiSigAddressStateReq ) returns ( GetMultiSigAddressStateResp ) { option ( google . api . http ) = { get : "/multi-sig-address-state" } ; } ; }
Field Type Details address
bytes QRL Address for state lookup
message GetMultiSigAddressStateReq { bytes address = 1 ; }
Field Type Details state
MultiSigAddressState object MultiSigAddressState Object contains: address creation_tx_hash nonce balance signatories weights threshold transaction_hash_count multi_sig_spend_count multi_sig_address_count foundation_multi_sig_spend_txn_hash foundation_multi_sig_vote_txn_hash unvotes proposal_vote_stats
message GetMultiSigAddressStateResp { MultiSigAddressState state = 1 ; }
IsSlave IsSlaveReq IsSlaveResp service PublicAPI { rpc IsSlave ( IsSlaveReq ) returns ( IsSlaveResp ) { option ( google . api . http ) = { get : "/is-slave" } ; } ; }
Field Type Details master_address
bytes Master QRL address slave is associated with slave_pk
bytes Public key from slave address
message IsSlaveReq { bytes master_address = 1 ; bytes slave_pk = 2 ; }
Field Type Details result
bool Boolean result if address is a slave address or not
message IsSlaveResp { bool result = 1 ; }
Returns information based on the query submitted. Can be one of: QRL Address, Transaction Hash, Block height.
GetObject GetObjectReq GetObjectResp service PublicAPI { rpc GetObject ( GetObjectReq ) returns ( GetObjectResp ) { option ( google . api . http ) = { get : "/object" } ; } ; }
Field Type Details query
bytes Query data to lookup, can be one of: QRL Address, Transaction Hash, Block Number
message GetObjectReq { bytes query = 1 ; }
Field Type Details address_state
OptimizedAddressState Object OptimizedAddressState Object contains: address balance nonce ots_bitfield_used_page used_ots_key_coun transaction_hash_count tokens_count slaves_count lattice_pk_count multi_sig_address_count multi_sig_spend_count inbox_message_count foundation_multi_sig_spend_txn_hash foundation_multi_sig_vote_txn_hash unvotes proposal_vote_stats transaction
TransactionExtended Object TransactionExtended Object contains: header tx addr_from size timestamp_seconds block_extended
BlockExtended Object BlockExtended Object contains: header extended_transactions genesis block only: genesis_balance size
message GetObjectResp { bool found = 1 ; oneof result { OptimizedAddressState address_state = 2 ; TransactionExtended transaction = 3 ; BlockExtended block_extended = 4 ; } }
GetLatestData GetLatestDataReq GetLatestDataResp service PublicAPI { rpc GetLatestData ( GetLatestDataReq ) returns ( GetLatestDataResp ) { option ( google . api . http ) = { get : "/latest-data" } ; } ; }
Field Type Details filter
filter One of: ALL, BLOCKHEADERS, TRANSACTIONS, TRANSACTIONS_UNCONFIRMED offset
uint32 Offset in the result list (works backwards in this case) quantity
uint32 Number of items to retrieve. Capped at 100
message GetLatestDataReq { enum Filter { ALL = 0 ; BLOCKHEADERS = 1 ; TRANSACTIONS = 2 ; TRANSACTIONS_UNCONFIRMED = 3 ; } Filter filter = 1 ; uint32 offset = 2 ; uint32 quantity = 3 ; }
message GetLatestDataResp { repeated BlockHeaderExtended blockheaders = 1 ; repeated TransactionExtended transactions = 2 ; repeated TransactionExtended transactions_unconfirmed = 3 ; }
PushTransaction PushTransactionReq PushTransactionResp service PublicAPI { rpc PushTransaction ( PushTransactionReq ) returns ( PushTransactionResp ) { option ( google . api . http ) = { post : "/push-transaction" } ; } ; }
Field Type Details transaction_signed
Transaction Object Transaction Object contains: master_addr fee public_key signature nonce transaction_hash transactionType
message PushTransactionReq { Transaction transaction_signed = 1 ; }
Field Type Details error_code
enum ResponseCode
Response code will be one of: UNKNOWN ERROR VALIDATION_FAILED SUBMITTED error_description
string String description of the error tx_hash
bytes Transaction hash from the PushTransaction
message PushTransactionResp { enum ResponseCode { UNKNOWN = 0 ; ERROR = 1 ; VALIDATION_FAILED = 2 ; SUBMITTED = 3 ; } ResponseCode error_code = 1 ; string error_description = 2 ; bytes tx_hash = 3 ; }
TransferCoins TransferCoinsReq TransferCoinsResp service PublicAPI { rpc TransferCoins ( TransferCoinsReq ) returns ( TransferCoinsResp ) { option ( google . api . http ) = { post : "/transfer-coins" } ; } ; }
Field Type Details master_addr
bytes Transaction source address addresses_to
repeated bytes Transaction destination address amounts
repeated uint64 Amount. It should be expressed in Shor message_data
bytes Message Data. Optional field to send messages fee
uint64 Fee. It should be expressed in Shor xmss_pk
bytes XMSS Public key
message TransferCoinsReq { bytes master_addr = 1 ; repeated bytes addresses_to = 2 ; repeated uint64 amounts = 3 ; bytes message_data = 4 ; uint64 fee = 5 ; bytes xmss_pk = 6 ; }
Field Type Details extended_transaction_unsigned
TransactionExtended Object TransactionExtended Object contains: header tx addr_from size timestamp_seconds
message TransferCoinsResp { TransactionExtended extended_transaction_unsigned = 1 ; }
ParseAddress
returns a AddressDescriptor
object containing information about the given QRL address, as well as verification that the address is valid.
ParseAddress ParseAddressReq ParseAddressResp service PublicAPI { rpc ParseAddress ( ParseAddressReq ) returns ( ParseAddressResp ) { option ( google . api . http ) = { get : "/parse-address" } ; } ; }
Field Type Details address
bytes QRL Address to parse
message ParseAddressReq { bytes address = 1 ; }
Field Type Details is_valid
bool Returns True
if address given is valid desc
AddressDescriptor Object AddressDescriptor object contains: hash_function signature_scheme tree_height signatures address_format
message ParseAddressResp { bool is_valid = 1 ; AddressDescriptor desc = 2 ; }
GetChainStats GetChainStatsReq GetChainStatsResp service PublicAPI { rpc GetChainStats ( GetChainStatsReq ) returns ( GetChainStatsResp ) { option ( google . api . http ) = { get : "/chain-stats" } ; } ; }
message GetChainStatsReq { }
Field Type Details state_size
uint64 Returns the whole state folder size, in bytes state_size_mb
string Returns the whole state folder size, in megabytes state_size_gb
string Returns the whole state folder size, in gigabytes
message GetChainStatsResp { uint64 state_size = 1 ; string state_size_mb = 2 ; string state_size_gb = 3 ; }
GetAddressFromPK GetAddressFromPKReq GetAddressFromPKResp service PublicAPI { rpc GetAddressFromPK ( GetAddressFromPKReq ) returns ( GetAddressFromPKResp ) { option ( google . api . http ) = { get : "/address-from-pk" } ; } ; }
Field Type Details pk
bytes Requires PK
message GetAddressFromPKReq { bytes pk = 1 ; }
Field Type Details address
bytes Returns the QRL Address from the PK
message GetAddressFromPKResp { bytes address = 1 ; }
Create a Multisig address transaction
GetMultiSigCreateTxn MultiSigCreateTxnReq TransferCoinsResp service PublicAPI { rpc GetMultiSigCreateTxn ( MultiSigCreateTxnReq ) returns ( TransferCoinsResp ) { option ( google . api . http ) = { post : "/multi-sig-create-txn" } ; } ; }
Field Type Details master_addr
bytes QRL Address used to create the multisig address signatories
repeated bytes List of authorized signatories for multisig address weights
repeated uint32 List of weights associated with signatories threshold
threshold Threshold required for approval of multisig spend transaction fee
uint64 Fee for creation of multisig address transaction xmss_pk
bytes QRL Private key for transaction signature
message MultiSigCreateTxnReq { bytes master_addr = 1 ; repeated bytes signatories = 2 ; repeated uint32 weights = 3 ; uint32 threshold = 4 ; uint64 fee = 5 ; bytes xmss_pk = 6 ; }
Field Type Details extended_transaction_unsigned
TransactionExtended Object TransactionExtended object contains: header tx master_addr fee public_key signature nonce transaction_hash MultiSigCreate signatories weights threshold addr_from size timestamp_seconds
message TransferCoinsResp { TransactionExtended extended_transaction_unsigned = 1 ; }
GetMultiSigSpendTxn MultiSigSpendTxnReq TransferCoinsResp service PublicAPI { rpc GetMultiSigSpendTxn ( MultiSigSpendTxnReq ) returns ( TransferCoinsResp ) { option ( google . api . http ) = { post : "/multi-sig-spend-txn" } ; } ; }
Field Type Details master_addr
bytes QRL Address must be a signatory of the multisig address multi_sig_address
bytes The multisig address used for the spend transaction addrs_to
repeated bytes List of QRL addresses to send funds to from the multisig address amounts
repeated uint64 List of amounts to send corresponding to the addrs_to
list expiry_block_number
uint64 Block at which the multisig spend transaction expires if not approved fee
uint64 Fee for multisig spend transaction xmss_pk
bytes QRL Private key for transaction signature
message MultiSigSpendTxnReq { bytes master_addr = 1 ; bytes multi_sig_address = 2 ; repeated bytes addrs_to = 3 ; repeated uint64 amounts = 4 ; uint64 expiry_block_number = 5 ; uint64 fee = 6 ; bytes xmss_pk = 7 ; }
Field Type Details extended_transaction_unsigned
TransactionExtended Object TransactionExtended Object contains: header tx master_addr fee public_key signature nonce transaction_hash MultiSigSpend multi_sig_address addrs_to amounts expiry_block_number addr_from size timestamp_seconds
message TransferCoinsResp { TransactionExtended extended_transaction_unsigned = 1 ; }
Define this function and parameters
GetMultiSigVoteTxn MultiSigVoteTxnReq TransferCoinsResp service PublicAPI { rpc GetMultiSigVoteTxn ( MultiSigVoteTxnReq ) returns ( TransferCoinsResp ) { option ( google . api . http ) = { post : "/multi-sig-vote-txn" } ; } ; }
Field Type Details master_addr
bytes QRL Address must be a signatory of the multisig address shared_key
bytes Multisig spend transaction to vote on unvote
bool fee
uint64 Fee for the multisig vote transaction xmss_pk
bytes QRL Private key for transaction signature
message MultiSigVoteTxnReq { bytes master_addr = 1 ; bytes shared_key = 2 ; bool unvote = 3 ; uint64 fee = 4 ; bytes xmss_pk = 5 ; }
Field Type Details extended_transaction_unsigned
TransactionExtended Object TransactionExtended Object contains: header tx master_addr fee public_key signature nonce transaction_hash MultiSigVote shared_key unvote prev_tx_hash addr_from size timestamp_seconds
message TransferCoinsResp { TransactionExtended extended_transaction_unsigned = 1 ; }
Define this function and parameters
GetMessageTxn MessageTxnReq TransferCoinsResp service PublicAPI { rpc GetMessageTxn ( MessageTxnReq ) returns ( TransferCoinsResp ) { option ( google . api . http ) = { post : "/message-txn" } ; } ; }
Field Type Details master_addr
bytes QRL Public address message
bytes Message to send addr_to
bytes Address to send message to (Optional) fee
uint64 Fee for message transaction xmss_pk
bytes QRL Private key for transaction signature
message MessageTxnReq { bytes master_addr = 1 ; bytes message = 2 ; bytes addr_to = 3 ; uint64 fee = 4 ; bytes xmss_pk = 5 ; }
Field Type Details extended_transaction_unsigned
TransactionExtended Object TransactionExtended Object contains: header tx master_addr fee public_key signature nonce transaction_hash Message message_hash addr_to addr_from size timestamp_seconds
message TransferCoinsResp { TransactionExtended extended_transaction_unsigned = 1 ; }
Creates a token on the QRL network
GetTokenTxn TokenTxnReq TransferCoinsResp service PublicAPI { rpc GetTokenTxn ( TokenTxnReq ) returns ( TransferCoinsResp ) { option ( google . api . http ) = { post : "/token-txn" } ; } ; }
Field Type Details master_addr
bytes QRL Address creating the token symbol
bytes Token symbol name
bytes Token name owner
bytes QRL Address of the token owner decimals
uint64 Number of decimals for the token (limit of 9 decimal places) initial_balances
repeated AddressAmount Object list of QRL address and initial balances for up to 100 initial token holders fee
uint64 Fee for the token transaction xmss_pk
bytes QRL Private key for transaction signature
message TokenTxnReq { bytes master_addr = 1 ; bytes symbol = 2 ; bytes name = 3 ; bytes owner = 4 ; uint64 decimals = 5 ; repeated AddressAmount initial_balances = 6 ; uint64 fee = 7 ; bytes xmss_pk = 8 ; }
Field Type Details extended_transaction_unsigned
TransactionExtended Object TransactionExtended Object contains: header tx master_addr fee public_key signature nonce transaction_hash Token symbol name owner decimals initial_balances addr_from size timestamp_seconds
message TransferCoinsResp { TransactionExtended extended_transaction_unsigned = 1 ; }
Define this function and parameters
GetTransferTokenTxn TransferTokenTxnReq TransferCoinsResp service PublicAPI { rpc GetTransferTokenTxn ( TransferTokenTxnReq ) returns ( TransferCoinsResp ) { option ( google . api . http ) = { post : "/transfer-token-txn" } ; } ; }
Field Type Details master_addr
bytes QRL Address sending the token addresses_to
repeated bytes List of addresses to send tokens to (Up to 100) token_txhash
bytes Transaction hash from token creation, identifying token to send amounts
repeated uint64 List of amounts to send corresponding to the address_to
list fee
uint64 Fee for the token transfer transaction xmss_pk
bytes QRL Private key for transaction signature
message TransferTokenTxnReq { bytes master_addr = 1 ; repeated bytes addresses_to = 2 ; bytes token_txhash = 3 ; repeated uint64 amounts = 4 ; uint64 fee = 5 ; bytes xmss_pk = 6 ; }
Field Type Details extended_transaction_unsigned
TransactionExtended Object TransactionExtended Object contains: header tx master_addr fee public_key signature nonce transaction_hash TransferToken token_txhash addrs_to amounts addr_from size timestamp_seconds
message TransferCoinsResp { TransactionExtended extended_transaction_unsigned = 1 ; }
Create slave addresses associated to a master address
GetSlaveTxn SlaveTxnReq TransferCoinsResp service PublicAPI { rpc GetSlaveTxn ( SlaveTxnReq ) returns ( TransferCoinsResp ) { option ( google . api . http ) = { post : "/slave-txn" } ; } ; }
Field Type Details master_addr
bytes Master address creating the slaves addresses slave_pks
repeated bytes List of slave public keys (up to 100) access_types
repeated uint32 List Slave access type 0 or 1 (0 = Full access 1 = Depreciated) fee
uint64 Fee for the slave transaction xmss_pk
bytes QRL Private key for transaction signature
message SlaveTxnReq { bytes master_addr = 1 ; repeated bytes slave_pks = 2 ; repeated uint32 access_types = 3 ; uint64 fee = 4 ; bytes xmss_pk = 5 ; }
Field Type Details extended_transaction_unsigned
TransactionExtended Object TransactionExtended Object contains: header tx master_addr fee public_key signature nonce transaction_hash Slave slave_pks access_types addr_from size timestamp_seconds
message TransferCoinsResp { TransactionExtended extended_transaction_unsigned = 1 ; }
Generate a lattice transaction, sending Crystals public keys into chain
GetLatticeTxn LatticeTxnReq TransferCoinsResp service PublicAPI { rpc GetLatticeTxn ( LatticeTxnReq ) returns ( TransferCoinsResp ) { option ( google . api . http ) = { post : "/lattice-txn" } ; } ; }
Field Type Details master_addr
bytes Master address creating the lattice transaction pk1
bytes kyber Public Key pk2
bytes dilithium Public Key pk3
bytes ecdsa Public Key fee
uint64 Lattice key transaction xmss_pk
bytes QRL Private key for transaction signature
message LatticeTxnReq { bytes master_addr = 1 ; bytes pk1 = 2 ; bytes pk2 = 3 ; bytes pk3 = 4 ; uint64 fee = 5 ; bytes xmss_pk = 6 ; }
Field Type Details extended_transaction_unsigned
TransactionExtended Object TransactionExtended Object contains: header tx master_addr fee public_key signature nonce transaction_hash LatticePublicKey pk1 pk2 pk3 addr_from size timestamp_seconds
message TransferCoinsResp { TransactionExtended extended_transaction_unsigned = 1 ; }
Get transaction data from transaction hash provided
GetTransaction GetTransactionReq GetTransactionResp service PublicAPI { rpc GetTransaction ( GetTransactionReq ) returns ( GetTransactionResp ) { option ( google . api . http ) = { get : "/transaction" } ; } ; }
Field Type Details tx_hash
bytes Transaction hash to lookup
message GetTransactionReq { bytes tx_hash = 1 ; }
Field Type Details tx
Transaction Object Providing transaction data related to the transaction hash provided (Varies per transaction type) confirmations
uint64 Number of confirmations since transaction was minted block_number
uint64 Block number transaction was seen block_header_hash
bytes header hash from block timestamp
uint64 Timestamp of transaction addr_from
bytes QRL address transaction was sent from
message GetTransactionResp { Transaction tx = 1 ; uint64 confirmations = 2 ; uint64 block_number = 3 ; bytes block_header_hash = 4 ; uint64 timestamp = 5 ; bytes addr_from = 6 ; }
GetMiniTransactionsByAddress GetMiniTransactionsByAddressReq GetMiniTransactionsByAddressResp service PublicAPI { rpc GetMiniTransactionsByAddress ( GetMiniTransactionsByAddressReq ) returns ( GetMiniTransactionsByAddressResp ) { option ( google . api . http ) = { get : "/mini-transaction-by-address" } ; } ; }
Field Type Details address
bytes Address to lookup item_per_page
uint64 Items per page page_number
uint64 Page number for data response
message GetMiniTransactionsByAddressReq { bytes address = 1 ; uint64 item_per_page = 2 ; uint64 page_number = 3 ; }
Field Type Details mini_transactions
repeated MiniTransaction Object MiniTransaction Object contains: transaction_hash out amount balance
uint64 Address balance
message GetMiniTransactionsByAddressResp { repeated MiniTransaction mini_transactions = 1 ; uint64 balance = 2 ; }
GetTransactionsByAddress GetTransactionsByAddressReq GetTransactionsByAddressResp service PublicAPI { rpc GetTransactionsByAddress ( GetTransactionsByAddressReq ) returns ( GetTransactionsByAddressResp ) { option ( google . api . http ) = { get : "/transactions-by-address" } ; } ; }
Field Type Details address
bytes QRL Address to lookup item_per_page
uint64 Items per page to return page_number
uint64 Page number to return
message GetTransactionsByAddressReq { bytes address = 1 ; uint64 item_per_page = 2 ; uint64 page_number = 3 ; }
Field Type Details transactions_detail
repeated GetTransactionResp Object GetTransactionResp Object contains: tx confirmations block_number block_header_hash timestamp addr_from
message GetTransactionsByAddressResp { repeated GetTransactionResp transactions_detail = 1 ; }
GetTokensByAddress GetTransactionsByAddressReq GetTokensByAddressResp service PublicAPI { rpc GetTokensByAddress ( GetTransactionsByAddressReq ) returns ( GetTokensByAddressResp ) { option ( google . api . http ) = { get : "/tokens-by-address" } ; } ; }
Field Type Details address
bytes QRL Address to lookup item_per_page
uint64 Items per page to return page_number
uint64 Page number to return
message GetTransactionsByAddressReq { bytes address = 1 ; uint64 item_per_page = 2 ; uint64 page_number = 3 ; }
Field Type Details tokens_detail
repeated TokenDetail Object TokenDetail Object contains: token_txhash name symbol balance
message GetTokensByAddressResp { repeated TokenDetail tokens_detail = 1 ; }
GetSlavesByAddress GetTransactionsByAddressReq GetSlavesByAddressResp service PublicAPI { rpc GetSlavesByAddress ( GetTransactionsByAddressReq ) returns ( GetSlavesByAddressResp ) { option ( google . api . http ) = { get : "/slaves-by-address" } ; } ; }
Field Type Details address
bytes Address to lookup for slave data item_per_page
uint64 items per page to return page_number
uint64 Page number to return
message GetTransactionsByAddressReq { bytes address = 1 ; uint64 item_per_page = 2 ; uint64 page_number = 3 ; }
Field Type Details slaves_detail
repeated SlaveDetail Object SlaveDetail Object contains: slave_address access_type
message GetSlavesByAddressResp { repeated SlaveDetail slaves_detail = 1 ; }
Returns any Lattice keys associated with the QRL address given.
GetLatticePKsByAddress GetTransactionsByAddressReq GetLatticePKsByAddressResp service PublicAPI { rpc GetLatticePKsByAddress ( GetTransactionsByAddressReq ) returns ( GetLatticePKsByAddressResp ) { option ( google . api . http ) = { get : "/lattice-pks-by-address" } ; } ; }
Field Type Details address
bytes QRL Address to lookup item_per_page
uint64 Items per page to return page_number
uint64 Page number to return
message GetTransactionsByAddressReq { bytes address = 1 ; uint64 item_per_page = 2 ; uint64 page_number = 3 ; }
Field Type Details lattice_pks_detail
repeated LatticePKsDetail Object LatticePKsDetail Object contains: pk1 pk2 pk3 tx_hash
message GetLatticePKsByAddressResp { repeated LatticePKsDetail lattice_pks_detail = 1 ; }
Lookup and return all multisig addresses associated with a QRL address
GetMultiSigAddressesByAddress GetTransactionsByAddressReq GetMultiSigAddressesByAddressResp service PublicAPI { rpc GetMultiSigAddressesByAddress ( GetTransactionsByAddressReq ) returns ( GetMultiSigAddressesByAddressResp ) { option ( google . api . http ) = { get : "/multi-sig-addresses-by-address" } ; } ; }
Field Type Details address
bytes QRL Address for lookup item_per_page
uint64 Items to return per page page_number
uint64 Number of page to return
message GetTransactionsByAddressReq { bytes address = 1 ; uint64 item_per_page = 2 ; uint64 page_number = 3 ; }
Field Type Details multi_sig_detail
repeated MultiSigDetail Object MultiSigDetail Object contains: address balance
message GetMultiSigAddressesByAddressResp { repeated MultiSigDetail multi_sig_detail = 1 ; }
Returns any multisig spend transactions associated with the address given.
GetMultiSigSpendTxsByAddress GetMultiSigSpendTxsByAddressReq GetMultiSigSpendTxsByAddressResp service PublicAPI { rpc GetMultiSigSpendTxsByAddress ( GetMultiSigSpendTxsByAddressReq ) returns ( GetMultiSigSpendTxsByAddressResp ) { option ( google . api . http ) = { get : "/multi-sig-spend-txs-by-address" } ; } ; }
Field Type Details address
bytes QRL address to lookup item_per_page
uint64 Items per page to return page_number
uint64 Page number to return filter_type
FilterType Object NONE, EXECUTED_ONLY, NON_EXECUTED, EXPIRED, NON_EXPIRED, NON_EXECUTED_EXPIRED, NON_EXECUTED_NON_EXPIRED
message GetMultiSigSpendTxsByAddressReq { enum FilterType { NONE = 0 ; EXECUTED_ONLY = 1 ; NON_EXECUTED = 2 ; EXPIRED = 3 ; NON_EXPIRED = 4 ; NON_EXECUTED_EXPIRED = 5 ; NON_EXECUTED_NON_EXPIRED = 6 ; } bytes address = 1 ; uint64 item_per_page = 2 ; uint64 page_number = 3 ; FilterType filter_type = 4 ; }
Field Type Details transactions_detail
repeated GetTransactionResp Object GetTransactionResp Object contains: tx multi_sig_address addrs_to amounts expiry_block_number confirmations block_number block_header_hash timestamp addr_from
message GetMultiSigSpendTxsByAddressResp { repeated GetTransactionResp transactions_detail = 1 ; }
Returns multisig spend vote stats with a given multisig spend transaction hash
GetVoteStats GetVoteStatsReq GetVoteStatsResp service PublicAPI { rpc GetVoteStats ( GetVoteStatsReq ) returns ( GetVoteStatsResp ) { option ( google . api . http ) = { get : "/vote-stats" } ; } ; }
Field Type Details multi_sig_spend_tx_hash
bytes multisig transaction hash for stats
message GetVoteStatsReq { bytes multi_sig_spend_tx_hash = 1 ; }
Field Type Details vote_stats
VoteStats Object VoteStats Object contains: multi_sig_address shared_key signatories tx_hashes unvotes expiry_block_number total_weight executed
message GetVoteStatsResp { VoteStats vote_stats = 1 ; }
GetInboxMessagesByAddress GetTransactionsByAddressReq GetInboxMessagesByAddressResp service PublicAPI { rpc GetInboxMessagesByAddress ( GetTransactionsByAddressReq ) returns ( GetInboxMessagesByAddressResp ) { option ( google . api . http ) = { get : "/inbox-messages-by-address" } ; } ; }
Field Type Details address
bytes QRL address to lookup item_per_page
uint64 Items per page to return page_number
uint64 page number to return
message GetTransactionsByAddressReq { bytes address = 1 ; uint64 item_per_page = 2 ; uint64 page_number = 3 ; }
message GetInboxMessagesByAddressResp { repeated GetTransactionResp transactions_detail = 1 ; }
Returns a given QRL address balance
GetBalance GetBalanceReq GetBalanceResp service PublicAPI { rpc GetBalance ( GetBalanceReq ) returns ( GetBalanceResp ) { option ( google . api . http ) = { get : "/balance" } ; } ; }
Field Type Details address
bytes QRL Address to lookup for balance
message GetBalanceReq { bytes address = 1 ; }
Field Type Details balance
uint64 Balance response with latest known balance
message GetBalanceResp { uint64 balance = 1 ; }
Returns total balance of all addresses given.
GetTotalBalance GetTotalBalanceReq GetTotalBalanceResp service PublicAPI { rpc GetTotalBalance ( GetTotalBalanceReq ) returns ( GetTotalBalanceResp ) { option ( google . api . http ) = { get : "/total-balance" } ; } ; }
Field Type Details addresses
repeated bytes List of QRL addresses for address lookup
message GetTotalBalanceReq { repeated bytes addresses = 1 ; }
Field Type Details balance
uint64 Combined balance of all addresses in request
message GetTotalBalanceResp { uint64 balance = 1 ; }
GetOTS GetOTSReq GetOTSResp service PublicAPI { rpc GetOTS ( GetOTSReq ) returns ( GetOTSResp ) { option ( google . api . http ) = { get : "/ots" } ; } ; }
Field Type Details address
address QRL Address to lookup OTS keys page_from
page_from Page to return starting point page_count
page_count Count of pages to return unused_ots_index_from
unused_ots_index_from
message GetOTSReq { bytes address = 1 ; uint64 page_from = 2 ; uint64 page_count = 3 ; uint64 unused_ots_index_from = 4 ; }
Field Type Details ots_bitfield_by_page
repeated OTSBitfieldByPage Object OTSBitfieldByPage Object contains: ots_bitfield page_number next_unused_ots_index
uint64 Next available un-used OTS key for the address given unused_ots_index_found
bool If any available OTS keys exist for the address given
message GetOTSResp { repeated OTSBitfieldByPage ots_bitfield_by_page = 1 ; uint64 next_unused_ots_index = 2 ; bool unused_ots_index_found = 3 ; }
message OTSBitfieldByPage { repeated bytes ots_bitfield = 1 ; uint64 page_number = 2 ; }
GetHeight GetHeightReq GetHeightResp service PublicAPI { rpc GetHeight ( GetHeightReq ) returns ( GetHeightResp ) { option ( google . api . http ) = { get : "/height" } ; } ; }
Field Type Details height
uint64
message GetHeightResp { uint64 height = 1 ; }
Returns QRL block data from given block header hash
GetBlock GetBlockReq GetBlockResp service PublicAPI { rpc GetBlock ( GetBlockReq ) returns ( GetBlockResp ) { option ( google . api . http ) = { get : "/block" } ; } ; }
Field Type Details header_hash
bytes Block header hash to lookup
message GetBlockReq { bytes header_hash = 1 ; }
Field Type Details block
Block object Block Object contains: header transactions
message GetBlockResp { Block block = 1 ; }
Returns block data by given block number.
GetBlockByNumber GetBlockByNumberReq GetBlockByNumberResp service PublicAPI { rpc GetBlockByNumber ( GetBlockByNumberReq ) returns ( GetBlockByNumberResp ) { option ( google . api . http ) = { get : "/block-by-number" } ; } ; }
Field Type Details block_number
uint64 Block number for lookup
message GetBlockByNumberReq { uint64 block_number = 1 ; }
Field Type Details block
Block object Block Object contains: header transactions
message GetBlockByNumberResp { Block block = 1 ; }
Content Node info returns the following:
Field Type Details version
string The version of the QRL node state
State One of UNKNOWN, UNSYNCED, SYNCING, SYNCED, FORKED signifying the state of the node num_connections
uint32 Number of connections seen to node num_known_peers
uint32 Number of know peers seen by node uptime
uint64 The uptime of the node in seconds block_height
uint64 Blockheight currently known to node block_last_hash
bytes Last block hash; network_id
string Network ID
message NodeInfo { enum State { UNKNOWN = 0 ; UNSYNCED = 1 ; SYNCING = 2 ; SYNCED = 3 ; FORKED = 4 ; } string version = 1 ; State state = 2 ; uint32 num_connections = 3 ; uint32 num_known_peers = 4 ; uint64 uptime = 5 ; uint64 block_height = 6 ; bytes block_last_hash = 7 ; string network_id = 8 ; }
Name Bits Count Description HF 0 .. 3 4 Hash Function SIG 4 .. 7 4 Signature Scheme P1 8 .. 11 4 Parameters 1 (ie. height, etc.) P2 12 .. 15 4 Address Format P3 16 .. 23 8 Parameters 2
In the case of using XMSS, the parameters are used as follows:
Name Bits Count Description HF 0 .. 3 4 SHA2-256, SHAKE128, SHAKE256 SIG 4 .. 7 4 XMSS P1 8 .. 11 4 XMSS Height / 2 AF / P2 12 . . 15 4 Address Format P3 16 .. 23 8 Not used
message AddressDescriptor { string hash_function = 1 ; string signature_scheme = 2 ; uint32 tree_height = 3 ; uint32 signatures = 4 ; string address_format = 5 ; }
Field Type Details peers
repeated Peer Object Peer Object contains: ip
message StoredPeers { repeated Peer peers = 1 ; }
Field Type Details ip
string Returns the public peer IP Address
message Peer { string ip = 1 ; }
Field Type Details address
bytes Pub Address in bytes balance
uint64 Address balance nonce
uint64 Address Nonce ots_bitfield
repeated bytes One Time Signature Bitfield transaction_hashes
repeated bytes Repeated list of all transaction hashes tokens
map<string, uint64> Map of tokens found in address latticePK_list
repeated LatticePK Repeated list of lattice public keys slave_pks_access_type
map<string, uint32> Map of slave key access type ots_counter
uint64 Count of used OTS Keys
message AddressState { bytes address = 1 ; uint64 balance = 2 ; uint64 nonce = 3 ; repeated bytes ots_bitfield = 4 ; repeated bytes transaction_hashes = 5 ; map < string , uint64 > tokens = 6 ; repeated LatticePK latticePK_list = 7 ; map < string , uint32 > slave_pks_access_type = 8 ; uint64 ots_counter = 9 ; }
Field Type Details address
bytes Pub Address in bytes balance
uint64 Address balance nonce
uint64 Address Nonce ots_bitfield_used_page
uint64 Keep track of last page till which all ots key has been used used_ots_key_count
uint64 Keep track of number of ots key that has been used transaction_hash_count
uint64 tokens_count
uint64 slaves_count
uint64 lattice_pk_count
uint64 multi_sig_address_count
uint64 multi_sig_spend_count
uint64 inbox_message_count
uint64 foundation_multi_sig_spend_txn_hash
repeated foundation_multi_sig_vote_txn_hash
repeated unvotes
repeated proposal_vote_stats
repeated
message OptimizedAddressState { bytes address = 1 ; uint64 balance = 2 ; uint64 nonce = 3 ; uint64 ots_bitfield_used_page = 4 ; uint64 used_ots_key_count = 5 ; uint64 transaction_hash_count = 6 ; uint64 tokens_count = 7 ; uint64 slaves_count = 8 ; uint64 lattice_pk_count = 9 ; uint64 multi_sig_address_count = 10 ; uint64 multi_sig_spend_count = 11 ; uint64 inbox_message_count = 12 ; repeated bytes foundation_multi_sig_spend_txn_hash = 13 ; repeated bytes foundation_multi_sig_vote_txn_hash = 14 ; repeated bytes unvotes = 15 ; repeated Transaction proposal_vote_stats = 16 ; }
Field Type Details address
bbytes Pub Address in bytes creation_tx_hash
bytes nonce
uint64 balance
uint64 Address balance signatories
bytes weights
uint32 threshold
uint32 transaction_hash_count
uint64 multi_sig_spend_count
uint64 multi_sig_address_count
uint64 foundation_multi_sig_spend_txn_hash
bytes foundation_multi_sig_vote_txn_hash
bytes unvotes
bytes proposal_vote_stats
Transaction Object Returns a transaction object with address state proposal vote stats
message MultiSigAddressState { bytes address = 1 ; bytes creation_tx_hash = 2 ; uint64 nonce = 3 ; uint64 balance = 4 ; repeated bytes signatories = 5 ; repeated uint32 weights = 6 ; uint32 threshold = 7 ; uint64 transaction_hash_count = 8 ; uint64 multi_sig_spend_count = 9 ; uint64 multi_sig_address_count = 10 ; repeated bytes foundation_multi_sig_spend_txn_hash = 11 ; repeated bytes foundation_multi_sig_vote_txn_hash = 12 ; repeated bytes unvotes = 13 ; repeated Transaction proposal_vote_stats = 14 ; }
Field Type Details hashes
repeated bytes
message MultiSigAddressesList { repeated bytes hashes = 1 ; }
Field Type Details values
repeated bytes
message DataList { repeated bytes values = 1 ; }
Field Type Details bitfields repeated bytes
message Bitfield { repeated bytes bitfields = 1 ; }
Field Type Details hashes
repeated bytes
message TransactionHashList { repeated bytes hashes = 1 ; }
Field Type Details kyber_pk
bytes dilithium_pk
bytes
message LatticePK { bytes kyber_pk = 1 ; bytes dilithium_pk = 2 ; }
Field Type Details address
bytes amount
uint64
message AddressAmount { bytes address = 1 ; uint64 amount = 2 ; }
Field Type Details hash_header
bytes block_number
uint64 timestamp_seconds
uint64 hash_header_prev
bytes reward_block
uint64 reward_fee
uint64 merkle_root
bytes mining_nonce
uint32 extra_nonce
uint64
message BlockHeader { bytes hash_header = 1 ; uint64 block_number = 2 ; uint64 timestamp_seconds = 3 ; bytes hash_header_prev = 4 ; uint64 reward_block = 5 ; uint64 reward_fee = 6 ; bytes merkle_root = 7 ; uint32 mining_nonce = 8 ; uint64 extra_nonce = 9 ; }
message BlockHeaderExtended { BlockHeader header = 1 ; TransactionCount transaction_count = 2 ; }
Field Type Details count
map<uint32, uint32>
message TransactionCount { map < uint32 , uint32 > count = 1 ; }
message TransactionExtended { BlockHeader header = 1 ; Transaction tx = 2 ; bytes addr_from = 3 ; uint64 size = 4 ; uint64 timestamp_seconds = 5 ; }
genesis_balance
is only applicable to genesis blocks.
message BlockExtended { BlockHeader header = 1 ; repeated TransactionExtended extended_transactions = 2 ; repeated GenesisBalance genesis_balance = 3 ; uint64 size = 4 ; }
genesis_balance
is only applicable to genesis blocks.
message Block { BlockHeader header = 1 ; repeated Transaction transactions = 2 ; repeated GenesisBalance genesis_balance = 3 ; }
Field Type Details address
bytes Address is string only here to increase visibility balance
uint64
message GenesisBalance { bytes address = 1 ; uint64 balance = 2 ; }
Field Type Details block_number_hashes
repeated BlockMetaData Object BlockMetaData object contains: block_difficulty cumulative_difficulty child_headerhashes last_N_headerhashes
message BlockMetaDataList { repeated BlockMetaData block_number_hashes = 1 ; }
Field Type Details master_addr
bytes fee
uint64 public_key
bytes signature
bytes nonce
uint64 transaction_hash
bytes transactionType
One of: transactionType: transfer coinbase latticePK message token transfer_token slave multi_sig_create multi_sig_spend multi_sig_vote proposal_create proposal_vote
message Transaction { bytes master_addr = 1 ; uint64 fee = 2 ; bytes public_key = 3 ; bytes signature = 4 ; uint64 nonce = 5 ; bytes transaction_hash = 6 ; oneof transactionType { Transfer transfer = 7 ; CoinBase coinbase = 8 ; LatticePublicKey latticePK = 9 ; Message message = 10 ; Token token = 11 ; TransferToken transfer_token = 12 ; Slave slave = 13 ; MultiSigCreate multi_sig_create = 14 ; MultiSigSpend multi_sig_spend = 15 ; MultiSigVote multi_sig_vote = 16 ; ProposalCreate proposal_create = 17 ; ProposalVote proposal_vote = 18 ; } message Transfer { repeated bytes addrs_to = 1 ; repeated uint64 amounts = 2 ; bytes message_data = 3 ; } message CoinBase { bytes addr_to = 1 ; uint64 amount = 2 ; } message LatticePublicKey { bytes pk1 = 1 ; bytes pk2 = 2 ; bytes pk3 = 3 ; } message Message { bytes message_hash = 1 ; bytes addr_to = 2 ; } message Token { bytes symbol = 1 ; bytes name = 2 ; bytes owner = 3 ; uint64 decimals = 4 ; repeated AddressAmount initial_balances = 5 ; } message TransferToken { bytes token_txhash = 1 ; repeated bytes addrs_to = 2 ; repeated uint64 amounts = 3 ; } message Slave { repeated bytes slave_pks = 1 ; repeated uint32 access_types = 2 ; } message MultiSigCreate { repeated bytes signatories = 1 ; repeated uint32 weights = 2 ; uint32 threshold = 3 ; } message MultiSigSpend { bytes multi_sig_address = 1 ; repeated bytes addrs_to = 2 ; repeated uint64 amounts = 3 ; uint64 expiry_block_number = 4 ; } message MultiSigVote { bytes shared_key = 1 ; bool unvote = 2 ; bytes prev_tx_hash = 3 ; } message ProposalCreate { uint64 expiry_block_number = 1 ; string description = 2 ; oneof proposalType { QIP qip = 3 ; Config config = 4 ; Other other = 5 ; } message QIP { string qip_link = 1 ; } message Config { repeated bytes changes_bitfield = 1 ; uint64 reorg_limit = 2 ; uint64 max_coin_supply = 3 ; uint64 complete_emission_time_span_in_years = 4 ; uint64 mining_nonce_offset = 5 ; uint64 extra_nonce_offset = 6 ; uint64 mining_blob_size_in_bytes = 7 ; uint64 block_timing_in_seconds = 8 ; uint64 number_of_blocks_analyze = 9 ; uint64 block_size_multiplier = 10 ; uint64 block_min_size_limit_in_bytes = 11 ; uint64 transaction_multi_output_limit = 12 ; uint64 message_max_length = 13 ; uint64 token_symbol_max_length = 14 ; uint64 token_name_max_length = 15 ; uint64 lattice_pk1_max_length = 16 ; uint64 lattice_pk2_max_length = 17 ; uint64 lattice_pk3_max_length = 18 ; uint64 foundation_multi_sig_address_threshold_percentage = 19 ; uint64 proposal_threshold_per = 20 ; repeated string proposal_default_options = 21 ; uint64 description_max_length = 22 ; uint64 options_max_number = 23 ; uint64 option_max_text_length = 24 ; uint64 proposal_config_activation_delay = 25 ; uint64 N_measurement = 26 ; uint64 kp = 27 ; } message Other { repeated string options = 1 ; } } message ProposalVote { bytes shared_key = 1 ; uint32 option = 2 ; } }
Field Type Details transaction_hash
string out
bool amount
uint64
message MiniTransaction { string transaction_hash = 1 ; bool out = 2 ; uint64 amount = 3 ; }
Field Type Details tx
Transaction confirmations
uint64 block_number
uint64 block_header_hash
bytes timestamp
uint64 addr_from
bytes
message GetTransactionResp { Transaction tx = 1 ; uint64 confirmations = 2 ; uint64 block_number = 3 ; bytes block_header_hash = 4 ; uint64 timestamp = 5 ; bytes addr_from = 6 ; }
Field Type Details token_txhash
bytes name
bytes symbol
bytes balance
uint64
message TokenDetail { bytes token_txhash = 1 ; bytes name = 2 ; bytes symbol = 3 ; uint64 balance = 4 ; }
Field Type Details slave_address
bytes access_type
uint64
message SlaveDetail { bytes slave_address = 1 ; uint64 access_type = 2 ; }
Field Type Details pk1
bytes pk2
bytes pk3
bytes tx_hash
bytes
message LatticePKsDetail { bytes pk1 = 1 ; bytes pk2 = 2 ; bytes pk3 = 3 ; bytes tx_hash = 4 ; }
Field Type Details address
bytes balance
uint64
message MultiSigDetail { bytes address = 1 ; uint64 balance = 2 ; }
Field Type Details multi_sig_address
bytes shared_key
bytes signatories
repeated bytes tx_hashes
repeated bytes unvotes
repeated bool expiry_block_number
uint64 total_weight
uint64 executed
bool
message VoteStats { bytes multi_sig_address = 1 ; bytes shared_key = 2 ; repeated bytes signatories = 3 ; repeated bytes tx_hashes = 4 ; repeated bool unvotes = 5 ; uint64 expiry_block_number = 6 ; uint64 total_weight = 7 ; bool executed = 8 ; }
Field Type Details addr_from
bytes shared_key
bytes proposal_type
string weight_by_option
repeated uint64 expiry_block_number
uint64 executed
bool number_of_tx_hashes
uint64 Keep track of number of pages for vote txn hash
message ProposalVoteStats { bytes addr_from = 1 ; bytes shared_key = 2 ; string proposal_type = 3 ; repeated uint64 weight_by_option = 4 ; uint64 expiry_block_number = 5 ; bool executed = 6 ; uint64 number_of_tx_hashes = 7 ; }
Field Type Details number_of_tx_hashes
uint64
message ProposalRecord { uint64 number_of_tx_hashes = 1 ; }
Field Type Details token_txhash
repeated bytes
message TokenList { repeated bytes token_txhash = 1 ; }
Field Type Details balance
uint64 decimals
uint64 tx_hash
bytes Tx hash responsible for the creation of this data delete
bool For internal use only
message TokenBalance { uint64 balance = 1 ; uint64 decimals = 2 ; bytes tx_hash = 3 ; bool delete = 4 ; }
OTSBitfieldByPage Field Type Details ots_bitfield
repeated bytes page_number
uint64
message OTSBitfieldByPage { repeated bytes ots_bitfield = 1 ; uint64 page_number = 2 ; }
Field Type Details access_type
uint64 tx_hash
bytes delete
bool
message SlaveMetadata { uint64 access_type = 1 ; bytes tx_hash = 2 ; bool delete = 3 ; }
Field Type Details enabled
bool tx_hash
bytes delete
bool
message LatticePKMetadata { bool enabled = 1 ; bytes tx_hash = 2 ; bool delete = 3 ; }
Field Type Details token_txhash
bytes transfer_token_tx_hashes
repeated bytes
message TokenMetadata { bytes token_txhash = 1 ; repeated bytes transfer_token_tx_hashes = 2 ; }
Field Type Details msg_id
bytes NEW or PRF ttl
uint64 Expiry Timestamp in seconds ttr
uint64 Time to relay channel
Channel Object Channel object contains: enc_aes256_symkey nonce
uint64 nonce payload
bytes JSON content, encrypted by aes256_symkey
message EncryptedEphemeralMessage { bytes msg_id = 1 ; uint64 ttl = 2 ; uint64 ttr = 3 ; message Channel { bytes enc_aes256_symkey = 4 ; } Channel channel = 5 ; uint64 nonce = 6 ; bytes payload = 7 ; }
Field Type Details addresses
repeated bytes
message AddressList { repeated bytes addresses = 1 ; }
Field Type Details block_number
block_headerhash
cumulative_difficulty
message BlockHeightData { uint64 block_number = 1 ; bytes block_headerhash = 2 ; bytes cumulative_difficulty = 3 ; }
Field Type Details block_difficulty
bytes cumulative_difficulty
bytes child_headerhashes
repeated bytes last_N_headerhashes
repeated bytes Keeps last N headerhashes, for measurement of timestamp difference
message BlockMetaData { bytes block_difficulty = 1 ; bytes cumulative_difficulty = 2 ; repeated bytes child_headerhashes = 3 ; repeated bytes last_N_headerhashes = 4 ; }
Field Type Details headerhash
bytes prev_headerhash
bytes
message BlockNumberMapping { bytes headerhash = 1 ; bytes prev_headerhash = 2 ; }
PeerStat
returns stats on a peer.
Field Type Details peer_ip
bytes Peer public IP address port
uint32 peer p2p open port node_chain_state
NodeChainState Object NodeChainState object contains: block_number header_hash cumulative_difficulty version timestamp
message PeerStat { bytes peer_ip = 1 ; uint32 port = 2 ; NodeChainState node_chain_state = 3 ; }
Field Type Details block_number
uint64 header_hash
bytes cumulative_difficulty
bytes version
string timestamp
uint64
message NodeChainState { uint64 block_number = 1 ; bytes header_hash = 2 ; bytes cumulative_difficulty = 3 ; string version = 4 ; uint64 timestamp = 5 ; }
Field Type Details block_number
uint64 headerhashes
repeated bytes
message NodeHeaderHash { uint64 block_number = 1 ; repeated bytes headerhashes = 2 ; }
Field Type Details bytes_processed
uint32
message P2PAcknowledgement { uint32 bytes_processed = 1 ; }
PeerInfo
returns data on a peer.
Field Type Details peer_ip
bytes Peer's public IP address port
uint32 p2p open port of peer banned_timestamp
uint32 timestamp if peer has ban credibility
uint32 credibility rating last_connections_timestamp
repeated uint32 last seen connection time
message PeerInfo { bytes peer_ip = 1 ; uint32 port = 2 ; uint32 banned_timestamp = 3 ; uint32 credibility = 4 ; repeated uint32 last_connections_timestamp = 5 ; }
Peers message returns all information from the PeerInfo message function.
Field Type Details peer_info_list
repeated PeerInfo Object PeerInfo object contains: peer_ip port banned_timestamp credibility last_connections_timestamp
message Peers { repeated PeerInfo peer_info_list = 1 ; }
Field Type Details number
uint64 Block number difficulty
string Block difficulty timestamp
uint64 Block timestamp time_last
uint64 time_movavg
uint64 hash_power
float Hash power header_hash
bytes Block header hash header_hash_prev
bytes Previous block's header hash
message BlockDataPoint { uint64 number = 1 ; string difficulty = 2 ; uint64 timestamp = 3 ; uint64 time_last = 4 ; uint64 time_movavg = 5 ; float hash_power = 6 ; bytes header_hash = 7 ; bytes header_hash_prev = 8 ; }
Field Type Details prev_state_key
bytes current_state_key
bytes activation_header_hash
bytes activation_block_number
uint64 chain
Chain Object Dev Chain object contains: reorg_limit max_coin_supply complete_emission_time_span_in_years block
Block Object Dev Block object contains: mining_nonce_offset extra_nonce_offset mining_blob_size_in_bytes block_timing_in_seconds block_size_controller number_of_blocks_analyze size_multiplier block_min_size_limit_in_bytes transaction
Transaction Object Dev Transaction object contains: multi_output_limit message max_length slave slave_pk_max_length token symbol_max_length name_max_length lattice pk1_max_length pk2_max_length pk3_max_length foundation_multi_sig threshold_percentage proposal threshold_per default_options description_max_length options_max_number option_max_text_length proposal_config_activation_delay pow
POW Object POW object contains: N_measurement kp
message DevConfig { bytes prev_state_key = 1 ; bytes current_state_key = 2 ; bytes activation_header_hash = 3 ; uint64 activation_block_number = 4 ; Chain chain = 5 ; Block block = 6 ; Transaction transaction = 7 ; POW pow = 8 ; message Chain { uint64 reorg_limit = 1 ; uint64 max_coin_supply = 2 ; uint64 complete_emission_time_span_in_years = 3 ; } message Block { uint64 mining_nonce_offset = 1 ; uint64 extra_nonce_offset = 2 ; uint64 mining_blob_size_in_bytes = 3 ; uint64 block_timing_in_seconds = 4 ; BlockSizeController block_size_controller = 5 ; message BlockSizeController { uint64 number_of_blocks_analyze = 1 ; uint64 size_multiplier = 2 ; uint64 block_min_size_limit_in_bytes = 3 ; } } message Transaction { uint64 multi_output_limit = 1 ; Message message = 2 ; Slave slave = 3 ; Token token = 4 ; Lattice lattice = 5 ; FoundationMultiSig foundation_multi_sig = 6 ; Proposal proposal = 7 ; message Message { uint64 max_length = 1 ; } message Slave { uint64 slave_pk_max_length = 2 ; } message Token { uint64 symbol_max_length = 1 ; uint64 name_max_length = 2 ; } message Lattice { uint64 pk1_max_length = 1 ; uint64 pk2_max_length = 2 ; uint64 pk3_max_length = 3 ; } message FoundationMultiSig { uint64 threshold_percentage = 1 ; } message Proposal { uint64 threshold_per = 1 ; repeated string default_options = 2 ; uint64 description_max_length = 3 ; uint64 options_max_number = 4 ; uint64 option_max_text_length = 5 ; uint64 proposal_config_activation_delay = 6 ; } } message POW { uint64 N_measurement = 1 ; uint64 kp = 2 ; } }