All the amounts are in NanoPAC units,
which are atomic and the smallest unit in the Pactus blockchain.
Each PAC is equivalent to 1,000,000,000 or 109 NanoPACs.
Transaction Service
Transaction service defines various RPC methods for interacting with transactions.
GetTransaction
GetTransaction retrieves transaction details based on the provided request parameters.
GetTransactionRequest Request
Field | Type | Description |
id | string | The unique ID of the transaction to retrieve. |
verbosity | TransactionVerbosity | (Enum)The verbosity level for transaction details. Available values:- TRANSACTION_VERBOSITY_DATA = 0 (Request transaction data only.)
- TRANSACTION_VERBOSITY_INFO = 1 (Request detailed transaction information.)
|
GetTransactionResponse Response
Field | Type | Description |
block_height | uint32 | The height of the block containing the transaction. |
block_time | uint32 | The UNIX timestamp of the block containing the transaction. |
transaction | TransactionInfo | Detailed information about the transaction. |
transaction.id | string | The unique ID of the transaction. |
transaction.data | string | The raw transaction data in hexadecimal format. |
transaction.version | int32 | The version of the transaction. |
transaction.lock_time | uint32 | The lock time for the transaction. |
transaction.value | int64 | The value of the transaction in NanoPAC. |
transaction.fee | int64 | The fee for the transaction in NanoPAC. |
transaction.payload_type | PayloadType | (Enum)The type of transaction payload. Available values:- PAYLOAD_TYPE_UNSPECIFIED = 0 (Unspecified payload type.)
- PAYLOAD_TYPE_TRANSFER = 1 (Transfer payload type.)
- PAYLOAD_TYPE_BOND = 2 (Bond payload type.)
- PAYLOAD_TYPE_SORTITION = 3 (Sortition payload type.)
- PAYLOAD_TYPE_UNBOND = 4 (Unbond payload type.)
- PAYLOAD_TYPE_WITHDRAW = 5 (Withdraw payload type.)
|
transaction.transfer | PayloadTransfer | (OneOf)Transfer transaction payload. |
transaction.transfer.sender | string | The sender's address. |
transaction.transfer.receiver | string | The receiver's address. |
transaction.transfer.amount | int64 | The amount to be transferred in NanoPAC. |
transaction.bond | PayloadBond | (OneOf)Bond transaction payload. |
transaction.bond.sender | string | The sender's address. |
transaction.bond.receiver | string | The receiver's address. |
transaction.bond.stake | int64 | The stake amount in NanoPAC. |
transaction.bond.public_key | string | The public key of the validator. |
transaction.sortition | PayloadSortition | (OneOf)Sortition transaction payload. |
transaction.sortition.address | string | The validator address associated with the sortition proof. |
transaction.sortition.proof | string | The proof for the sortition. |
transaction.unbond | PayloadUnbond | (OneOf)Unbond transaction payload. |
transaction.unbond.validator | string | The address of the validator to unbond from. |
transaction.withdraw | PayloadWithdraw | (OneOf)Withdraw transaction payload. |
transaction.withdraw.validator_address | string | The address of the validator to withdraw from. |
transaction.withdraw.account_address | string | The address of the account to withdraw to. |
transaction.withdraw.amount | int64 | The withdrawal amount in NanoPAC. |
transaction.memo | string | A memo string for the transaction. |
transaction.public_key | string | The public key associated with the transaction. |
transaction.signature | string | The signature for the transaction. |
CalculateFee
CalculateFee calculates the transaction fee based on the specified amount and payload type.
CalculateFeeRequest Request
Field | Type | Description |
amount | int64 | The amount involved in the transaction, specified in NanoPAC. |
payload_type | PayloadType | (Enum)The type of transaction payload. Available values:- PAYLOAD_TYPE_UNSPECIFIED = 0 (Unspecified payload type.)
- PAYLOAD_TYPE_TRANSFER = 1 (Transfer payload type.)
- PAYLOAD_TYPE_BOND = 2 (Bond payload type.)
- PAYLOAD_TYPE_SORTITION = 3 (Sortition payload type.)
- PAYLOAD_TYPE_UNBOND = 4 (Unbond payload type.)
- PAYLOAD_TYPE_WITHDRAW = 5 (Withdraw payload type.)
|
fixed_amount | bool | Indicates if the amount should be fixed and include the fee. |
CalculateFeeResponse Response
Field | Type | Description |
amount | int64 | The calculated amount in NanoPAC. |
fee | int64 | The calculated transaction fee in NanoPAC. |
BroadcastTransaction
BroadcastTransaction broadcasts a signed transaction to the network.
BroadcastTransactionRequest Request
Field | Type | Description |
signed_raw_transaction | string | The signed raw transaction data to be broadcasted. |
BroadcastTransactionResponse Response
Field | Type | Description |
id | string | The unique ID of the broadcasted transaction. |
GetRawTransferTransaction
GetRawTransferTransaction retrieves raw details of a transfer transaction.
GetRawTransferTransactionRequest Request
Field | Type | Description |
lock_time | uint32 | The lock time for the transaction. If not set, defaults to the last block height. |
sender | string | The sender's account address. |
receiver | string | The receiver's account address. |
amount | int64 | The amount to be transferred, specified in NanoPAC. Must be greater than 0. |
fee | int64 | The transaction fee in NanoPAC. If not set, it is set to the estimated fee. |
memo | string | A memo string for the transaction. |
GetRawTransactionResponse Response
Field | Type | Description |
raw_transaction | string | The raw transaction data in hexadecimal format. |
id | string | The unique ID of the transaction. |
GetRawBondTransaction
GetRawBondTransaction retrieves raw details of a bond transaction.
GetRawBondTransactionRequest Request
Field | Type | Description |
lock_time | uint32 | The lock time for the transaction. If not set, defaults to the last block height. |
sender | string | The sender's account address. |
receiver | string | The receiver's validator address. |
stake | int64 | The stake amount in NanoPAC. Must be greater than 0. |
public_key | string | The public key of the validator. |
fee | int64 | The transaction fee in NanoPAC. If not set, it is set to the estimated fee. |
memo | string | A memo string for the transaction. |
GetRawTransactionResponse Response
Field | Type | Description |
raw_transaction | string | The raw transaction data in hexadecimal format. |
id | string | The unique ID of the transaction. |
GetRawUnbondTransaction
GetRawUnbondTransaction retrieves raw details of an unbond transaction.
GetRawUnbondTransactionRequest Request
Field | Type | Description |
lock_time | uint32 | The lock time for the transaction. If not set, defaults to the last block height. |
validator_address | string | The address of the validator to unbond from. |
memo | string | A memo string for the transaction. |
GetRawTransactionResponse Response
Field | Type | Description |
raw_transaction | string | The raw transaction data in hexadecimal format. |
id | string | The unique ID of the transaction. |
GetRawWithdrawTransaction
GetRawWithdrawTransaction retrieves raw details of a withdraw transaction.
GetRawWithdrawTransactionRequest Request
Field | Type | Description |
lock_time | uint32 | The lock time for the transaction. If not set, defaults to the last block height. |
validator_address | string | The address of the validator to withdraw from. |
account_address | string | The address of the account to withdraw to. |
amount | int64 | The withdrawal amount in NanoPAC. Must be greater than 0. |
fee | int64 | The transaction fee in NanoPAC. If not set, it is set to the estimated fee. |
memo | string | A memo string for the transaction. |
GetRawTransactionResponse Response
Field | Type | Description |
raw_transaction | string | The raw transaction data in hexadecimal format. |
id | string | The unique ID of the transaction. |
DecodeRawTransaction
DecodeRawTransaction accepts raw transaction and returns decoded transaction.
DecodeRawTransactionRequest Request
Field | Type | Description |
raw_transaction | string | The raw transaction data in hexadecimal format. |
DecodeRawTransactionResponse Response
Field | Type | Description |
transaction | TransactionInfo | The decoded transaction information. |
transaction.id | string | The unique ID of the transaction. |
transaction.data | string | The raw transaction data in hexadecimal format. |
transaction.version | int32 | The version of the transaction. |
transaction.lock_time | uint32 | The lock time for the transaction. |
transaction.value | int64 | The value of the transaction in NanoPAC. |
transaction.fee | int64 | The fee for the transaction in NanoPAC. |
transaction.payload_type | PayloadType | (Enum)The type of transaction payload. Available values:- PAYLOAD_TYPE_UNSPECIFIED = 0 (Unspecified payload type.)
- PAYLOAD_TYPE_TRANSFER = 1 (Transfer payload type.)
- PAYLOAD_TYPE_BOND = 2 (Bond payload type.)
- PAYLOAD_TYPE_SORTITION = 3 (Sortition payload type.)
- PAYLOAD_TYPE_UNBOND = 4 (Unbond payload type.)
- PAYLOAD_TYPE_WITHDRAW = 5 (Withdraw payload type.)
|
transaction.transfer | PayloadTransfer | (OneOf)Transfer transaction payload. |
transaction.transfer.sender | string | The sender's address. |
transaction.transfer.receiver | string | The receiver's address. |
transaction.transfer.amount | int64 | The amount to be transferred in NanoPAC. |
transaction.bond | PayloadBond | (OneOf)Bond transaction payload. |
transaction.bond.sender | string | The sender's address. |
transaction.bond.receiver | string | The receiver's address. |
transaction.bond.stake | int64 | The stake amount in NanoPAC. |
transaction.bond.public_key | string | The public key of the validator. |
transaction.sortition | PayloadSortition | (OneOf)Sortition transaction payload. |
transaction.sortition.address | string | The validator address associated with the sortition proof. |
transaction.sortition.proof | string | The proof for the sortition. |
transaction.unbond | PayloadUnbond | (OneOf)Unbond transaction payload. |
transaction.unbond.validator | string | The address of the validator to unbond from. |
transaction.withdraw | PayloadWithdraw | (OneOf)Withdraw transaction payload. |
transaction.withdraw.validator_address | string | The address of the validator to withdraw from. |
transaction.withdraw.account_address | string | The address of the account to withdraw to. |
transaction.withdraw.amount | int64 | The withdrawal amount in NanoPAC. |
transaction.memo | string | A memo string for the transaction. |
transaction.public_key | string | The public key associated with the transaction. |
transaction.signature | string | The signature for the transaction. |
Blockchain Service
Blockchain service defines RPC methods for interacting with the blockchain.
GetBlock
GetBlock retrieves information about a block based on the provided request parameters.
GetBlockRequest Request
Field | Type | Description |
height | uint32 | The height of the block to retrieve. |
verbosity | BlockVerbosity | (Enum)The verbosity level for block information. Available values:- BLOCK_VERBOSITY_DATA = 0 (Request only block data.)
- BLOCK_VERBOSITY_INFO = 1 (Request block information and transaction IDs.)
- BLOCK_VERBOSITY_TRANSACTIONS = 2 (Request block information and detailed transaction data.)
|
GetBlockResponse Response
Field | Type | Description |
height | uint32 | The height of the block. |
hash | string | The hash of the block. |
data | string | Block data, available only if verbosity level is set to BLOCK_DATA. |
block_time | uint32 | The timestamp of the block. |
header | BlockHeaderInfo | Header information of the block. |
header.version | int32 | The version of the block. |
header.prev_block_hash | string | The hash of the previous block. |
header.state_root | string | The state root hash of the blockchain. |
header.sortition_seed | string | The sortition seed of the block. |
header.proposer_address | string | The address of the proposer of the block. |
prev_cert | CertificateInfo | Certificate information of the previous block. |
prev_cert.hash | string | The hash of the certificate. |
prev_cert.round | int32 | The round of the certificate. |
prev_cert.committers | repeated int32 | List of committers in the certificate. |
prev_cert.absentees | repeated int32 | List of absentees in the certificate. |
prev_cert.signature | string | The signature of the certificate. |
txs | repeated TransactionInfo | List of transactions in the block, available when verbosity level is set to
BLOCK_TRANSACTIONS. |
txs[].id | string | The unique ID of the transaction. |
txs[].data | string | The raw transaction data in hexadecimal format. |
txs[].version | int32 | The version of the transaction. |
txs[].lock_time | uint32 | The lock time for the transaction. |
txs[].value | int64 | The value of the transaction in NanoPAC. |
txs[].fee | int64 | The fee for the transaction in NanoPAC. |
txs[].payload_type | PayloadType | (Enum)The type of transaction payload. Available values:- PAYLOAD_TYPE_UNSPECIFIED = 0 (Unspecified payload type.)
- PAYLOAD_TYPE_TRANSFER = 1 (Transfer payload type.)
- PAYLOAD_TYPE_BOND = 2 (Bond payload type.)
- PAYLOAD_TYPE_SORTITION = 3 (Sortition payload type.)
- PAYLOAD_TYPE_UNBOND = 4 (Unbond payload type.)
- PAYLOAD_TYPE_WITHDRAW = 5 (Withdraw payload type.)
|
txs[].transfer | PayloadTransfer | (OneOf)Transfer transaction payload. |
txs[].transfer.sender | string | The sender's address. |
txs[].transfer.receiver | string | The receiver's address. |
txs[].transfer.amount | int64 | The amount to be transferred in NanoPAC. |
txs[].bond | PayloadBond | (OneOf)Bond transaction payload. |
txs[].bond.sender | string | The sender's address. |
txs[].bond.receiver | string | The receiver's address. |
txs[].bond.stake | int64 | The stake amount in NanoPAC. |
txs[].bond.public_key | string | The public key of the validator. |
txs[].sortition | PayloadSortition | (OneOf)Sortition transaction payload. |
txs[].sortition.address | string | The validator address associated with the sortition proof. |
txs[].sortition.proof | string | The proof for the sortition. |
txs[].unbond | PayloadUnbond | (OneOf)Unbond transaction payload. |
txs[].unbond.validator | string | The address of the validator to unbond from. |
txs[].withdraw | PayloadWithdraw | (OneOf)Withdraw transaction payload. |
txs[].withdraw.validator_address | string | The address of the validator to withdraw from. |
txs[].withdraw.account_address | string | The address of the account to withdraw to. |
txs[].withdraw.amount | int64 | The withdrawal amount in NanoPAC. |
txs[].memo | string | A memo string for the transaction. |
txs[].public_key | string | The public key associated with the transaction. |
txs[].signature | string | The signature for the transaction. |
GetBlockHash
GetBlockHash retrieves the hash of a block at the specified height.
GetBlockHashRequest Request
Field | Type | Description |
height | uint32 | The height of the block to retrieve the hash for. |
GetBlockHashResponse Response
Field | Type | Description |
hash | string | The hash of the block. |
GetBlockHeight
GetBlockHeight retrieves the height of a block with the specified hash.
GetBlockHeightRequest Request
Field | Type | Description |
hash | string | The hash of the block to retrieve the height for. |
GetBlockHeightResponse Response
Field | Type | Description |
height | uint32 | The height of the block. |
GetBlockchainInfo
GetBlockchainInfo retrieves general information about the blockchain.
GetBlockchainInfoRequest Request
Message has no fields.
GetBlockchainInfoResponse Response
Field | Type | Description |
last_block_height | uint32 | The height of the last block in the blockchain. |
last_block_hash | string | The hash of the last block in the blockchain. |
total_accounts | int32 | The total number of accounts in the blockchain. |
total_validators | int32 | The total number of validators in the blockchain. |
total_power | int64 | The total power of the blockchain. |
committee_power | int64 | The power of the committee. |
committee_validators | repeated ValidatorInfo | List of committee validators. |
committee_validators[].hash | string | The hash of the validator. |
committee_validators[].data | string | The serialized data of the validator. |
committee_validators[].public_key | string | The public key of the validator. |
committee_validators[].number | int32 | The unique number assigned to the validator. |
committee_validators[].stake | int64 | The stake of the validator in NanoPAC. |
committee_validators[].last_bonding_height | uint32 | The height at which the validator last bonded. |
committee_validators[].last_sortition_height | uint32 | The height at which the validator last participated in sortition. |
committee_validators[].unbonding_height | uint32 | The height at which the validator will unbond. |
committee_validators[].address | string | The address of the validator. |
committee_validators[].availability_score | double | The availability score of the validator. |
is_pruned | bool | If the blocks are subject to pruning. |
pruning_height | uint32 | Lowest-height block stored (only present if pruning is enabled) |
last_block_time | int64 | Timestamp of the last block in Unix format |
GetConsensusInfo
GetConsensusInfo retrieves information about the consensus instances.
GetConsensusInfoRequest Request
Message has no fields.
GetConsensusInfoResponse Response
Field | Type | Description |
proposal | ProposalInfo | The proposal of the consensus info. |
proposal.height | uint32 | The height of the proposal. |
proposal.round | int32 | The round of the proposal. |
proposal.block_data | string | The block data of the proposal. |
proposal.signature | string | The signature of the proposal, signed by the proposer. |
instances | repeated ConsensusInfo | List of consensus instances. |
instances[].address | string | The address of the consensus instance. |
instances[].active | bool | Indicates whether the consensus instance is active and part of the committee. |
instances[].height | uint32 | The height of the consensus instance. |
instances[].round | int32 | The round of the consensus instance. |
instances[].votes | repeated VoteInfo | List of votes in the consensus instance. |
instances[].votes[].type | VoteType | (Enum)The type of the vote. Available values:- VOTE_TYPE_UNSPECIFIED = 0 (Unspecified vote type.)
- VOTE_TYPE_PREPARE = 1 (Prepare vote type.)
- VOTE_TYPE_PRECOMMIT = 2 (Precommit vote type.)
- VOTE_TYPE_CP_PRE_VOTE = 3 (Change-proposer:pre-vote vote type.)
- VOTE_TYPE_CP_MAIN_VOTE = 4 (Change-proposer:main-vote vote type.)
- VOTE_TYPE_CP_DECIDED = 5 (Change-proposer:decided vote type.)
|
instances[].votes[].voter | string | The address of the voter. |
instances[].votes[].block_hash | string | The hash of the block being voted on. |
instances[].votes[].round | int32 | The consensus round of the vote. |
instances[].votes[].cp_round | int32 | The change-proposer round of the vote. |
instances[].votes[].cp_value | int32 | The change-proposer value of the vote. |
GetAccount
GetAccount retrieves information about an account based on the provided address.
GetAccountRequest Request
Field | Type | Description |
address | string | The address of the account to retrieve information for. |
GetAccountResponse Response
Field | Type | Description |
account | AccountInfo | Detailed information about the account. |
account.hash | string | The hash of the account. |
account.data | string | The serialized data of the account. |
account.number | int32 | The unique number assigned to the account. |
account.balance | int64 | The balance of the account in NanoPAC. |
account.address | string | The address of the account. |
GetValidator
GetValidator retrieves information about a validator based on the provided address.
GetValidatorRequest Request
Field | Type | Description |
address | string | The address of the validator to retrieve information for. |
GetValidatorResponse Response
Field | Type | Description |
validator | ValidatorInfo | Detailed information about the validator. |
validator.hash | string | The hash of the validator. |
validator.data | string | The serialized data of the validator. |
validator.public_key | string | The public key of the validator. |
validator.number | int32 | The unique number assigned to the validator. |
validator.stake | int64 | The stake of the validator in NanoPAC. |
validator.last_bonding_height | uint32 | The height at which the validator last bonded. |
validator.last_sortition_height | uint32 | The height at which the validator last participated in sortition. |
validator.unbonding_height | uint32 | The height at which the validator will unbond. |
validator.address | string | The address of the validator. |
validator.availability_score | double | The availability score of the validator. |
GetValidatorByNumber
GetValidatorByNumber retrieves information about a validator based on the provided number.
GetValidatorByNumberRequest Request
Field | Type | Description |
number | int32 | The unique number of the validator to retrieve information for. |
GetValidatorResponse Response
Field | Type | Description |
validator | ValidatorInfo | Detailed information about the validator. |
validator.hash | string | The hash of the validator. |
validator.data | string | The serialized data of the validator. |
validator.public_key | string | The public key of the validator. |
validator.number | int32 | The unique number assigned to the validator. |
validator.stake | int64 | The stake of the validator in NanoPAC. |
validator.last_bonding_height | uint32 | The height at which the validator last bonded. |
validator.last_sortition_height | uint32 | The height at which the validator last participated in sortition. |
validator.unbonding_height | uint32 | The height at which the validator will unbond. |
validator.address | string | The address of the validator. |
validator.availability_score | double | The availability score of the validator. |
GetValidatorAddresses
GetValidatorAddresses retrieves a list of all validator addresses.
GetValidatorAddressesRequest Request
Message has no fields.
GetValidatorAddressesResponse Response
Field | Type | Description |
addresses | repeated string | List of validator addresses. |
GetPublicKey
GetPublicKey retrieves the public key of an account based on the provided address.
GetPublicKeyRequest Request
Field | Type | Description |
address | string | The address for which to retrieve the public key. |
GetPublicKeyResponse Response
Field | Type | Description |
public_key | string | The public key associated with the provided address. |
GetTxPoolContent
GetTxPoolContent retrieves current transactions in the transaction pool.
GetTxPoolContentRequest Request
Field | Type | Description |
payload_type | PayloadType | (Enum)The type of transactions to retrieve from the transaction pool. 0 means all types. Available values:- PAYLOAD_TYPE_UNSPECIFIED = 0 (Unspecified payload type.)
- PAYLOAD_TYPE_TRANSFER = 1 (Transfer payload type.)
- PAYLOAD_TYPE_BOND = 2 (Bond payload type.)
- PAYLOAD_TYPE_SORTITION = 3 (Sortition payload type.)
- PAYLOAD_TYPE_UNBOND = 4 (Unbond payload type.)
- PAYLOAD_TYPE_WITHDRAW = 5 (Withdraw payload type.)
|
GetTxPoolContentResponse Response
Field | Type | Description |
txs | repeated TransactionInfo | List of transactions currently in the pool. |
txs[].id | string | The unique ID of the transaction. |
txs[].data | string | The raw transaction data in hexadecimal format. |
txs[].version | int32 | The version of the transaction. |
txs[].lock_time | uint32 | The lock time for the transaction. |
txs[].value | int64 | The value of the transaction in NanoPAC. |
txs[].fee | int64 | The fee for the transaction in NanoPAC. |
txs[].payload_type | PayloadType | (Enum)The type of transaction payload. Available values:- PAYLOAD_TYPE_UNSPECIFIED = 0 (Unspecified payload type.)
- PAYLOAD_TYPE_TRANSFER = 1 (Transfer payload type.)
- PAYLOAD_TYPE_BOND = 2 (Bond payload type.)
- PAYLOAD_TYPE_SORTITION = 3 (Sortition payload type.)
- PAYLOAD_TYPE_UNBOND = 4 (Unbond payload type.)
- PAYLOAD_TYPE_WITHDRAW = 5 (Withdraw payload type.)
|
txs[].transfer | PayloadTransfer | (OneOf)Transfer transaction payload. |
txs[].transfer.sender | string | The sender's address. |
txs[].transfer.receiver | string | The receiver's address. |
txs[].transfer.amount | int64 | The amount to be transferred in NanoPAC. |
txs[].bond | PayloadBond | (OneOf)Bond transaction payload. |
txs[].bond.sender | string | The sender's address. |
txs[].bond.receiver | string | The receiver's address. |
txs[].bond.stake | int64 | The stake amount in NanoPAC. |
txs[].bond.public_key | string | The public key of the validator. |
txs[].sortition | PayloadSortition | (OneOf)Sortition transaction payload. |
txs[].sortition.address | string | The validator address associated with the sortition proof. |
txs[].sortition.proof | string | The proof for the sortition. |
txs[].unbond | PayloadUnbond | (OneOf)Unbond transaction payload. |
txs[].unbond.validator | string | The address of the validator to unbond from. |
txs[].withdraw | PayloadWithdraw | (OneOf)Withdraw transaction payload. |
txs[].withdraw.validator_address | string | The address of the validator to withdraw from. |
txs[].withdraw.account_address | string | The address of the account to withdraw to. |
txs[].withdraw.amount | int64 | The withdrawal amount in NanoPAC. |
txs[].memo | string | A memo string for the transaction. |
txs[].public_key | string | The public key associated with the transaction. |
txs[].signature | string | The signature for the transaction. |
Network Service
Network service provides RPCs for retrieving information about the network.
GetNetworkInfo
GetNetworkInfo retrieves information about the overall network.
GetNetworkInfoRequest Request
Field | Type | Description |
only_connected | bool | If true, returns only peers that are currently connected. |
GetNetworkInfoResponse Response
Field | Type | Description |
network_name | string | Name of the network. |
connected_peers_count | uint32 | Number of connected peers. |
connected_peers | repeated PeerInfo | List of connected peers. |
connected_peers[].status | int32 | Current status of the peer (e.g., connected, disconnected). |
connected_peers[].moniker | string | Moniker or Human-Readable name of the peer. |
connected_peers[].agent | string | Version and agent details of the peer. |
connected_peers[].peer_id | string | Peer ID of the peer in P2P network. |
connected_peers[].consensus_keys | repeated string | List of consensus keys used by the peer. |
connected_peers[].consensus_addresses | repeated string | List of consensus addresses used by the peer. |
connected_peers[].services | uint32 | Bitfield representing the services provided by the peer. |
connected_peers[].last_block_hash | string | Hash of the last block the peer knows. |
connected_peers[].height | uint32 | Blockchain height of the peer. |
connected_peers[].last_sent | int64 | Time the last bundle sent to the peer (in epoch format). |
connected_peers[].last_received | int64 | Time the last bundle received from the peer (in epoch format). |
connected_peers[].address | string | Network address of the peer. |
connected_peers[].direction | string | Connection direction (e.g., inbound, outbound). |
connected_peers[].protocols | repeated string | List of protocols supported by the peer. |
connected_peers[].total_sessions | int32 | Total download sessions with the peer. |
connected_peers[].completed_sessions | int32 | Completed download sessions with the peer. |
connected_peers[].metric_info | MetricInfo | Metrics related to peer activity. |
connected_peers[].metric_info.total_invalid | CounterInfo | Total number of invalid bundles. |
connected_peers[].metric_info.total_sent | CounterInfo | Total number of bundles sent. |
connected_peers[].metric_info.total_received | CounterInfo | Total number of bundles received. |
connected_peers[].metric_info.message_sent | map<int32, CounterInfo> | Number of sent bundles categorized by message type. |
connected_peers[].metric_info.message_received | map<int32, CounterInfo> | Number of received bundles categorized by message type. |
metric_info | MetricInfo | Metrics related to node activity. |
metric_info.total_invalid | CounterInfo | Total number of invalid bundles. |
metric_info.total_invalid.bytes | uint64 | Total number of bytes. |
metric_info.total_invalid.bundles | uint64 | Total number of bundles. |
metric_info.total_sent | CounterInfo | Total number of bundles sent. |
metric_info.total_sent.bytes | uint64 | Total number of bytes. |
metric_info.total_sent.bundles | uint64 | Total number of bundles. |
metric_info.total_received | CounterInfo | Total number of bundles received. |
metric_info.total_received.bytes | uint64 | Total number of bytes. |
metric_info.total_received.bundles | uint64 | Total number of bundles. |
metric_info.message_sent | map<int32, CounterInfo> | Number of sent bundles categorized by message type. |
metric_info.message_received | map<int32, CounterInfo> | Number of received bundles categorized by message type. |
GetNodeInfo
GetNodeInfo retrieves information about a specific node in the network.
GetNodeInfoRequest Request
Message has no fields.
GetNodeInfoResponse Response
Field | Type | Description |
moniker | string | Moniker or Human-readable name identifying this node in the network. |
agent | string | Version and agent details of the node. |
peer_id | string | Peer ID of the node. |
started_at | uint64 | Time the node was started (in epoch format). |
reachability | string | Reachability status of the node. |
services | int32 | Bitfield representing the services provided by the node. |
services_names | string | Names of services provided by the node. |
local_addrs | repeated string | List of addresses associated with the node. |
protocols | repeated string | List of protocols supported by the node. |
clock_offset | double | Offset between the node's clock and the network's clock (in seconds). |
connection_info | ConnectionInfo | Information about the node's connections. |
connection_info.connections | uint64 | Total number of connections. |
connection_info.inbound_connections | uint64 | Number of inbound connections. |
connection_info.outbound_connections | uint64 | Number of outbound connections. |
zmq_publishers | repeated ZMQPublisherInfo | List of active ZeroMQ publishers. |
zmq_publishers[].topic | string | The topic associated with the publisher. |
zmq_publishers[].address | string | The address of the publisher. |
zmq_publishers[].hwm | int32 | The high-water mark (HWM) for the publisher, indicating the
maximum number of messages to queue before dropping older ones. |
Utils Service
Utils service defines RPC methods for utility functions such as message
signing, verification, and etc.
SignMessageWithPrivateKey
SignMessageWithPrivateKey signs a message with the provided private key.
SignMessageWithPrivateKeyRequest Request
Field | Type | Description |
private_key | string | The private key to sign the message. |
message | string | The message content to be signed. |
SignMessageWithPrivateKeyResponse Response
Field | Type | Description |
signature | string | The resulting signature in hexadecimal format. |
VerifyMessage
VerifyMessage verifies a signature against the public key and message.
VerifyMessageRequest Request
Field | Type | Description |
message | string | The original message content that was signed. |
signature | string | The signature to verify in hexadecimal format. |
public_key | string | The public key of the signer. |
VerifyMessageResponse Response
Field | Type | Description |
is_valid | bool | Boolean indicating whether the signature is valid for the given message and public key. |
PublicKeyAggregation
PublicKeyAggregation aggregates multiple BLS public keys into a single key.
PublicKeyAggregationRequest Request
Field | Type | Description |
public_keys | repeated string | List of BLS public keys to be aggregated. |
PublicKeyAggregationResponse Response
Field | Type | Description |
public_key | string | The aggregated BLS public key. |
address | string | The blockchain address derived from the aggregated public key. |
SignatureAggregation
SignatureAggregation aggregates multiple BLS signatures into a single signature.
SignatureAggregationRequest Request
Field | Type | Description |
signatures | repeated string | List of BLS signatures to be aggregated. |
SignatureAggregationResponse Response
Field | Type | Description |
signature | string | The aggregated BLS signature in hexadecimal format. |
Wallet Service
Wallet service provides RPC methods for wallet management operations.
CreateWallet
CreateWallet creates a new wallet with the specified parameters.
CreateWalletRequest Request
Field | Type | Description |
wallet_name | string | The name for the new wallet. |
password | string | Password to secure the new wallet. |
CreateWalletResponse Response
Field | Type | Description |
mnemonic | string | The mnemonic (seed phrase) for wallet recovery. |
RestoreWallet
RestoreWallet restores an existing wallet with the given mnemonic.
RestoreWalletRequest Request
Field | Type | Description |
wallet_name | string | The name for the restored wallet. |
mnemonic | string | The mnemonic (seed phrase) for wallet recovery. |
password | string | Password to secure the restored wallet. |
RestoreWalletResponse Response
Field | Type | Description |
wallet_name | string | The name of the restored wallet. |
LoadWallet
LoadWallet loads an existing wallet with the given name.
LoadWalletRequest Request
Field | Type | Description |
wallet_name | string | The name of the wallet to load. |
LoadWalletResponse Response
Field | Type | Description |
wallet_name | string | The name of the loaded wallet. |
UnloadWallet
UnloadWallet unloads a currently loaded wallet with the specified name.
UnloadWalletRequest Request
Field | Type | Description |
wallet_name | string | The name of the wallet to unload. |
UnloadWalletResponse Response
Field | Type | Description |
wallet_name | string | The name of the unloaded wallet. |
GetTotalBalance
GetTotalBalance returns the total available balance of the wallet.
GetTotalBalanceRequest Request
Field | Type | Description |
wallet_name | string | The name of the wallet to get the total balance. |
GetTotalBalanceResponse Response
Field | Type | Description |
wallet_name | string | The name of the queried wallet. |
total_balance | int64 | The total balance of the wallet in NanoPAC. |
SignRawTransaction
SignRawTransaction signs a raw transaction for a specified wallet.
SignRawTransactionRequest Request
Field | Type | Description |
wallet_name | string | The name of the wallet used for signing. |
raw_transaction | string | The raw transaction data to be signed. |
password | string | Wallet password required for signing. |
SignRawTransactionResponse Response
Field | Type | Description |
transaction_id | string | The ID of the signed transaction. |
signed_raw_transaction | string | The signed raw transaction data. |
GetValidatorAddress
GetValidatorAddress retrieves the validator address associated with a public key.
GetValidatorAddressRequest Request
Field | Type | Description |
public_key | string | The public key of the validator. |
GetValidatorAddressResponse Response
Field | Type | Description |
address | string | The validator address associated with the public key. |
GetNewAddress
GetNewAddress generates a new address for the specified wallet.
GetNewAddressRequest Request
Field | Type | Description |
wallet_name | string | The name of the wallet to generate a new address. |
address_type | AddressType | (Enum)The type of address to generate. Available values:- ADDRESS_TYPE_TREASURY = 0 (Treasury address type.
Should not be used to generate new addresses.)
- ADDRESS_TYPE_VALIDATOR = 1 (Validator address type used for validator nodes.)
- ADDRESS_TYPE_BLS_ACCOUNT = 2 (Account address type with BLS signature scheme.)
- ADDRESS_TYPE_ED25519_ACCOUNT = 3 (Account address type with Ed25519 signature scheme.
Note: Generating a new Ed25519 address requires the wallet password.)
|
label | string | A label for the new address. |
password | string | Password for the new address. It's required when address_type is Ed25519 type. |
GetNewAddressResponse Response
Field | Type | Description |
wallet_name | string | The name of the wallet where address was generated. |
address_info | AddressInfo | Detailed information about the new address. |
address_info.address | string | The address string. |
address_info.public_key | string | The public key associated with the address. |
address_info.label | string | A human-readable label associated with the address. |
address_info.path | string | The Hierarchical Deterministic (HD) path of the address within the wallet. |
GetAddressHistory
GetAddressHistory retrieves the transaction history of an address.
GetAddressHistoryRequest Request
Field | Type | Description |
wallet_name | string | The name of the wallet containing the address. |
address | string | The address to retrieve history for. |
GetAddressHistoryResponse Response
Field | Type | Description |
history_info | repeated HistoryInfo | List of all historical transactions associated with the address. |
history_info[].transaction_id | string | The transaction ID in hexadecimal format. |
history_info[].time | uint32 | Unix timestamp of when the transaction was confirmed. |
history_info[].payload_type | string | The type of transaction payload. |
history_info[].description | string | Human-readable description of the transaction. |
history_info[].amount | int64 | The transaction amount in NanoPAC. |
SignMessage
SignMessage signs an arbitrary message using a wallet's private key.
SignMessageRequest Request
Field | Type | Description |
wallet_name | string | The name of the wallet to sign with. |
password | string | Wallet password required for signing. |
address | string | The address whose private key should be used for signing the message. |
message | string | The arbitrary message to be signed. |
SignMessageResponse Response
Field | Type | Description |
signature | string | The signature in hexadecimal format. |
GetTotalStake
GetTotalStake returns the total stake amount in the wallet.
GetTotalStakeRequest Request
Field | Type | Description |
wallet_name | string | The name of the wallet to get the total stake. |
GetTotalStakeResponse Response
Field | Type | Description |
wallet_name | string | The name of the queried wallet. |
total_stake | int64 | The total stake amount in NanoPAC. |
GetAddressInfo
GetAddressInfo returns detailed information about a specific address.
GetAddressInfoRequest Request
Field | Type | Description |
wallet_name | string | The name of the wallet containing the address. |
address | string | The address to query. |
GetAddressInfoResponse Response
Field | Type | Description |
wallet_name | string | The name of the wallet containing the address. |
address | string | The queried address. |
label | string | The address label. |
public_key | string | The public key of the address. |
path | string | The Hierarchical Deterministic (HD) path of the address. |
SetAddressLabel
SetAddressLabel sets or updates the label for a given address.
SetAddressLabelRequest Request
Field | Type | Description |
wallet_name | string | The name of the wallet containing the address. |
password | string | Wallet password required for modification. |
address | string | The address to label. |
label | string | The new label for the address. |
SetAddressLabelResponse Response
ListWallet
ListWallet returns list of all available wallets.
ListWalletRequest Request
Message has no fields.
ListWalletResponse Response
Field | Type | Description |
wallets | repeated string | Array of wallet names. |
GetWalletInfo
GetWalletInfo returns detailed information about a specific wallet.
GetWalletInfoRequest Request
Field | Type | Description |
wallet_name | string | The name of the wallet to query. |
GetWalletInfoResponse Response
Field | Type | Description |
wallet_name | string | The name of the wallet to query. |
version | int64 | The wallet format version. |
network | string | The network the wallet is connected to (e.g., mainnet, testnet). |
encrypted | bool | Indicates if the wallet is encrypted. |
uuid | string | A unique identifier of the wallet. |
created_at | int64 | Unix timestamp of wallet creation. |
ListAddress
ListAddress returns all addresses in the specified wallet.
ListAddressRequest Request
Field | Type | Description |
wallet_name | string | The name of the queried wallet. |
ListAddressResponse Response
Field | Type | Description |
wallet_name | string | The name of the queried wallet. |
data | repeated AddressInfo | ist of all addresses in the wallet with their details. |
data[].address | string | The address string. |
data[].public_key | string | The public key associated with the address. |
data[].label | string | A human-readable label associated with the address. |
data[].path | string | The Hierarchical Deterministic (HD) path of the address within the wallet. |
Scalar Value Types
.proto Type | Go | C++ | Rust | Java | Python | C# |
double | float64 | double | f64 | double | float |
float | float32 | float | f32 | float | float |
int32 | int32 | int32 | i32 | int | int |
int64 | int64 | int64 | i64 | long | int/long |
uint32 | uint32 | uint32 | u32 | int | int/long |
uint64 | uint64 | uint64 | u64 | long | int/long |
sint32 | int32 | int32 | i32 | int | int |
sint64 | int64 | int64 | i64 | long | int/long |
fixed32 | uint32 | uint32 | u64 | int | int |
fixed64 | uint64 | uint64 | u64 | long | int/long |
sfixed32 | int32 | int32 | i32 | int | int |
sfixed64 | int64 | int64 | i64 | long | int/long |
bool | bool | bool | bool | boolean | boolean |
string | string | string | String | String | str/unicode |
bytes | []byte | string | Vec | ByteString | str |