The absolute height of a block. This is the number of ancestors of a block
since the genesis block. In particular, the chain genesis block has absolute
height 0.
Field | Type | Label | Description |
value | uint64 |
|
An access structure which specifies which UpdatePublicKeys in a HigherLevelKeys that are allowed
to make chain update of a specific type. The threshold defines the minimum number of allowed keys needed
to make the actual update.
Field | Type | Label | Description |
access_public_keys | UpdateKeysIndex | repeated | Unique indexes into the set of keys in AuthorizationV0. |
access_threshold | UpdateKeysThreshold | Number of keys requred to authorize an update. |
An address of an account. Always 32 bytes.
Field | Type | Label | Description |
value | bytes |
|
Details of an account creation. These transactions are free, and we only
ever get a response for them if the account is created, hence no failure
cases.
Field | Type | Label | Description |
credential_type | CredentialType | Whether this is an initial or normal account. |
|
address | AccountAddress | Address of the newly created account. |
|
reg_id | CredentialRegistrationId | Credential registration ID of the first credential. |
Credential that is part of an account.
Field | Type | Label | Description |
initial | InitialCredentialValues |
|
|
normal | NormalCredentialValues |
|
Input to queries which take an account as a parameter.
Field | Type | Label | Description |
address | AccountAddress | Identify the account by the address of the account. |
|
cred_id | CredentialRegistrationId | Identify the account by the credential that belongs or has belonged to it. |
|
account_index | AccountIndex | Identify the account via its index. |
Index of the account in the account table. These are assigned sequentially
in the order of creation of accounts. The first account has index 0.
Field | Type | Label | Description |
value | uint64 |
|
Information about the account at a particular point in time.
Field | Type | Label | Description |
sequence_number | SequenceNumber | Next sequence number to be used for transactions signed from this account. |
|
amount | Amount | Current (unencrypted) balance of the account. |
|
schedule | ReleaseSchedule | Release schedule for any locked up amount. This could be an empty release schedule. |
|
creds | AccountInfo.CredsEntry | repeated | Map of all currently active credentials on the account. This includes public keys that can sign for the given credentials, as well as any revealed attributes. This map always contains a credential with index 0. |
threshold | AccountThreshold | Lower bound on how many credentials must sign any given transaction from this account. |
|
encrypted_balance | EncryptedBalance | The encrypted balance of the account. |
|
encryption_key | EncryptionKey | The public key for sending encrypted balances to the account. |
|
index | AccountIndex | Internal index of the account. Accounts on the chain get sequential indices. These should generally not be used outside of the chain, the account address is meant to be used to refer to accounts, however the account index serves the role of the baker id, if the account is a baker. Hence it is exposed here as well. |
|
stake | AccountStakingInfo | optional | Present if the account is a baker or delegator. In that case it is the information about the baker or delegator. |
address | AccountAddress | Canonical address of the account. This is derived from the first credential that created the account. |
Field | Type | Label | Description |
key | uint32 |
|
|
value | AccountCredential |
|
Request for account information.
Field | Type | Label | Description |
block_hash | BlockHashInput | Block in which to query the account information. |
|
account_identifier | AccountIdentifierInput | Specification of the account. |
Wrapper for a map from indexes to signatures.
Needed because protobuf doesn't allow nested maps directly.
The keys in the SignatureMap must not exceed 2^8.
Field | Type | Label | Description |
signatures | AccountSignatureMap.SignaturesEntry | repeated |
|
Field | Type | Label | Description |
key | uint32 |
|
|
value | Signature |
|
Information about the account stake, if the account is either a baker or a
delegator.
Field | Type | Label | Description |
baker | AccountStakingInfo.Baker | The account is a baker. |
|
delegator | AccountStakingInfo.Delegator | The account is a delegator. |
Field | Type | Label | Description |
staked_amount | Amount | Amount staked at present. |
|
restake_earnings | bool | A flag indicating whether rewards paid to the baker are automatically restaked or not. |
|
baker_info | BakerInfo | Information about the baker that is staking. |
|
pending_change | StakePendingChange | optional | If present, any pending change to the delegated stake. |
pool_info | BakerPoolInfo | optional | Present if the account is currently a baker, i.e., it is in the baking committee of the current epoch. |
Field | Type | Label | Description |
staked_amount | Amount | The amount that the account delegates. |
|
restake_earnings | bool | Whether the earnings are automatically added to the staked amount. |
|
target | DelegationTarget | The entity to which the account delegates. |
|
pending_change | StakePendingChange | optional | If present, any pending change to the delegated stake. |
The number of credentials required to sign an account transaction.
Field | Type | Label | Description |
value | uint32 |
|
Account transactions are messages which are signed and paid for by the sender
account.
Field | Type | Label | Description |
signature | AccountTransactionSignature |
|
|
header | AccountTransactionHeader |
|
|
payload | AccountTransactionPayload |
|
Details about an account transaction.
Field | Type | Label | Description |
cost | Amount | The cost of the transaction. Paid by the sender. |
|
sender | AccountAddress | The sender of the transaction. |
|
effects | AccountTransactionEffects | The effects of the transaction. |
Effects of an account transaction. All variants except `None`
correspond to a unique transaction that was successful.
Field | Type | Label | Description |
none | AccountTransactionEffects.None | No effects other than payment from this transaction. The rejection reason indicates why the transaction failed. |
|
module_deployed | ModuleRef | A smart contract module with the attached reference was deployed. |
|
contract_initialized | ContractInitializedEvent | A smart contract was initialized. |
|
contract_update_issued | AccountTransactionEffects.ContractUpdateIssued | A smart contract instance updated was issued. |
|
account_transfer | AccountTransactionEffects.AccountTransfer | A simple account to account transfer occurred. |
|
baker_added | BakerEvent.BakerAdded | A baker was added. |
|
baker_removed | BakerId | A baker was removed. |
|
baker_stake_updated | AccountTransactionEffects.BakerStakeUpdated | A baker's stake was updated. |
|
baker_restake_earnings_updated | BakerEvent.BakerRestakeEarningsUpdated | A baker's restake earnings setting was updated. |
|
baker_keys_updated | BakerKeysEvent | A baker's keys were updated. |
|
encrypted_amount_transferred | AccountTransactionEffects.EncryptedAmountTransferred | An encrypted amount was transferred. |
|
transferred_to_encrypted | EncryptedSelfAmountAddedEvent | An account transferred part of its public balance to its encrypted balance. |
|
transferred_to_public | AccountTransactionEffects.TransferredToPublic | An account transferred part of its encrypted balance to its public balance. |
|
transferred_with_schedule | AccountTransactionEffects.TransferredWithSchedule | A transfer with a release schedule was made. |
|
credential_keys_updated | CredentialRegistrationId | Keys of a specific credential were updated. |
|
credentials_updated | AccountTransactionEffects.CredentialsUpdated | Account credentials were updated. |
|
data_registered | RegisteredData | Some data was registered on the chain. |
|
baker_configured | AccountTransactionEffects.BakerConfigured | A baker was configured. The details of what happened are contained in a list of BakerEvents. |
|
delegation_configured | AccountTransactionEffects.DelegationConfigured | A delegator was configured. The details of what happened are contained in a list of DelegatorEvents. |
A simple account to account transfer occurred. This is the result of a
successful Transfer transaction.
Field | Type | Label | Description |
amount | Amount | Amount that was transferred. |
|
receiver | AccountAddress | Receiver account. |
|
memo | Memo | optional | Memo. |
A baker was configured. The details of what happened are contained in
the list of BakerEvents.
Field | Type | Label | Description |
events | BakerEvent | repeated |
|
An account was deregistered as a baker. This is the result of a
successful UpdateBakerStake transaction.
Field | Type | Label | Description |
update | BakerStakeUpdatedData | optional | If the stake was updated (that is, it changed and did not stay the same) then this is present, otherwise it is not present. |
A contract update transaction was issued and produced the given trace.
This is the result of Update transaction.
Field | Type | Label | Description |
effects | ContractTraceElement | repeated |
|
Account's credentials were updated. This is the result of a
successful UpdateCredentials transaction.
Field | Type | Label | Description |
new_cred_ids | CredentialRegistrationId | repeated | The credential ids that were added. |
removed_cred_ids | CredentialRegistrationId | repeated | The credentials that were removed. |
new_threshold | AccountThreshold | The (possibly) updated account threshold. |
An account configured delegation. The details of what happened are
contained in the list of DelegationEvents.
Field | Type | Label | Description |
events | DelegationEvent | repeated |
|
An encrypted amount was transferred. This is the result of a successful
EncryptedAmountTransfer transaction.
Field | Type | Label | Description |
removed | EncryptedAmountRemovedEvent |
|
|
added | NewEncryptedAmountEvent |
|
|
memo | Memo | optional |
|
No effects other than payment from this transaction.
The rejection reason indicates why the transaction failed.
Field | Type | Label | Description |
transaction_type | TransactionType | optional | Transaction type of a failed transaction, if known. In case of serialization failure this will not be set. |
reject_reason | RejectReason | Reason for rejection of the transaction. |
An account transferred part of its encrypted balance to its public
balance. This is the result of a successful TransferToPublic transaction.
Field | Type | Label | Description |
removed | EncryptedAmountRemovedEvent |
|
|
amount | Amount |
|
A transfer with schedule was performed. This is the result of a
successful TransferWithSchedule transaction.
Field | Type | Label | Description |
receiver | AccountAddress | Receiver account. |
|
amount | NewRelease | repeated | The list of releases. Ordered by increasing timestamp. |
memo | Memo | optional | Optional memo. |
Header of an account transaction that contains basic data to check whether
the sender and the transaction are valid. The header is shared by all transaction types.
Field | Type | Label | Description |
sender | AccountAddress | Sender of the transaction. |
|
sequence_number | SequenceNumber | Sequence number of the transaction. |
|
energy_amount | Energy | Maximum amount of energy the transaction can take to execute. |
|
expiry | TransactionTime | Latest time the transaction can included in a block. |
The payload for an account transaction.
Field | Type | Label | Description |
raw_payload | bytes | A pre-serialized payload in the binary serialization format defined by the protocol. |
|
deploy_module | VersionedModuleSource | A transfer between two accounts. With an optional memo. |
|
init_contract | InitContractPayload |
|
|
update_contract | UpdateContractPayload |
|
|
transfer | TransferPayload |
|
|
transfer_with_memo | TransferWithMemoPayload |
|
|
register_data | RegisteredData |
|
Signature on an account transaction is defined to be the signature on the
hash of the `PreAccountTransaction`.
Field | Type | Label | Description |
value | bytes |
|
Field | Type | Label | Description |
signatures | AccountTransactionSignature.SignaturesEntry | repeated | A map from `CredentialIndex` to `SignatureMap`s. The type `CredentialIndex` is not used directly, as messages cannot be keys in maps. The map cannot contain more than 2^8 signatures. |
Field | Type | Label | Description |
key | uint32 |
|
|
value | AccountSignatureMap |
|
A public key used to verify transaction signatures from an account.
Field | Type | Label | Description |
ed25519_key | bytes |
|
An address of either a contract or an account.
Field | Type | Label | Description |
account | AccountAddress |
|
|
contract | ContractAddress |
|
An amount of microCCD.
Field | Type | Label | Description |
value | uint64 |
|
A fraction of an amount with a precision of `1/100_000`.
Field | Type | Label | Description |
parts_per_hundred_thousand | uint32 | Must not exceed 100000. |
Request the ancestors for the given block.
Field | Type | Label | Description |
block_hash | BlockHashInput | The block to get ancestors of. |
|
amount | uint64 | The maximum number of ancestors returned. |
Information on a single anonymity revoker help by the identity provider.
Typically an identity provider will hold more than one.
Field | Type | Label | Description |
identity | ArInfo.ArIdentity | Unique identifier of the anonymity revoker. |
|
description | Description | Description of the anonymity revoker. |
|
public_key | ArInfo.ArPublicKey | Elgamal encryption key of the anonymity revoker. |
Identity of the anonymity revoker on the chain. This defines their
evaluateion point for secret sharing, and thus it cannot be 0.
Field | Type | Label | Description |
value | uint32 |
|
Public key of an anonymity revoker.
Field | Type | Label | Description |
value | bytes |
|
The number of anonymity revokers needed to revoke anonymity of a credential
holder.
Field | Type | Label | Description |
value | uint32 |
|
Information about an arrived block that is part of the streaming response.
Field | Type | Label | Description |
hash | BlockHash | Hash of the block. |
|
height | AbsoluteBlockHeight | Absolute height of the block, height 0 is the genesis block. |
The set of keys authorized for chain updates, together with access structures
determining which keys are authorized for which update types.
This is the payload of an update to authorization.
Field | Type | Label | Description |
keys | UpdatePublicKey | repeated | The set of keys authorized for chain updates. |
emergency | AccessStructure | New emergency keys. |
|
protocol | AccessStructure | New protocol update keys. |
|
parameter_consensus | AccessStructure | Access structure for updating the consensus parameters. Previously, this was the election difficulty. |
|
parameter_euro_per_energy | AccessStructure | Access structure for updating the euro per energy. |
|
parameter_micro_CCD_per_euro | AccessStructure | Access structure for updating the micro CCD per euro. |
|
parameter_foundation_account | AccessStructure | Access structure for updating the foundation account. |
|
parameter_mint_distribution | AccessStructure | Access structure for updating the mint distribution. |
|
parameter_transaction_fee_distribution | AccessStructure | Access structure for updating the transaction fee distribution. |
|
parameter_gas_rewards | AccessStructure | Access structure for updating the gas rewards. |
|
pool_parameters | AccessStructure | Access structure for updating the pool parameters. For V0 this is only the baker stake threshold, for V1 there are more. |
|
add_anonymity_revoker | AccessStructure | Access structure for adding new anonymity revokers. |
|
add_identity_provider | AccessStructure | Access structure for adding new identity providers. |
The set of keys authorized for chain updates, together with access structures
determining which keys are authorized for which update types.
This is the payload of an update to authorization.
Field | Type | Label | Description |
v0 | AuthorizationsV0 |
|
|
parameter_cooldown | AccessStructure | Access structure for updating the cooldown periods related to baking and delegation. |
|
parameter_time | AccessStructure | Access structure for updating the length of the reward period. |
Baker's public key used to check signatures on finalization records.
This is only used if the baker has sufficient stake to participate in
finalization.
Field | Type | Label | Description |
value | bytes |
|
Baker's public key used to check whether they won the lottery or not.
Field | Type | Label | Description |
value | bytes |
|
Events that may result from the ConfigureBaker transaction.
Field | Type | Label | Description |
baker_added | BakerEvent.BakerAdded | A baker was added. |
|
baker_removed | BakerId | A baker was removed. |
|
baker_stake_increased | BakerEvent.BakerStakeIncreased | The baker's stake was increased. |
|
baker_stake_decreased | BakerEvent.BakerStakeDecreased | The baker's stake was decreased. |
|
baker_restake_earnings_updated | BakerEvent.BakerRestakeEarningsUpdated | The baker's setting for restaking earnings was updated. |
|
baker_keys_updated | BakerKeysEvent | Baker keys were updated. |
|
baker_set_open_status | BakerEvent.BakerSetOpenStatus | The baker's open status was updated. |
|
baker_set_metadata_url | BakerEvent.BakerSetMetadataUrl | The baker's metadata URL was updated. |
|
baker_set_transaction_fee_commission | BakerEvent.BakerSetTransactionFeeCommission | The baker's transaction fee commission was updated. |
|
baker_set_baking_reward_commission | BakerEvent.BakerSetBakingRewardCommission | The baker's baking reward commission was updated. |
|
baker_set_finalization_reward_commission | BakerEvent.BakerSetFinalizationRewardCommission | The baker's finalization reward commission was updated. |
A baker was added.
Field | Type | Label | Description |
keys_event | BakerKeysEvent | The keys with which the baker registered. |
|
stake | Amount | The amount the account staked to become a baker. This amount is locked. |
|
restake_earnings | bool | Whether the baker will automatically add earnings to their stake or not. |
Field | Type | Label | Description |
baker_id | BakerId | Baker's id. |
|
restake_earnings | bool | The new value of the flag. |
Updated baking reward commission for baker pool
Field | Type | Label | Description |
baker_id | BakerId | Baker's id |
|
baking_reward_commission | AmountFraction | The baking reward commission |
Updated finalization reward commission for baker pool
Field | Type | Label | Description |
baker_id | BakerId | Baker's id |
|
finalization_reward_commission | AmountFraction | The finalization reward commission |
Updated metadata url for a baker pool.
Field | Type | Label | Description |
baker_id | BakerId | Baker's id. |
|
url | string | The URL. |
Updated open status for a baker pool.
Field | Type | Label | Description |
baker_id | BakerId | Baker's id. |
|
open_status | OpenStatus | The new open status. |
Updated transaction fee commission for a baker pool.
Field | Type | Label | Description |
baker_id | BakerId | Baker's id. |
|
transaction_fee_commission | AmountFraction | The transaction fee commission. |
Field | Type | Label | Description |
baker_id | BakerId | Baker's id. |
|
new_stake | Amount | The new stake. |
Baker stake increased.
Field | Type | Label | Description |
baker_id | BakerId | Baker's id. |
|
new_stake | Amount | The new stake. |
The ID of a baker, which is the index of its account.
Field | Type | Label | Description |
value | uint64 |
|
Information about a baker.
Field | Type | Label | Description |
baker_id | BakerId | Identity of the baker. This is actually the account index of the account controlling the baker. |
|
election_key | BakerElectionVerifyKey | Baker's public key used to check whether they won the lottery or not. |
|
signature_key | BakerSignatureVerifyKey | Baker's public key used to check that they are indeed the ones who produced the block. |
|
aggregation_key | BakerAggregationVerifyKey | Baker's public key used to check signatures on finalization records. This is only used if the baker has sufficient stake to participate in finalization. |
Result of a successful change of baker keys.
Field | Type | Label | Description |
baker_id | BakerId | ID of the baker whose keys were changed. |
|
account | AccountAddress | Account address of the baker. |
|
sign_key | BakerSignatureVerifyKey | The new public key for verifying block signatures. |
|
election_key | BakerElectionVerifyKey | The new public key for verifying whether the baker won the block lottery. |
|
aggregation_key | BakerAggregationVerifyKey | The new public key for verifying finalization records. |
Additional information about a baking pool.
This information is added with the introduction of delegation.
Field | Type | Label | Description |
open_status | OpenStatus | Whether the pool allows delegators. |
|
url | string | The URL that links to the metadata about the pool. |
|
commission_rates | CommissionRates | The commission rates charged by the pool owner. |
Information about a particular baker with respect to
the current reward period.
Field | Type | Label | Description |
baker | BakerInfo | The baker id and public keys for the baker. |
|
effective_stake | Amount | The effective stake of the baker for the consensus protocol. The returned amount accounts for delegation, capital bounds and leverage bounds. |
|
commission_rates | CommissionRates | The effective commission rate for the baker that applies for the reward period. |
|
equity_capital | Amount | The amount staked by the baker itself. |
|
delegated_capital | Amount | The total amount of capital delegated to this baker pool. |
|
is_finalizer | bool | Whether the baker is a finalizer or not. |
Baker's public key used to check that they are indeed the ones who
produced the block.
Field | Type | Label | Description |
value | bytes |
|
Minimum stake needed to become a baker. This only applies to protocol version
1-3.
Field | Type | Label | Description |
baker_stake_threshold | Amount | Minimum threshold required for registering as a baker. |
Field | Type | Label | Description |
baker_id | BakerId | Affected baker. |
|
new_stake | Amount | New stake. |
|
increased | bool | A boolean which indicates whether it increased (`true`) or decreased (`false`). |
A banned peer
Field | Type | Label | Description |
ip_address | IpAddress | The IP address of the banned peer. |
The banned peers given by
their IP addresses.
Field | Type | Label | Description |
peers | BannedPeer | repeated |
|
Certificates for a block for protocols supporting
ConcordiumBFT.
Field | Type | Label | Description |
quorum_certificate | QuorumCertificate | optional | The quorum certificate. Is present if and only if the block is not a genesis block. |
timeout_certificate | TimeoutCertificate | optional | The timeout certificate. Is present only if the round prior to the round of the block timed out. |
epoch_finalization_entry | EpochFinalizationEntry | optional | The epoch finalization entry. Is present only if the block initiates a new epoch. |
Finalization summary that may or may not be part of the block.
Field | Type | Label | Description |
none | Empty | There is no finalization data in the block. |
|
record | FinalizationSummary | There is a single finalization record with the block. |
Hash of a block. This is always 32 bytes long.
Field | Type | Label | Description |
value | bytes |
|
Input to queries which take a block as a parameter.
Field | Type | Label | Description |
best | Empty | Query for the best block. |
|
last_final | Empty | Query for the last finalized block. |
|
given | BlockHash | Query for the block specified by the hash. This hash should always be 32 bytes. |
|
absolute_height | AbsoluteBlockHeight | Query for a block at absolute height, if a unique block can be identified at that height. |
|
relative_height | BlockHashInput.RelativeHeight | Query for a block at height relative to a genesis index. |
Request using a relative block height.
Field | Type | Label | Description |
genesis_index | GenesisIndex | Genesis index to start from. |
|
height | BlockHeight | Height starting from the genesis block at the genesis index. |
|
restrict | bool | Whether to return results only from the specified genesis index (`true`), or allow results from more recent genesis indices as well (`false`). |
The height of a block relative to the last genesis. This differs from the
absolute block height in that it counts height from the last protocol update.
Field | Type | Label | Description |
value | uint64 |
|
The response for GetBlockInfo.
Field | Type | Label | Description |
hash | BlockHash | Hash of the block. |
|
height | AbsoluteBlockHeight | Absolute height of the block, height 0 is the genesis block. |
|
parent_block | BlockHash | The parent block hash. For a re-genesis block, this will be the terminal block of the previous chain. For the initial genesis block, this will be the hash of the block itself. |
|
last_finalized_block | BlockHash | The last finalized block when this block was baked. |
|
genesis_index | GenesisIndex | The genesis index for this block. This counts the number of protocol updates that have preceded this block, and defines the era of the block. |
|
era_block_height | BlockHeight | The height of this block relative to the (re)genesis block of its era. |
|
receive_time | Timestamp | The time the block was received. |
|
arrive_time | Timestamp | The time the block was verified. |
|
slot_number | Slot | optional | The slot number in which the block was baked. Present in protocol versions 1-5. |
slot_time | Timestamp | The time of the slot in which the block was baked. |
|
baker | BakerId | optional | The baker id of account baking this block. Not provided for a genesis block. |
finalized | bool | Whether the block is finalized. |
|
transaction_count | uint32 | The number of transactions in the block. |
|
transactions_energy_cost | Energy | The energy cost of the transactions in the block. |
|
transactions_size | uint32 | The total byte size of all transactions in the block. |
|
state_hash | StateHash | The hash of the block state after this block. |
|
protocol_version | ProtocolVersion | Protocol version to which the block belongs. |
|
round | Round | optional | Block round. Present from protocol version 6. |
epoch | Epoch | optional | Block epoch. Present from protocol version 6. |
Field | Type | Label | Description |
hash | TransactionHash | The hash of the block item that identifies it to the chain. |
|
account_transaction | AccountTransaction | Account transactions are messages which are signed and paid for by an account. |
|
credential_deployment | CredentialDeployment | Credential deployments create new accounts. They are not paid for directly by the sender. Instead, bakers are rewarded by the protocol for including them. |
|
update_instruction | UpdateInstruction | Update instructions are messages which can update the chain parameters. Including which keys are allowed to make future update instructions. |
Status of a block item known to the node.
Field | Type | Label | Description |
received | Empty | Block item is received, but not yet in any blocks. |
|
committed | BlockItemStatus.Committed | Block item is committed to one or more blocks. The outcomes are listed for each block. Note that in the vast majority of cases the outcome of a transaction should not be dependent on the block it is in, but this can in principle happen. |
|
finalized | BlockItemStatus.Finalized | Block item is finalized in the given block, with the given summary. |
Field | Type | Label | Description |
outcomes | BlockItemSummaryInBlock | repeated |
|
Field | Type | Label | Description |
outcome | BlockItemSummaryInBlock |
|
Summary of the outcome of a block item in structured form.
The summary determines which transaction type it was.
Field | Type | Label | Description |
index | BlockItemSummary.TransactionIndex | Index of the transaction in the block where it is included. |
|
energy_cost | Energy | The amount of NRG the transaction cost. |
|
hash | TransactionHash | Hash of the transaction. |
|
account_transaction | AccountTransactionDetails | Details about an account transaction. |
|
account_creation | AccountCreationDetails | Details about an account creation. |
|
update | UpdateDetails | Details about a chain update. |
Field | Type | Label | Description |
value | uint64 |
|
A block item summary together with a block hash. Used in BlockItemStatus.
Field | Type | Label | Description |
block_hash | BlockHash | The block hash. |
|
outcome | BlockItemSummary | The block item summary. |
A protocol generated event that is not directly caused by a transaction. This
includes minting new CCD, rewarding different bakers and delegators, etc.
Field | Type | Label | Description |
baking_rewards | BlockSpecialEvent.BakingRewards |
|
|
mint | BlockSpecialEvent.Mint |
|
|
finalization_rewards | BlockSpecialEvent.FinalizationRewards |
|
|
block_reward | BlockSpecialEvent.BlockReward |
|
|
payday_foundation_reward | BlockSpecialEvent.PaydayFoundationReward |
|
|
payday_account_reward | BlockSpecialEvent.PaydayAccountReward |
|
|
block_accrue_reward | BlockSpecialEvent.BlockAccrueReward |
|
|
payday_pool_reward | BlockSpecialEvent.PaydayPoolReward |
|
A representation of a mapping from an account address to an amount.
Field | Type | Label | Description |
entries | BlockSpecialEvent.AccountAmounts.Entry | repeated |
|
The entry for the map.
Field | Type | Label | Description |
account | AccountAddress | The key type |
|
amount | Amount | The value type |
Payment to each baker of a previous epoch, in proportion to the number
of blocks they contributed.
Field | Type | Label | Description |
baker_rewards | BlockSpecialEvent.AccountAmounts | The amount awarded to each baker. |
|
remainder | Amount | The remaining balance of the baker reward account. |
Amounts accrued to accounts for each baked block.
Field | Type | Label | Description |
transaction_fees | Amount | The total fees paid for transactions in the block. |
|
old_gas_account | Amount | The old balance of the GAS account. |
|
new_gas_account | Amount | The new balance of the GAS account. |
|
baker_reward | Amount | The amount awarded to the baker. |
|
passive_reward | Amount | The amount awarded to the passive delegators. |
|
foundation_charge | Amount | The amount awarded to the foundation. |
|
baker | BakerId | The baker of the block, who will receive the award. |
Disbursement of fees from a block between the GAS account,
the baker, and the foundation. It should always be that:
```transaction_fees + old_gas_account = new_gas_account + baker_reward + foundation_charge```
Field | Type | Label | Description |
transaction_fees | Amount | The total fees paid for transactions in the block. |
|
old_gas_account | Amount | The old balance of the GAS account. |
|
new_gas_account | Amount | The new balance of the GAS account. |
|
baker_reward | Amount | The amount awarded to the baker. |
|
foundation_charge | Amount | The amount awarded to the foundation. |
|
baker | AccountAddress | The baker of the block, who receives the award. |
|
foundation_account | AccountAddress | The foundation account. |
Payment to each finalizer on inclusion of a finalization record in a block.
Field | Type | Label | Description |
finalization_rewards | BlockSpecialEvent.AccountAmounts | The amount awarded to each finalizer. |
|
remainder | Amount | The remaining balance of the finalization reward account. |
Minting of new CCD.
Field | Type | Label | Description |
mint_baking_reward | Amount | The amount allocated to the banking reward account. |
|
mint_finalization_reward | Amount | The amount allocated to the finalization reward account. |
|
mint_platform_development_charge | Amount | The amount allocated as the platform development charge. |
|
foundation_account | AccountAddress | The account to which the platform development charge is paid. |
Reward payment to the given account.
Field | Type | Label | Description |
account | AccountAddress | The account that got rewarded. |
|
transaction_fees | Amount | The transaction fee reward at payday to the account. |
|
baker_reward | Amount | The baking reward at payday to the account. |
|
finalization_reward | Amount | The finalization reward at payday to the account. |
Foundation tax.
Field | Type | Label | Description |
foundation_account | AccountAddress | The account that got rewarded. |
|
development_charge | Amount | The transaction fee reward at payday to the account. |
Payment distributed to a pool or passive delegators.
Field | Type | Label | Description |
pool_owner | BakerId | optional | The pool owner (passive delegators when not present). |
transaction_fees | Amount | Accrued transaction fees for pool. |
|
baker_reward | Amount | Accrued baking rewards for pool. |
|
finalization_reward | Amount | Accrued finalization rewards for pool. |
Request for GetBlocksAtHeight.
Field | Type | Label | Description |
absolute | BlocksAtHeightRequest.Absolute |
|
|
relative | BlocksAtHeightRequest.Relative |
|
Request using an absolute block height.
Field | Type | Label | Description |
height | AbsoluteBlockHeight | The absolute block height. |
Request using a relative block height.
Field | Type | Label | Description |
genesis_index | GenesisIndex | Genesis index to start from. |
|
height | BlockHeight | Height starting from the genesis block at the genesis index. |
|
restrict | bool | Whether to return results only from the specified genesis index (`true`), or allow results from more recent genesis indices as well (`false`). |
Response for GetBlocksAtHeight.
Field | Type | Label | Description |
blocks | BlockHash | repeated | Live blocks at the given height. |
Response type for GetBranches.
Field | Type | Label | Description |
block_hash | BlockHash | The hash of the block. |
|
children | Branch | repeated | Further blocks branching of this block. |
A bound on the relative share of the total staked capital that a baker can
have as its stake. This is required to be greater than 0.
Field | Type | Label | Description |
value | AmountFraction |
|
Data relating to a single anonymity revoker sent by the account holder to
the chain.
Field | Type | Label | Description |
enc_id_cred_pub_share | bytes | Share of the encryption of IdCredPub. |
Chain parameters.
Field | Type | Label | Description |
v0 | ChainParametersV0 | Chain parameters that apply when the block is a protocol version 1-3 block. |
|
v1 | ChainParametersV1 | Chain parameters that apply when the block is a protocol version 4-5 block. |
|
v2 | ChainParametersV2 | Chain parameters that apply when the block is a protocol version 6- block. |
Updatable chain parameters that apply to protocol versions 1-3.
Field | Type | Label | Description |
election_difficulty | ElectionDifficulty | Election difficulty for consensus lottery. |
|
euro_per_energy | ExchangeRate | Euro per energy exchange rate. |
|
micro_ccd_per_euro | ExchangeRate | Micro CCD per euro exchange rate. |
|
baker_cooldown_epochs | Epoch | Extra number of epochs before reduction in stake, or baker deregistration is completed. |
|
account_creation_limit | CredentialsPerBlockLimit | The limit for the number of account creations in a block. |
|
mint_distribution | MintDistributionCpv0 | Current mint distribution |
|
transaction_fee_distribution | TransactionFeeDistribution | Current transaction fee distribution. |
|
gas_rewards | GasRewards | Current gas reward parameters. |
|
foundation_account | AccountAddress | The foundation account. |
|
minimum_threshold_for_baking | Amount | Minimum threshold for becoming a baker. |
|
root_keys | HigherLevelKeys | Keys allowed to do root updates. |
|
level1_keys | HigherLevelKeys | Keys allowed to do level1 updates; |
|
level2_keys | AuthorizationsV0 | Keys allowed to do parameter updates. |
Updatable chain parameters that apply to protocol versions 4-5.
Field | Type | Label | Description |
election_difficulty | ElectionDifficulty | Election difficulty for consensus lottery. |
|
euro_per_energy | ExchangeRate | Euro per energy exchange rate. |
|
micro_ccd_per_euro | ExchangeRate | Micro CCD per euro exchange rate. |
|
cooldown_parameters | CooldownParametersCpv1 | Extra number of epochs before reduction in stake, or baker deregistration is completed. |
|
time_parameters | TimeParametersCpv1 | Current time parameters. The time parameters indicates the mint rate and the reward period length, i.e. the time between paydays. |
|
account_creation_limit | CredentialsPerBlockLimit | The limit for the number of account creations in a block. |
|
mint_distribution | MintDistributionCpv1 | Current mint distribution |
|
transaction_fee_distribution | TransactionFeeDistribution | Current transaction fee distribution. |
|
gas_rewards | GasRewards | Current gas reward parameters. |
|
foundation_account | AccountAddress | The foundation account. |
|
pool_parameters | PoolParametersCpv1 | Parameters governing baking pools and their commissions. |
|
root_keys | HigherLevelKeys | Keys allowed to do root updates. |
|
level1_keys | HigherLevelKeys | Keys allowed to do level1 updates; |
|
level2_keys | AuthorizationsV1 | Keys allowed to do parameter updates. |
Updatable chain parameters that apply to protocol versions 6.
Field | Type | Label | Description |
consensus_parameters | ConsensusParametersV1 | Consensus parameters. |
|
euro_per_energy | ExchangeRate | Euro per energy exchange rate. |
|
micro_ccd_per_euro | ExchangeRate | Micro CCD per euro exchange rate. |
|
cooldown_parameters | CooldownParametersCpv1 | Extra number of epochs before reduction in stake, or baker deregistration is completed. |
|
time_parameters | TimeParametersCpv1 | Current time parameters. The time parameters indicates the mint rate and the reward period length, i.e. the time between paydays. |
|
account_creation_limit | CredentialsPerBlockLimit | The limit for the number of account creations in a block. |
|
mint_distribution | MintDistributionCpv1 | Current mint distribution |
|
transaction_fee_distribution | TransactionFeeDistribution | Current transaction fee distribution. |
|
gas_rewards | GasRewardsCpv2 | Current gas reward parameters. |
|
foundation_account | AccountAddress | The foundation account. |
|
pool_parameters | PoolParametersCpv1 | Parameters governing baking pools and their commissions. |
|
root_keys | HigherLevelKeys | Keys allowed to do root updates. |
|
level1_keys | HigherLevelKeys | Keys allowed to do level1 updates; |
|
level2_keys | AuthorizationsV1 | Keys allowed to do parameter updates. |
|
finalization_committee_parameters | FinalizationCommitteeParameters | Finalization committee parameters |
Ranges of allowed commission values that pools may choose from.
Field | Type | Label | Description |
finalization | InclusiveRangeAmountFraction | The range of allowed finalization commissions. |
|
baking | InclusiveRangeAmountFraction | The range of allowed baker commissions. |
|
transaction | InclusiveRangeAmountFraction | The range of allowed transaction commissions. |
Distribution of the rewards for the particular pool.
Field | Type | Label | Description |
finalization | AmountFraction | Fraction of finalization rewards charged by the pool owner. |
|
baking | AmountFraction | Fraction of baking rewards charged by the pool owner. |
|
transaction | AmountFraction | Fraction of transaction rewards charged by the pool owner. |
A single commitment in the G1 group of the BLS curve. This is always 48 bytes
in length.
Field | Type | Label | Description |
value | bytes |
|
The response for GetConsensusInfo.
Field | Type | Label | Description |
best_block | BlockHash | Hash of the current best block. |
|
genesis_block | BlockHash | Hash of the (original) genesis block. |
|
genesis_time | Timestamp | Time of the (original) genesis block. |
|
slot_duration | Duration | optional | (Current) slot duration in milliseconds. Present only in protocol versions 1-5. |
epoch_duration | Duration | (Current) epoch duration in milliseconds. |
|
last_finalized_block | BlockHash | Hash of the last finalized block. |
|
best_block_height | AbsoluteBlockHeight | Absolute height of the best block. |
|
last_finalized_block_height | AbsoluteBlockHeight | Absolute height of the last finalized block. |
|
blocks_received_count | uint32 | Total number of blocks received. |
|
block_last_received_time | Timestamp | optional | The last time a block was received. |
block_receive_latency_ema | double | Exponential moving average latency between a block's slot time and received time. |
|
block_receive_latency_emsd | double | Standard deviation of exponential moving average latency between a block's slot time and received time. |
|
block_receive_period_ema | double | optional | Exponential moving average time between receiving blocks. |
block_receive_period_emsd | double | optional | Standard deviation of exponential moving average time between receiving blocks. |
blocks_verified_count | uint32 | Total number of blocks received and verified. |
|
block_last_arrived_time | Timestamp | optional | The last time a block was verified (added to the tree). |
block_arrive_latency_ema | double | Exponential moving average latency between a block's slot time and its arrival. |
|
block_arrive_latency_emsd | double | Standard deviation of exponential moving average latency between a block's slot time and its arrival. |
|
block_arrive_period_ema | double | optional | Exponential moving average time between block arrivals. |
block_arrive_period_emsd | double | optional | Standard deviation of exponential moving average time between block arrivals. |
transactions_per_block_ema | double | Exponential moving average number of transactions per block. |
|
transactions_per_block_emsd | double | Standard deviation of exponential moving average number of transactions per block. |
|
finalization_count | uint32 | Number of finalizations. |
|
last_finalized_time | Timestamp | optional | Time of last verified finalization. |
finalization_period_ema | double | optional | Exponential moving average time between finalizations. |
finalization_period_emsd | double | optional | Standard deviation of exponential moving average time between finalizations. |
protocol_version | ProtocolVersion | Currently active protocol version. |
|
genesis_index | GenesisIndex | The number of chain restarts via a protocol update. A completed protocol update instruction might not change the protocol version specified in the previous field, but it always increments the genesis index. |
|
current_era_genesis_block | BlockHash | Block hash of the genesis block of current era, i.e., since the last protocol update. Initially this is equal to 'genesis_block'. |
|
current_era_genesis_time | Timestamp | Time when the current era started. |
|
current_timeout_duration | Duration | optional | The current duration to wait before a round times out. Present from protocol version 6. |
current_round | Round | optional | The current round. Present from protocol version 6. |
current_epoch | Epoch | optional | The current epoch. Present from protocol version 6. |
trigger_block_time | Timestamp | optional | The first block in the epoch with timestamp at least this is considered to be the trigger block for the epoch transition. Present from protocol version 6. |
Parameters for the consensus protocol used from protocol version 6.
Field | Type | Label | Description |
timeout_parameters | TimeoutParameters | Parameters controlling round timeouts. |
|
min_block_time | Duration | Minimum time interval between blocks. |
|
block_energy_limit | Energy | Maximum energy allowed per block. |
Address of a smart contract instance.
Field | Type | Label | Description |
index | uint64 | The index of the smart contract. |
|
subindex | uint64 | The subindex of the smart contract instance. Currently not used, so it is always 0. |
An event generated by a smart contract.
Field | Type | Label | Description |
value | bytes |
|
Data generated as part of initializing a single contract instance.
Field | Type | Label | Description |
contract_version | ContractVersion | Contract version. |
|
origin_ref | ModuleRef | Module with the source code of the contract. |
|
address | ContractAddress | The newly assigned address of the contract. |
|
amount | Amount | The amount the instance was initialized with. |
|
init_name | InitName | The name of the contract. |
|
events | ContractEvent | repeated | Any contract events that might have been genereated by the contract initialization. |
A smart contract v0 state.
Field | Type | Label | Description |
value | bytes |
|
Effects produced by successful smart contract invocations.
A single invocation will produce a sequence of these effects.
Field | Type | Label | Description |
updated | InstanceUpdatedEvent | A contract instance was updated. |
|
transferred | ContractTraceElement.Transferred | A contract transferred an amount to an account. |
|
interrupted | ContractTraceElement.Interrupted | A contract was interrupted. This occurs when a contract invokes another contract or makes a transfer to an account. |
|
resumed | ContractTraceElement.Resumed | A previously interrupted contract was resumed. |
|
upgraded | ContractTraceElement.Upgraded | A contract was upgraded. |
A contract was interrupted.
This occurs when a contract invokes another contract or makes a transfer to an account.
Field | Type | Label | Description |
address | ContractAddress | The contract interrupted. |
|
events | ContractEvent | repeated | The events generated up until the interruption. |
A previously interrupted contract was resumed.
Field | Type | Label | Description |
address | ContractAddress | The contract resumed. |
|
success | bool | Whether the action that caused the interruption (invoke contract or make transfer) was successful or not. |
A contract transferred an amount to an account.
Field | Type | Label | Description |
sender | ContractAddress | Sender contract. |
|
amount | Amount | Amount transferred. |
|
receiver | AccountAddress | Receiver account. |
A previously interrupted contract was resumed.
Field | Type | Label | Description |
address | ContractAddress | The that was upgraded. |
|
from | ModuleRef | The module from which the contract was upgraded. |
|
to | ModuleRef | The module to which it was upgraded. |
Field | Type | Label | Description |
pool_owner_cooldown | DurationSeconds | Number of seconds that pool owners must cooldown when reducing their equity capital or closing the pool. |
|
delegator_cooldown | DurationSeconds | Number of seconds that a delegator must cooldown when reducing their delegated stake. |
Commitments that are part of a normal credential.
Field | Type | Label | Description |
prf | Commitment | Commitment to the PRF key. |
|
cred_counter | Commitment | Commitment to the counter used to generate the credential registration id. |
|
max_accounts | Commitment | Commitment to the `max_accounts` value, which determines the maximum number of credentials that may be created from the identity object. |
|
attributes | CredentialCommitments.AttributesEntry | repeated | Commitments to the attributes which have not been revealed in the policy. |
id_cred_sec_sharing_coeff | Commitment | repeated | List of commitments to the coefficients of the sharing polynomial. This polynomial is used in a shared encryption of `id_cred_pub` among the anonymity revokers. |
Field | Type | Label | Description |
key | uint32 |
|
|
value | Commitment |
|
Credential deployments create new accounts. They are not paid for
directly by the sender. Instead, bakers are rewarded by the protocol for
including them.
Field | Type | Label | Description |
message_expiry | TransactionTime |
|
|
raw_payload | bytes | A raw payload, which is just the encoded payload. A typed variant might be added in the future. |
Index of a credential on an account.
Field | Type | Label | Description |
value | uint32 |
|
Public keys of a single credential.
Field | Type | Label | Description |
keys | CredentialPublicKeys.KeysEntry | repeated |
|
threshold | SignatureThreshold |
|
Field | Type | Label | Description |
key | uint32 |
|
|
value | AccountVerifyKey |
|
A registration ID of a credential, derived from the secret PRF key and a
nonce. This is always 48 bytes long.
Field | Type | Label | Description |
value | bytes |
|
The number of credential deployments allowed in a block. This in effect
determines the number of accounts that can be created in a block.
Field | Type | Label | Description |
value | uint32 |
|
The response for GetCryptographicParameters.
Field | Type | Label | Description |
genesis_string | string | A free-form string used to distinguish between different chains even if they share other parameters. |
|
bulletproof_generators | bytes | Generators for the bulletproofs. It is a serialized list of 256 group elements in the G1 group of the BLS12-381 curve. |
|
on_chain_commitment_key | bytes | A shared commitment key known to the chain and the account holder (and therefore it is public). The account holder uses this commitment key to generate commitments to values in the attribute list. It is a serialized pair of group elements in the G1 group of the BLS12-381 curve. |
Field | Type | Label | Description |
delegation_stake_increased | DelegationEvent.DelegationStakeIncreased | The delegator's stake increased. |
|
delegation_stake_decreased | DelegationEvent.DelegationStakeDecreased | The delegator's stake decreased. |
|
delegation_set_restake_earnings | DelegationEvent.DelegationSetRestakeEarnings | The delegator's restaking setting was updated. |
|
delegation_set_delegation_target | DelegationEvent.DelegationSetDelegationTarget | The delegator's delegation target was updated. |
|
delegation_added | DelegatorId | A delegator was added. |
|
delegation_removed | DelegatorId | A delegator was removed. |
Field | Type | Label | Description |
delegator_id | DelegatorId | Delegator's id |
|
delegation_target | DelegationTarget | New delegation target |
Field | Type | Label | Description |
delegator_id | DelegatorId | Delegator's id |
|
restake_earnings | bool | Whether earnings will be restaked |
Field | Type | Label | Description |
delegator_id | DelegatorId | Delegator's id |
|
new_stake | Amount | New stake |
Field | Type | Label | Description |
delegator_id | DelegatorId | Delegator's id |
|
new_stake | Amount | New stake |
Entity to which the account delegates a portion of its stake.
Field | Type | Label | Description |
passive | Empty | Delegate passively, i.e., to no specific baker. |
|
baker | BakerId | Delegate to a specific baker. |
The identifier for a delegator.
Field | Type | Label | Description |
id | AccountIndex |
|
Stream item for GetPoolDelegators and GetPassiveDelegators.
Field | Type | Label | Description |
account | AccountAddress | The delegator account address. |
|
stake | Amount | The amount of stake currently staked to the pool. |
|
pending_change | StakePendingChange | optional | Pending change to the current stake of the delegator. |
Stream item for GetPoolDelegatorsRewardPeriod and GetPassiveDelegatorsRewardPeriod.
Field | Type | Label | Description |
account | AccountAddress | The delegator account address. |
|
stake | Amount | The amount of stake currently staked to the pool. |
Description either of an anonymity revoker or identity provider.
Metadata that should be visible on the chain.
Field | Type | Label | Description |
name | string | The name. |
|
url | string | A link to more information about the anonymity revoker or identity provider. |
|
description | string | A free form description of the revoker or provider. |
Field | Type | Label | Description |
no_state | DryRunErrorResponse.NoState | The current block state is undefined. It should be initialized with a 'load_block_state' request before any other operations. |
|
block_not_found | DryRunErrorResponse.BlockNotFound | The requested block was not found, so its state could not be loaded. Response to 'load_block_state'. |
|
account_not_found | DryRunErrorResponse.AccountNotFound | The specified account was not found. Response to 'get_account_info', 'mint_to_account' and 'run_transaction'. |
|
instance_not_found | DryRunErrorResponse.InstanceNotFound | The specified instance was not found. Response to 'get_instance_info'. |
|
amount_over_limit | DryRunErrorResponse.AmountOverLimit | The amount to mint would overflow the total CCD supply. Response to 'mint_to_account'. |
|
balance_insufficient | DryRunErrorResponse.BalanceInsufficient | The balance of the sender account is not sufficient to pay for the operation. Response to 'run_transaction'. |
|
energy_insufficient | DryRunErrorResponse.EnergyInsufficient | The energy supplied for the transaction was not sufficient to perform the basic checks. Response to 'run_transaction'. |
|
invoke_failed | DryRunErrorResponse.InvokeFailure | The contract invocation failed. Response to 'invoke_instance'. |
The specified account was not found.
The amount that was requested to be minted would overflow the total supply.
Field | Type | Label | Description |
amount_limit | Amount | The maximum amount that can be minted without overflowing the supply. |
The sender account for the transaction has insufficient balance to pay the preliminary fees
for the transaction to be included in a block.
Field | Type | Label | Description |
required_amount | Amount | The minimum balance required to perform the operation. |
|
available_amount | Amount | The currently-available balance on the account to pay for the operation. |
The requested block was not found, so its state could not be loaded.
The energy made available for the transaction is insufficient to cover the basic processing
required to include a transaction in a block.
Field | Type | Label | Description |
energy_required | Energy | The minimum energy required for the transaction to be included in the chain. Note that, even if the energy supplied for the transaction is enough to prevent a `EnergyInsufficient`, the transaction can still be rejected for having insufficient energy. In that case, a `TransactionExecuted` response will be produced, but indicate the transaction was rejected. |
The specified instance was not found.
Invoking the smart contract instance failed.
Field | Type | Label | Description |
return_value | bytes | optional | If invoking a V0 contract this is not provided, otherwise it is potentially return value produced by the call unless the call failed with out of energy or runtime error. If the V1 contract terminated with a logic error then the return value is present. |
used_energy | Energy | Energy used by the execution. |
|
reason | RejectReason | Contract execution failed for the given reason. |
The current block state is undefined. It should be initialized with
a 'load_block_state' request before any other operations.
Invoke an entrypoint on a smart contract instance.
Field | Type | Label | Description |
invoker | Address | optional | Invoker of the contract. If this is not supplied then the contract will be invoked by an account with address 0, no credentials and sufficient amount of CCD to cover the transfer amount. If given, the relevant address (either account or contract) must exist in the blockstate. |
instance | ContractAddress | Address of the contract instance to invoke. |
|
amount | Amount | Amount to invoke the smart contract instance with. |
|
entrypoint | ReceiveName | The entrypoint of the smart contract instance to invoke. |
|
parameter | Parameter | The parameter bytes to include in the invocation of the entrypoint. |
|
energy | Energy | The maximum energy to allow for the invocation. Note that the node imposes an energy quota that is enforced in addition to this limit. |
Mint a specified amount and credit it to the specified account as part of a dry run.
Field | Type | Label | Description |
account | AccountAddress | The account to mint to. |
|
amount | Amount | The amount to mint and credit to the account. |
An operation to dry run. The first operation in a dry-run sequence should be
`load_block_state`: any other operation will be met with `NoState` until a
state is successfully loaded.
Field | Type | Label | Description |
load_block_state | BlockHashInput | Load the state of the specified block to use for subsequent requests. The state is taken at the end of execution of the block, and the block’s timestamp is used as the current timestamp. The energy cost for this operation is 2000. |
|
state_query | DryRunStateQuery | Run a query on the state. |
|
state_operation | DryRunStateOperation | Run a (non-transaction) operation to modify the state. |
A response to a `DryRunRequest`.
Field | Type | Label | Description |
error | DryRunErrorResponse | The request produced an error. The request otherwise has no effect on the state. |
|
success | DryRunSuccessResponse | The request was successful. |
|
quota_remaining | Energy | The remaining available energy quota after the dry run operation. |
A dry run signature is a pair of a credential index and key index, identifying the credential
and key that is presumed to have signed the transaction. No actual cryptographic signature is
included.
Field | Type | Label | Description |
credential | uint32 | Credential index. Must not exceed 255. |
|
key | uint32 | Key index. Must not exceed 255. |
An operation that can update the state as part of a dry run.
Field | Type | Label | Description |
set_timestamp | Timestamp | Sets the current block time to the given timestamp for the purposes of future transactions. The energy cost of this operation is 50. |
|
mint_to_account | DryRunMintToAccount | Add a specified amount of newly-minted CCDs to a specified account. The amount cannot cause the total circulating supply to overflow. The energy cost of this operation is 400. |
|
run_transaction | DryRunTransaction | Dry run a transaction, updating the state if it succeeds. The energy cost of this operation is 400 plus the energy used by executing the transaction. |
Run a query as part of a dry run. Queries do not update the block state.
Field | Type | Label | Description |
get_account_info | AccountIdentifierInput | Look up information on a particular account. The energy cost for this query is 200. |
|
get_instance_info | ContractAddress | Look up information about a particular smart contract. The energy cost for this query is 200. |
|
invoke_instance | DryRunInvokeInstance | Invoke an entrypoint on a smart contract instance. No changes made to the state are retained at the completion of the operation. The energy cost for this query is 200 plus the energy used by the smart contract execution. |
The dry run operation completed successfully.
Field | Type | Label | Description |
block_state_loaded | DryRunSuccessResponse.BlockStateLoaded | The state from the specified block was successfully loaded. Response to 'load_block_state'. |
|
account_info | AccountInfo | Details of the requested account. Response to 'get_account_info'. |
|
instance_info | InstanceInfo | Details of the requested smart contract instance. Response to 'get_instance_info'. |
|
invoke_succeeded | DryRunSuccessResponse.InvokeSuccess | The smart contract instance was invoked successfully. |
|
timestamp_set | DryRunSuccessResponse.TimestampSet | The current timestamp was set successfully. Response to 'set_timestamp'. |
|
minted_to_account | DryRunSuccessResponse.MintedToAccount | The specified amount was minted and credited to the account. Response to 'mint_to_account'. |
|
transaction_executed | DryRunSuccessResponse.TransactionExecuted | The specified transaction was executed. Note that the transaction could still have been rejected. Response to 'run_transaction'. |
The block state at the specified block was successfully loaded.
Field | Type | Label | Description |
current_timestamp | Timestamp | The timestamp of the block, taken to be the current timestamp. |
|
block_hash | BlockHash | The hash of the block that was loaded. |
|
protocol_version | ProtocolVersion | The protocol version at the specified block. The behavior of operations can vary across protocol versions. |
The smart contract instance was invoked successfully.
Field | Type | Label | Description |
return_value | bytes | optional | If invoking a V0 contract this is absent. Otherwise it is the return value produced by the contract. |
used_energy | Energy | Energy used by the execution. |
|
effects | ContractTraceElement | repeated | Effects produced by contract execution. |
The specified amount was minted to the specified account.
The current apparent timestamp was updated to the specified value.
The transaction was executed.
Field | Type | Label | Description |
energy_cost | Energy | The amount of energy actually expended in executing the transaction. |
|
details | AccountTransactionDetails | The details of the outcome of the transaction. |
|
return_value | bytes | optional | If this is an invocation of a V1 contract that produced a return value, this is that value. Otherwise it is absent. |
Dry run an account transaction
Field | Type | Label | Description |
sender | AccountAddress | The account to use as the sender of the transaction. |
|
energy_amount | Energy | The energy limit set for executing the transaction. |
|
payload | AccountTransactionPayload | The payload of the transaction. |
|
signatures | DryRunSignature | repeated | Which credentials and keys should be treated as having signed the transaction. If none is given, then the transaction is treated as having one signature for credential 0, key 0. Therefore, this is only required when the transaction is from a multi-signature account. There are two reasons why you might want to specify signatures: * The cost of the transaction depends on the number of signatures, so if you want to get the correct cost for a multi-signature transaction, then specifying the signatures supports this. * When changing account keys on a multi-credential account, the transaction must be signed by the credential whose keys are being changed. Note that the signature thresholds are not checked as part of the dry run. Duplicated signatures are only counted once. |
Request to enable dumping of network packages.
Field | Type | Label | Description |
file | string | Which file to dump the packages into. Requires a valid path. |
|
raw | bool | Whether the node should dump raw packages. |
A duration of milliseconds.
Field | Type | Label | Description |
value | uint64 |
|
A duration in seconds.
Field | Type | Label | Description |
value | uint64 |
|
Election difficulty parameter.
Field | Type | Label | Description |
value | AmountFraction |
|
Response type for GetElectionInfo.
Contains information related to baker election for a perticular block.
Field | Type | Label | Description |
election_difficulty | ElectionDifficulty | optional | Baking lottery election difficulty. Present only in protocol versions 1-5. |
election_nonce | LeadershipElectionNonce | Current leadership election nonce for the lottery. |
|
baker_election_info | ElectionInfo.Baker | repeated | List of the currently eligible bakers. |
Field | Type | Label | Description |
baker | BakerId | The ID of the baker. |
|
account | AccountAddress | The account address of the baker. |
|
lottery_power | double | The lottery power of the baker, rounded to the nearest representable "double". |
A message that contains no information.
An encrypted amount, in two chunks in "little endian limbs". That is, the
first chunk represents the low 32 bits of an amount, and the second chunk
represents the high 32 bits. The chunks are serialized in order and
represented as a byte array.
Always 192 bytes.
Field | Type | Label | Description |
value | bytes |
|
Event generated when one or more encrypted amounts are consumed from the account.
Field | Type | Label | Description |
account | AccountAddress | The affected account. |
|
new_amount | EncryptedAmount | The new self encrypted amount on the affected account. |
|
input_amount | EncryptedAmount | The input encrypted amount that was removed. |
|
up_to_index | uint64 | The index indicating which amounts were used. |
Field | Type | Label | Description |
self_amount | EncryptedAmount | Encrypted amount that is a result of this account's actions. In particular this list includes the aggregate of - remaining amounts that result when transferring to public balance - remaining amounts when transferring to another account - encrypted amounts that are transferred from public balance When a transfer is made all of these must always be used. |
|
start_index | uint64 | Starting index for incoming encrypted amounts. If an aggregated amount is present then this index is associated with such an amount and the list of incoming encrypted amounts starts at the index `start_index + 1`. |
|
aggregated_amount | EncryptedAmount | optional | If present, the amount that has resulted from aggregating other amounts If this field is present so is `num_aggregated`. |
num_aggregated | uint32 | optional | The number of aggregated amounts (must be at least 2 if present). This field is present if and only if `aggregated_amount` is present. |
incoming_amounts | EncryptedAmount | repeated | Amounts starting at `start_index` (or at `start_index + 1` if there is an aggregated amount present). They are assumed to be numbered sequentially. The length of this list is bounded by the maximum number of incoming amounts on the accounts, which is currently 32. After that aggregation kicks in. |
Field | Type | Label | Description |
account | AccountAddress | The affected account. |
|
new_amount | EncryptedAmount | The new self encrypted amount of the account. |
|
amount | Amount | The amount that was transferred from public to encrypted balance. |
An account encryption key. Always 96 bytes.
Field | Type | Label | Description |
value | bytes |
|
Energy is used to count exact execution cost.
This cost is then converted to CCD amounts.
Field | Type | Label | Description |
value | uint64 |
|
A chain epoch.
Field | Type | Label | Description |
value | uint64 |
|
The epoch finalization entry is the proof that
makes the protocol able to advance to a new epoch.
I.e. the 'EpochFinalizationEntry' is present if and only if
the block is the first block of a new 'Epoch'.
Field | Type | Label | Description |
finalized_qc | QuorumCertificate | The quorum certificate for the finalized block. |
|
successor_qc | QuorumCertificate | The quorum certificate for the block that finalizes the block that 'finalized_qc' points to. |
|
successor_proof | SuccessorProof | A proof that the successor block is an immediate successor of the finalized block. |
Input to queries which take an epoch as a parameter.
Field | Type | Label | Description |
relative_epoch | EpochRequest.RelativeEpoch | Query by genesis index and epoch number. |
|
block_hash | BlockHashInput | Query for the epoch of a specified block. |
Request an epoch by number at a given genesis index.
Field | Type | Label | Description |
genesis_index | GenesisIndex | The genesis index to query at. The query is restricted to this genesis index, and will not return results for other indices even if the epoch number is out of bounds. |
|
epoch | Epoch | The epoch number to query at. |
Represents an exchange rate.
Field | Type | Label | Description |
value | Ratio |
|
Finalization committee parameters used from protocol version 6
Field | Type | Label | Description |
minimum_finalizers | uint32 | The minimum size of a finalization committee before `finalizer_relative_stake_threshold` takes effect. |
|
maximum_finalizers | uint32 | The maximum size of a finalization committee. |
|
finalizer_relative_stake_threshold | AmountFraction | The threshold for determining the stake required for being eligible the finalization committee. The amount is given by `total stake in pools * finalizer_relative_stake_threshold` |
Index of the finalization round. This increases on each successfully
completed finalization.
Field | Type | Label | Description |
value | uint64 |
|
Details about a finalization record included in a block.
Field | Type | Label | Description |
block | BlockHash | Block that was finalized by the finalization record. |
|
index | FinalizationIndex | Index of the finalization round that finalized the block. |
|
delay | BlockHeight | Finalization delay used for the finalization round. |
|
finalizers | FinalizationSummaryParty | repeated | List of all finalizers with information about whether they signed the finalization record or not. |
Details about a finalizer for the finalization round.
Field | Type | Label | Description |
baker | BakerId | Baker ID. Every finalizer is in particular a baker. |
|
weight | uint64 | The weight of the finalizer in the committee. This is an "absolute" weight. |
|
signed | bool | Whether the finalizer's signature was present on the particular finalization record. |
Information about a finalized block that is part of the streaming response.
Field | Type | Label | Description |
hash | BlockHash | Hash of the block. |
|
height | AbsoluteBlockHeight | Absolute height of the block, height 0 is the genesis block. |
The finalizer round is a map from a 'Round'
to the list of finalizers (identified by their 'BakerId') that signed
off the round.
Field | Type | Label | Description |
round | Round | The round that was signed off. |
|
finalizers | BakerId | repeated | The finalizers (identified by their 'BakerId' that signed off the in 'round'. |
Distribution of gas rewards for chain parameters version 0 and 1.
Field | Type | Label | Description |
baker | AmountFraction | The fraction paid to the baker. |
|
finalization_proof | AmountFraction | Fraction paid for including a finalization proof in a block. |
|
account_creation | AmountFraction | Fraction paid for including each account creation transaction in a block. |
|
chain_update | AmountFraction | Fraction paid for including an update transaction in a block. |
Distribution of gas rewards for chain parameters version 2.
Field | Type | Label | Description |
baker | AmountFraction | The fraction paid to the baker. |
|
account_creation | AmountFraction | Fraction paid for including each account creation transaction in a block. |
|
chain_update | AmountFraction | Fraction paid for including an update transaction in a block. |
The number of chain restarts via a protocol update. An effected
protocol update instruction might not change the protocol version
specified in the previous field, but it always increments the genesis
index.
Field | Type | Label | Description |
value | uint32 |
|
Request for GetPoolDelegators and GetPoolDelegatorsRewardPeriod.
Field | Type | Label | Description |
block_hash | BlockHashInput | Block in which to query the delegators. |
|
baker | BakerId | The 'BakerId' of the pool owner. |
Represents root or level 1 keys.
Field | Type | Label | Description |
keys | UpdatePublicKey | repeated | The keys. |
threshold | UpdateKeysThreshold | The number of keys needed to make a chain update. |
An index of the identity provider that identifies them uniquely in the
context of a specific chain.
Field | Type | Label | Description |
value | uint32 |
|
Inclusive range of amount fractions.
Field | Type | Label | Description |
min | AmountFraction |
|
|
max_ | AmountFraction |
|
Data required to initialize a new contract instance.
Field | Type | Label | Description |
amount | Amount | Amount of CCD to send to the instance. |
|
module_ref | ModuleRef | Reference to the module from which the instance will be created. |
|
init_name | InitName | Name of the contract to initialize. This is expected to be in the format `init_name`. |
|
parameter | Parameter | Parameter to call the `init` of the contract with. |
The init name of a smart contract function. Expected format:
`init_
or punctuation characters, must not contain a '.' and must start with
'init_'.
Field | Type | Label | Description |
value | string |
|
Values contained in an initial credential.
Field | Type | Label | Description |
keys | CredentialPublicKeys | Public keys of the credential. |
|
cred_id | CredentialRegistrationId | Its registration ID. |
|
ip_id | IdentityProviderIdentity | The identity provider who signed the identity object from which this credential is derived. |
|
policy | Policy | Policy of this credential. |
Information about a smart contract instance.
Field | Type | Label | Description |
v0 | InstanceInfo.V0 |
|
|
v1 | InstanceInfo.V1 |
|
Version 0 smart contract instance information.
Field | Type | Label | Description |
model | ContractStateV0 | The state of the instance. |
|
owner | AccountAddress | The account address which deployed the instance. |
|
amount | Amount | The amount of CCD tokens in the balance of the instance. |
|
methods | ReceiveName | repeated | A list of endpoints exposed by the instance. |
name | InitName | The name of the smart contract of the instance. |
|
source_module | ModuleRef | The module reference for the smart contract module of the instance. |
Version 1 smart contract instance information.
Field | Type | Label | Description |
owner | AccountAddress | The account address which deployed the instance. |
|
amount | Amount | The amount of CCD tokens in the balance of the instance. |
|
methods | ReceiveName | repeated | A list of endpoints exposed by the instance. |
name | InitName | The name of the smart contract of the instance. |
|
source_module | ModuleRef | The module reference for the smart contract module of the instance. |
Request for getting information about a smart contract instance.
Field | Type | Label | Description |
block_hash | BlockHashInput | The block to be used for the query. |
|
address | ContractAddress | The address of the smart contract instance. |
A smart contract instance key-value pair.
Field | Type | Label | Description |
key | bytes |
|
|
value | bytes |
|
Request for a specific key of a smart contract instance state.
Field | Type | Label | Description |
block_hash | BlockHashInput | The block to be used for the query. |
|
address | ContractAddress | The address of the smart contract instance. |
|
key | bytes | Key to look up. If the instance is a V0 instance then this will not be used. |
Value at the requested key of a smart contract instance state. For V0
contracts this will always be the entire state of the contract.
Field | Type | Label | Description |
value | bytes |
|
Data generated as part of updating a single contract instance.
In general a single Update transaction will
generate one or more of these events, together with possibly some transfers.
Field | Type | Label | Description |
contract_version | ContractVersion | Contract version. |
|
address | ContractAddress | Address of the affected instance. |
|
instigator | Address | The origin of the message to the smart contract. This can be either an account or a smart contract. |
|
amount | Amount | The amount the method was invoked with. |
|
parameter | Parameter | The parameter passed to the method. |
|
receive_name | ReceiveName | The name of the method that was executed. |
|
events | ContractEvent | repeated | Any contract events that might have been generated by the contract execution. |
Request for InvokeInstance.
Field | Type | Label | Description |
block_hash | BlockHashInput | Block to invoke the contract. The invocation will be at the end of the given block. |
|
invoker | Address | optional | Invoker of the contract. If this is not supplied then the contract will be invoked by an account with address 0, no credentials and sufficient amount of CCD to cover the transfer amount. If given, the relevant address (either account or contract) must exist in the blockstate. |
instance | ContractAddress | Address of the contract instance to invoke. |
|
amount | Amount | Amount to invoke the smart contract instance with. |
|
entrypoint | ReceiveName | The entrypoint of the smart contract instance to invoke. |
|
parameter | Parameter | The parameter bytes to include in the invocation of the entrypoint. |
|
energy | Energy | And what amount of energy to allow for execution. This cannot exceed `100_000_000_000`, but in practice it should be much less. The maximum block energy is typically in the range of a few million. |
Response type for InvokeInstance.
Field | Type | Label | Description |
success | InvokeInstanceResponse.Success |
|
|
failure | InvokeInstanceResponse.Failure |
|
Contract execution failed.
Field | Type | Label | Description |
return_value | bytes | optional | If invoking a V0 contract this is not provided, otherwise it is potentially return value produced by the call unless the call failed with out of energy or runtime error. If the V1 contract terminated with a logic error then the return value is present. |
used_energy | Energy | Energy used by the execution. |
|
reason | RejectReason | Contract execution failed for the given reason. |
Contract execution succeeded.
Field | Type | Label | Description |
return_value | bytes | optional | If invoking a V0 contract this is absent. Otherwise it is the return value produced by the contract. |
used_energy | Energy | Energy used by the execution. |
|
effects | ContractTraceElement | repeated | Effects produced by contract execution. |
A request to send a new block item to the chain.
An IP address
Field | Type | Label | Description |
value | string |
|
A succinct identifier of an identity provider on the chain.
In credential deployments, and other interactions with the chain this is
used to identify which identity provider is meant.
Field | Type | Label | Description |
value | uint32 |
|
Public information about an identity provider.
Field | Type | Label | Description |
identity | IpIdentity | Unique identifier of the identity provider. |
|
description | Description | Description of the identity provider. |
|
verify_key | IpInfo.IpVerifyKey | Pointcheval-Sanders public key of the identity provider. |
|
cdi_verify_key | IpInfo.IpCdiVerifyKey | Ed25519 public key of the identity provider. |
Ed25519 public key of the identity provider.
Field | Type | Label | Description |
value | bytes |
|
Pointcheval-Sanders public key of the identity provider.
Field | Type | Label | Description |
value | bytes |
|
A socket address consisting of
an IP + port.
Field | Type | Label | Description |
ip | IpAddress |
|
|
port | Port |
|
The leadership election nonce is an unpredictable value updated once an
epoch to make sure that bakers cannot predict too far in the future when
they will win the right to bake blocks.
Field | Type | Label | Description |
value | bytes |
|
Level 1 updates are the intermediate update kind.
They can update themselves or level 2 keys. They can only be performed by level 1 keys.
Field | Type | Label | Description |
level_1_keys_update | HigherLevelKeys | The level 1 keys were updated. |
|
level_2_keys_update_v0 | AuthorizationsV0 | The level 2 keys were updated. |
|
level_2_keys_update_v1 | AuthorizationsV1 | The level 2 keys were updated. This is similar to `level_2_keys_update_v0` except that a few more keys can be updated. |
A leverage factor.
Field | Type | Label | Description |
value | Ratio |
|
A memo which can be included as part of a transfer. Max size is 256 bytes.
Field | Type | Label | Description |
value | bytes |
|
The minting rate and the distribution of newly-minted CCD among bakers,
finalizers, and the foundation account. It must be the case that
baking_reward + finalization_reward <= 1. The remaining amount is the
platform development charge.
Field | Type | Label | Description |
mint_per_slot | MintRate | Mint rate per slot. |
|
baking_reward | AmountFraction | The fraction of newly created CCD allocated to baker rewards. |
|
finalization_reward | AmountFraction | The fraction of newly created CCD allocated to finalization rewards. |
Mint distribution payload as it looks in protocol version 4 and onward.
Field | Type | Label | Description |
baking_reward | AmountFraction |
|
|
finalization_reward | AmountFraction |
|
A minting rate of CCD.
The value is `mantissa * 10^(-exponent)`.
Field | Type | Label | Description |
mantissa | uint32 |
|
|
exponent | uint32 | This will never exceed 255 and can thus be stored in a single byte. |
A smart contract module reference. This is always 32 bytes long.
Field | Type | Label | Description |
value | bytes |
|
Request for getting the source of a smart contract module.
Field | Type | Label | Description |
block_hash | BlockHashInput | The block to be used for the query. |
|
module_ref | ModuleRef | The reference of the module. |
Event generated when an account receives a new encrypted amount.
Field | Type | Label | Description |
receiver | AccountAddress | The account onto which the amount was added. |
|
new_index | uint64 | The index the amount was assigned. |
|
encrypted_amount | EncryptedAmount | The encrypted amount that was added. |
A new individual release. Part of a single transfer with schedule transaction.
Field | Type | Label | Description |
timestamp | Timestamp | Effective time of the release in milliseconds since unix epoch. |
|
amount | Amount | Amount to be released. |
The response for getNextAccountSequenceNumber.
Field | Type | Label | Description |
sequence_number | SequenceNumber | The best guess for the available account sequence number. |
|
all_final | bool | Whether the guess relies on any non-finalized transactions. If true all of the relevant transactions are finalized. |
The response for `GetNextUpdateSequenceNumbers`.
Field | Type | Label | Description |
root_keys | SequenceNumber | Updates to the root keys. |
|
level1_keys | SequenceNumber | Updates to the level 1 keys. |
|
level2_keys | SequenceNumber | Updates to the level 2 keys. |
|
protocol | SequenceNumber | Protocol updates. |
|
election_difficulty | SequenceNumber | Updates to the election difficulty parameter. |
|
euro_per_energy | SequenceNumber | Updates to the euro:energy exchange rate. |
|
micro_ccd_per_euro | SequenceNumber | Updates to the CCD:EUR exchange rate. |
|
foundation_account | SequenceNumber | Updates to the foundation account. |
|
mint_distribution | SequenceNumber | Updates to the mint distribution. |
|
transaction_fee_distribution | SequenceNumber | Updates to the transaction fee distribution. |
|
gas_rewards | SequenceNumber | Updates to the GAS rewards. |
|
pool_parameters | SequenceNumber | Updates pool parameters. |
|
add_anonymity_revoker | SequenceNumber | Adds a new anonymity revoker. |
|
add_identity_provider | SequenceNumber | Adds a new identity provider. |
|
cooldown_parameters | SequenceNumber | Updates to cooldown parameters for chain parameters version 1 introduced in protocol version 4. |
|
time_parameters | SequenceNumber | Updates to time parameters for chain parameters version 1 introduced in protocol version 4. |
|
timeout_parameters | SequenceNumber | Updates to the timeout parameters |
|
min_block_time | SequenceNumber | Updates to the the minimum time between blocks for chain parameters version 2. |
|
block_energy_limit | SequenceNumber | Updates to the block energy limit for chain parameters version 2. |
|
finalization_committee_parameters | SequenceNumber | Updates to the finalization committee parameters |
Node info response
Contains various information of the
enquired node.
Field | Type | Label | Description |
peer_version | string | The version of the node. |
|
local_time | Timestamp | local time of the node. |
|
peer_uptime | Duration | Number of milliseconds that the node has been alive. |
|
network_info | NodeInfo.NetworkInfo | Information related to the p2p protocol. |
|
bootstrapper | Empty | The node is a bootstrapper and is not running consensus. |
|
node | NodeInfo.Node | The node is a regular node and runs the consensus protocol. |
Consensus info for a node configured with baker keys.
Field | Type | Label | Description |
baker_id | BakerId |
|
|
passive_committee_info | NodeInfo.BakerConsensusInfo.PassiveCommitteeInfo | The node is currently not baking. |
|
active_baker_committee_info | NodeInfo.BakerConsensusInfo.ActiveBakerCommitteeInfo | The node is configured with baker keys and is member of the baking committee. |
|
active_finalizer_committee_info | NodeInfo.BakerConsensusInfo.ActiveFinalizerCommitteeInfo | The node is configured with baker keys and is member of the baking and finalization committees. |
Tagging message type for a node that
is configured with baker keys and active in
the current baking committee
Tagging message type for a node that
is configured with baker keys and active in
the current finalizer committee (and also baking committee).
Network related information of the node.
Field | Type | Label | Description |
node_id | PeerId | The node id. |
|
peer_total_sent | uint64 | Total number of packets sent by the node. |
|
peer_total_received | uint64 | Total number of packets received by the node. |
|
avg_bps_in | uint64 | Average outbound throughput in bytes per second. |
|
avg_bps_out | uint64 | Average inbound throughput in bytes per second. |
The node is a regular node.
Field | Type | Label | Description |
not_running | Empty | The node is not running consensus. This is the case only when the node is not supporting the protocol on the chain. The node does not process blocks. |
|
passive | Empty | Consensus info for a node that is not configured with baker keys. The node is only processing blocks and relaying blocks and transactions and responding to catchup messages. |
|
active | NodeInfo.BakerConsensusInfo | The node is configured with baker credentials and consensus is running. |
Values contained in a normal (non-initial) credential.
Field | Type | Label | Description |
keys | CredentialPublicKeys | Public keys of the credential. |
|
cred_id | CredentialRegistrationId | Its registration ID. |
|
ip_id | IdentityProviderIdentity | The identity provider who signed the identity object from which this credential is derived. |
|
policy | Policy | Policy of this credential. |
|
ar_threshold | ArThreshold | The number of anonymity revokers that must work together to revoke the anonymity of the credential holder. |
|
ar_data | NormalCredentialValues.ArDataEntry | repeated | Mapping from anonymity revoker identities to revocation data for the given anonymity revoker. |
commitments | CredentialCommitments | Commitments to attributes which have not been revealed. |
Field | Type | Label | Description |
key | uint32 |
|
|
value | ChainArData |
|
Parameter to a smart contract initialization or invocation.
Field | Type | Label | Description |
value | bytes |
|
Type for the response of GetPassiveDelegationInfo.
Contains information about passive delegators at the end of a given block.
Field | Type | Label | Description |
delegated_capital | Amount | The total capital delegated passively. |
|
commission_rates | CommissionRates | The passive delegation commission rates. |
|
current_payday_transaction_fees_earned | Amount | The transaction fees accruing to the passive delegators in the current reward period. |
|
current_payday_delegated_capital | Amount | The effective delegated capital of passive delegators for the current reward period. |
|
all_pool_total_capital | Amount | Total capital staked across all pools, including passive delegation. |
A peer id
An identifier that the peer wants to be
be recoknized by.
The underlying value is simply a u64.
Note. There is no authenticity of the peer id and
as such it is only used for logging purposes.
Field | Type | Label | Description |
value | string |
|
A peer to ban specified by its IP.
Note. This will ban all peers located behind the
specified IP even though they are using different ports.
Field | Type | Label | Description |
ip_address | IpAddress |
|
Peers and their associated network related statistics
Field | Type | Label | Description |
peers | PeersInfo.Peer | repeated |
|
A peer that the node is connected to.
Field | Type | Label | Description |
peer_id | PeerId | The identifier of the peer that it wishes to be identified by. |
|
socket_address | IpSocketAddress | The port of the peer. |
|
network_stats | PeersInfo.Peer.NetworkStats | Network related statistics for the peer. |
|
bootstrapper | Empty | The peer is of type `Bootstrapper` is not participating in consensus and thus has no catchup status. |
|
node_catchup_status | PeersInfo.Peer.CatchupStatus | The peer is a regular node and have an associated catchup status. |
Network statistics for the peer
Field | Type | Label | Description |
packets_sent | uint64 | The number of messages sent to the peer. Packets are blocks, transactions, catchup messages, finalization records and network messages such as pings and peer requests. |
|
packets_received | uint64 | The number of messages received from the peer. Packets are blocks, transactions, catchup messages, finalization records and network messages such as pings and peer requests. |
|
latency | uint64 | The connection latency (i.e., ping time) in milliseconds. |
A pending update.
Field | Type | Label | Description |
effective_time | TransactionTime | The effective time of the update. |
|
root_keys | HigherLevelKeys | Updates to the root keys. |
|
level1_keys | HigherLevelKeys | Updates to the level 1 keys. |
|
level2_keys_cpv_0 | AuthorizationsV0 | Updates to the level 2 keys. |
|
level2_keys_cpv_1 | AuthorizationsV1 | Updates to the level 2 keys. |
|
protocol | ProtocolUpdate | Protocol updates. |
|
election_difficulty | ElectionDifficulty | Updates to the election difficulty parameter. |
|
euro_per_energy | ExchangeRate | Updates to the euro:energy exchange rate. |
|
micro_ccd_per_euro | ExchangeRate | Updates to the CCD:EUR exchange rate. |
|
foundation_account | AccountAddress | Updates to the foundation account. |
|
mint_distribution_cpv_0 | MintDistributionCpv0 | Updates to the mint distribution. Is only relevant prior to protocol version 4. |
|
mint_distribution_cpv_1 | MintDistributionCpv1 | The mint distribution was updated. Introduced in protocol version 4. |
|
transaction_fee_distribution | TransactionFeeDistribution | Updates to the transaction fee distribution. |
|
gas_rewards | GasRewards | Updates to the GAS rewards. |
|
pool_parameters_cpv_0 | BakerStakeThreshold | Updates baker stake threshold. Is only relevant prior to protocol version 4. |
|
pool_parameters_cpv_1 | PoolParametersCpv1 | Updates pool parameters. Introduced in protocol version 4. |
|
add_anonymity_revoker | ArInfo | Adds a new anonymity revoker. |
|
add_identity_provider | IpInfo | Adds a new identity provider. |
|
cooldown_parameters | CooldownParametersCpv1 | Updates to cooldown parameters for chain parameters version 1 introduced in protocol version 4. |
|
time_parameters | TimeParametersCpv1 | Updates to time parameters for chain parameters version 1 introduced in protocol version 4. |
|
gas_rewards_cpv_2 | GasRewardsCpv2 | Updates to the GAS rewards effective from protocol version 6 (chain parameters version 2). |
|
timeout_parameters | TimeoutParameters | Updates to the consensus timeouts for chain parameters version 2. |
|
min_block_time | Duration | Updates to the the minimum time between blocks for chain parameters version 2. |
|
block_energy_limit | Energy | Updates to the block energy limit for chain parameters version 2. |
|
finalization_committee_parameters | FinalizationCommitteeParameters | Updates to the finalization committee for for chain parameters version 2. |
Policy on a credential.
Field | Type | Label | Description |
created_at | YearMonth | The year and month when the identity object from which the credential is derived was created. |
|
valid_to | YearMonth | The last year and month when the credential is still valid. After this expires an account can no longer be created from the credential. |
|
attributes | Policy.AttributesEntry | repeated | Mapping from attribute tags to attribute values. Attribute tags are always representable in a single `u8`, attribute values are never more than 31 bytes in length. |
Field | Type | Label | Description |
key | uint32 |
|
|
value | bytes |
|
Information about a baker pool in the current reward period.
Field | Type | Label | Description |
blocks_baked | uint64 | The number of blocks baked in the current reward period. |
|
finalization_live | bool | Whether the baker has contributed a finalization proof in the current reward period. |
|
transaction_fees_earned | Amount | The transaction fees accruing to the pool in the current reward period. |
|
effective_stake | Amount | The effective stake of the baker in the current reward period. |
|
lottery_power | double | The lottery power of the baker in the current reward period. |
|
baker_equity_capital | Amount | The effective equity capital of the baker for the current reward period. |
|
delegated_capital | Amount | The effective delegated capital to the pool for the current reward period. |
|
commission_rates | CommissionRates | The commission rates that apply for the current reward period. |
Request for GetPoolInfo.
Field | Type | Label | Description |
block_hash | BlockHashInput | Block in which to query the pool information. |
|
baker | BakerId | The 'BakerId' of the pool owner. |
Type for the response of GetPoolInfo.
Contains information about a given pool at the end of a given block.
Field | Type | Label | Description |
baker | BakerId | The 'BakerId' of the pool owner. |
|
address | AccountAddress | The account address of the pool owner. |
|
equity_capital | Amount | The equity capital provided by the pool owner. |
|
delegated_capital | Amount | The capital delegated to the pool by other accounts. |
|
delegated_capital_cap | Amount | The maximum amount that may be delegated to the pool, accounting for leverage and stake limits. |
|
pool_info | BakerPoolInfo | The pool info associated with the pool: open status, metadata URL and commission rates. |
|
equity_pending_change | PoolPendingChange | optional | Any pending change to the equity carpital. |
current_payday_info | PoolCurrentPaydayInfo | optional | Information of the pool in the current reward period. |
all_pool_total_capital | Amount | Total capital staked across all pools, including passive delegation. |
Parameters related to staking pools.
Field | Type | Label | Description |
passive_finalization_commission | AmountFraction | Fraction of finalization rewards charged by the passive delegation. |
|
passive_baking_commission | AmountFraction | Fraction of baking rewards charged by the passive delegation. |
|
passive_transaction_commission | AmountFraction | Fraction of transaction rewards charged by the L-pool. |
|
commission_bounds | CommissionRanges | Bounds on the commission rates that may be charged by bakers. |
|
minimum_equity_capital | Amount | Minimum equity capital required for a new baker. |
|
capital_bound | CapitalBound | Maximum fraction of the total staked capital of that a new baker can have. |
|
leverage_bound | LeverageFactor | The maximum leverage that a baker can have as a ratio of total stake to equity capital. |
A pending change to a baker pool.
Field | Type | Label | Description |
reduce | PoolPendingChange.Reduce |
|
|
remove | PoolPendingChange.Remove |
|
A reduction in baker equity capital is pending.
Field | Type | Label | Description |
reduced_equity_capital | Amount | New baker equity capital. |
|
effective_time | Timestamp | Timestamp when the change takes effect. |
Removal of the pool is pending.
Field | Type | Label | Description |
effective_time | Timestamp | Timestamp when the change takes effect. |
A port
Valid port numbers are expected thus
the value is expected to be in the range (0..u16::MAX).
Field | Type | Label | Description |
value | uint32 |
|
An unsigned account transaction. This is used with the
`GetTransactionSignHash` endpoint to obtain the message to sign.
Field | Type | Label | Description |
header | AccountTransactionHeader |
|
|
payload | AccountTransactionPayload |
|
Field | Type | Label | Description |
message_ | string | A brief message about the update. |
|
specification_url | string | A URL of a document describing the update. |
|
specificationHash | Sha256Hash | SHA256 hash of the specification document. |
|
specification_auxiliary_data | bytes | Auxiliary data whose interpretation is defined by the new specification. |
A quorum certificate is the certificate that the
finalization comittee issues in order to certify a block.
A block must be certified before it will be part of the
authorative part of the chain.
Field | Type | Label | Description |
block_hash | BlockHash | The hash of the block that the quorum certificate refers to. |
|
round | Round | The round of the block. |
|
epoch | Epoch | The epoch of the block. |
|
aggregate_signature | QuorumSignature | The aggregated signature by the finalization committee on the block. |
|
signatories | BakerId | repeated | A list of the finalizers that formed the quorum certificate i.e., the ones who have contributed to the 'aggregate_siganture'. The finalizers are identified by their baker id as this is stable across protocols and epochs. |
The signature of a 'QuorumCertificate'.
Field | Type | Label | Description |
value | bytes | The bytes representing the raw aggregate signature. The bytes have a fixed length of 48 bytes. |
Represents a ratio, i.e., 'numerator / denominator'.
Field | Type | Label | Description |
numerator | uint64 | The numerator. |
|
denominator | uint64 | The denominator. |
The receive name of a smart contract function. Expected format:
`
alphanumeric or punctuation characters, and must contain a '.'.
Field | Type | Label | Description |
value | string |
|
Data registered on the chain with a register data transaction.
Field | Type | Label | Description |
value | bytes |
|
A reason for why a transaction was rejected. Rejected means included in a
block, but the desired action was not achieved. The only effect of a
rejected transaction is payment.
Field | Type | Label | Description |
module_not_wf | Empty | Raised while validating a Wasm module that is not well formed. |
|
module_hash_already_exists | ModuleRef | The smart contract module hash already exists. |
|
invalid_account_reference | AccountAddress | Account does not exist. |
|
invalid_init_method | RejectReason.InvalidInitMethod | Reference to a non-existing contract init method. |
|
invalid_receive_method | RejectReason.InvalidReceiveMethod | Reference to a non-existing contract receive method. |
|
invalid_module_reference | ModuleRef | Reference to a non-existing smart contract module. |
|
invalid_contract_address | ContractAddress | Contract instance does not exist. |
|
runtime_failure | Empty | Runtime exception occurred when running either the init or receive method. |
|
amount_too_large | RejectReason.AmountTooLarge | When one wishes to transfer an amount from A to B but there are not enough funds on account/contract A to make this possible. The data are the from address and the amount to transfer. |
|
serialization_failure | Empty | Serialization of the body failed. |
|
out_of_energy | Empty | We ran of out energy to process this transaction. |
|
rejected_init | RejectReason.RejectedInit | Rejected due to contract logic in init function of a contract. |
|
rejected_receive | RejectReason.RejectedReceive | Rejected due to contract logic in receive function of a contract. |
|
invalid_proof | Empty | Proof that the baker owns relevant private keys is not valid. |
|
already_a_baker | BakerId | Tried to add baker for an account that already has a baker. |
|
not_a_baker | AccountAddress | Tried to remove a baker for an account that has no baker. |
|
insufficient_balance_for_baker_stake | Empty | The amount on the account was insufficient to cover the proposed stake. |
|
stake_under_minimum_threshold_for_baking | Empty | The amount provided is under the threshold required for becoming a baker. |
|
baker_in_cooldown | Empty | The change could not be made because the baker is in cooldown for another change. |
|
duplicate_aggregation_key | BakerAggregationVerifyKey | A baker with the given aggregation key already exists. |
|
non_existent_credential_id | Empty | Encountered credential ID that does not exist. |
|
key_index_already_in_use | Empty | Attempted to add an account key to a key index already in use. |
|
invalid_account_threshold | Empty | When the account threshold is updated, it must not exceed the amount of existing keys. |
|
invalid_credential_key_sign_threshold | Empty | When the credential key threshold is updated, it must not exceed the amount of existing keys. |
|
invalid_encrypted_amount_transfer_proof | Empty | Proof for an encrypted amount transfer did not validate. |
|
invalid_transfer_to_public_proof | Empty | Proof for a secret to public transfer did not validate. |
|
encrypted_amount_self_transfer | AccountAddress | Account tried to transfer an encrypted amount to itself, that's not allowed. |
|
invalid_index_on_encrypted_transfer | Empty | The provided index is below the start index or above `startIndex + length incomingAmounts`. |
|
zero_scheduledAmount | Empty | The transfer with schedule is going to send 0 tokens. |
|
non_increasing_schedule | Empty | The transfer with schedule has a non strictly increasing schedule. |
|
first_scheduled_release_expired | Empty | The first scheduled release in a transfer with schedule has already expired. |
|
scheduled_self_transfer | AccountAddress | Account tried to transfer with schedule to itself, that's not allowed. |
|
invalid_credentials | Empty | At least one of the credentials was either malformed or its proof was incorrect. |
|
duplicate_cred_ids | RejectReason.DuplicateCredIds | Some of the credential IDs already exist or are duplicated in the transaction. |
|
non_existent_cred_ids | RejectReason.NonExistentCredIds | A credential id that was to be removed is not part of the account. |
|
remove_first_credential | Empty | Attemp to remove the first credential. |
|
credential_holder_did_not_sign | Empty | The credential holder of the keys to be updated did not sign the transaction. |
|
not_allowed_multiple_credentials | Empty | Account is not allowed to have multiple credentials because it contains a non-zero encrypted transfer. |
|
not_allowed_to_receive_encrypted | Empty | The account is not allowed to receive encrypted transfers because it has multiple credentials. |
|
not_allowed_to_handle_encrypted | Empty | The account is not allowed to send encrypted transfers (or transfer from/to public to/from encrypted). |
|
missing_baker_add_parameters | Empty | A configure baker transaction is missing one or more arguments in order to add a baker. |
|
finalization_reward_commission_not_in_range | Empty | Finalization reward commission is not in the valid range for a baker. |
|
baking_reward_commission_not_in_range | Empty | Baking reward commission is not in the valid range for a baker. |
|
transaction_fee_commission_not_in_range | Empty | Transaction fee commission is not in the valid range for a baker. |
|
already_a_delegator | Empty | Tried to add baker for an account that already has a delegator. |
|
insufficient_balance_for_delegation_stake | Empty | The amount on the account was insufficient to cover the proposed stake. |
|
missing_delegation_add_parameters | Empty | A configure delegation transaction is missing one or more arguments in order to add a delegator. |
|
insufficient_delegation_stake | Empty | Delegation stake when adding a delegator was 0. |
|
delegator_in_cooldown | Empty | Account is not a delegation account. |
|
not_a_delegator | AccountAddress | Account is not a delegation account. |
|
delegation_target_not_a_baker | BakerId | Delegation target is not a baker |
|
stake_over_maximum_threshold_for_pool | Empty | The amount would result in pool capital higher than the maximum threshold. |
|
pool_would_become_over_delegated | Empty | The amount would result in pool with a too high fraction of delegated capital. |
|
pool_closed | Empty | The pool is not open to delegators. |
Field | Type | Label | Description |
address | Address |
|
|
amount | Amount |
|
Field | Type | Label | Description |
ids | CredentialRegistrationId | repeated |
|
Field | Type | Label | Description |
module_ref | ModuleRef |
|
|
init_name | InitName |
|
Field | Type | Label | Description |
module_ref | ModuleRef |
|
|
receive_name | ReceiveName |
|
Field | Type | Label | Description |
ids | CredentialRegistrationId | repeated |
|
Field | Type | Label | Description |
reject_reason | int32 |
|
Field | Type | Label | Description |
reject_reason | int32 |
|
|
contract_address | ContractAddress |
|
|
receive_name | ReceiveName |
|
|
parameter | Parameter |
|
An individual release of a locked balance.
Field | Type | Label | Description |
timestamp | Timestamp | Effective time of the release in milliseconds since unix epoch. |
|
amount | Amount | Amount to be released. |
|
transactions | TransactionHash | repeated | List of transaction hashes that contribute a balance to this release. |
State of the account's release schedule. This is the balance of the account
that is owned by the account, but cannot be used until the release point.
Field | Type | Label | Description |
total | Amount | Total amount locked in the release schedule. |
|
schedules | Release | repeated | A list of releases, ordered by increasing timestamp. |
Length of a reward period in epochs.
Must always be a strictly positive number.
Field | Type | Label | Description |
value | Epoch |
|
Root updates are the highest kind of key updates. They can update every other set of keys,
even themselves. They can only be performed by Root level keys.
Field | Type | Label | Description |
root_keys_update | HigherLevelKeys | The root keys were updated. |
|
level_1_keys_update | HigherLevelKeys | The level 1 keys were updated. |
|
level_2_keys_update_v0 | AuthorizationsV0 | The level 2 keys were updated. |
|
level_2_keys_update_v1 | AuthorizationsV1 | The level 2 keys were updated. This is similar to `level_2_keys_update_v0` except that a few more keys can be updated. |
A round.
Field | Type | Label | Description |
value | uint64 |
|
Field | Type | Label | Description |
account_transaction | AccountTransaction | Account transactions are messages which are signed and paid for by an account. |
|
credential_deployment | CredentialDeployment | Credential deployments create new accounts. They are not paid for directly by the sender. Instead, bakers are rewarded by the protocol for including them. |
|
update_instruction | UpdateInstruction | Update instructions are messages which can update the chain parameters. Including which keys are allowed to make future update instructions. |
A sequence number that determines the ordering of transactions from the
account. The minimum sequence number is 1.
Field | Type | Label | Description |
value | uint64 | The sequence number. |
A SHA256 hash. This is always 32 bytes long.
Field | Type | Label | Description |
value | bytes |
|
A single signature. Used when sending block items to a node with
`SendBlockItem`.
Field | Type | Label | Description |
value | bytes |
|
A signature on an update instruction.
The type `UpdateKeysIndex` is not used directly, as messages cannot be keys in maps.
Field | Type | Label | Description |
signatures | SignatureMap.SignaturesEntry | repeated |
|
Field | Type | Label | Description |
key | uint32 |
|
|
value | Signature |
|
The number of signatures required to sign.
Field | Type | Label | Description |
value | uint32 |
|
A number representing a slot for baking a block.
Field | Type | Label | Description |
value | uint64 |
|
Pending change to the stake either of a baker or delegator.
Field | Type | Label | Description |
reduce | StakePendingChange.Reduce |
|
|
remove | Timestamp | Remove the stake. The value is a Unix timestamp of the effective time in milliseconds. |
Field | Type | Label | Description |
new_stake | Amount |
|
|
effective_time | Timestamp | Unix timestamp in milliseconds when the change takes effect. |
Hash of the state after some block. This is always 32 bytes long.
Field | Type | Label | Description |
value | bytes |
|
A proof that establishes that the successor block of
a 'EpochFinalizationEntry' is the immediate successor of
the finalized block.
Field | Type | Label | Description |
value | bytes | The proof represented as raw bytes. The bytes have a fixed length of 32 bytes. |
The time parameters are introduced as of protocol version 4, and consist of
the reward period length and the mint rate per payday. These are coupled as
a change to either affects the overall rate of minting.
Field | Type | Label | Description |
reward_period_length | RewardPeriodLength |
|
|
mint_per_payday | MintRate |
|
A timeout certificate is the certificate that the
finalization committee issues when a round times out,
thus making it possible for the protocol to proceed to the
next round.
Field | Type | Label | Description |
round | Round | The round that timed out. |
|
min_epoch | Epoch | The minimum epoch of which signatures are included in the 'aggregate_signature'. |
|
qc_rounds_first_epoch | FinalizerRound | repeated | The rounds of which finalizers have their best QCs in the 'min_epoch'. |
qc_rounds_second_epoch | FinalizerRound | repeated | The rounds of which finalizers have their best QCs in the epoch 'min_epoch' + 1. |
aggregate_signature | TimeoutSignature | The aggregated signature by the finalization committee that witnessed the 'round' timed out. |
Parameters that determine timeouts in the consensus protocol used from protocol version 6.
Field | Type | Label | Description |
timeout_base | Duration | The base value for triggering a timeout |
|
timeout_increase | Ratio | Factor for increasing the timeout. Must be greater than 1. |
|
timeout_decrease | Ratio | Factor for decreasing the timeout. Must be between 0 and 1. |
The signature of a 'TimeoutCertificate'.
Field | Type | Label | Description |
value | bytes | The bytes representing the raw aggregate signature. The bytes have a fixed length of 48 bytes. |
Unix timestamp in milliseconds.
Field | Type | Label | Description |
value | uint64 |
|
Type for the response of GetTokenomicsInfo.
Contains information related to tokenomics at the end of a given block.
Field | Type | Label | Description |
v0 | TokenomicsInfo.V0 |
|
|
v1 | TokenomicsInfo.V1 |
|
Version 0 tokenomics.
Field | Type | Label | Description |
total_amount | Amount | The total CCD in existence. |
|
total_encrypted_amount | Amount | The total CCD in encrypted balances. |
|
baking_reward_account | Amount | The amount in the baking reward account. |
|
finalization_reward_account | Amount | The amount in the finalization reward account. |
|
gas_account | Amount | The amount in the GAS account. |
|
protocol_version | ProtocolVersion | The protocol version. |
Version 1 tokenomics.
Field | Type | Label | Description |
total_amount | Amount | The total CCD in existence. |
|
total_encrypted_amount | Amount | The total CCD in encrypted balances. |
|
baking_reward_account | Amount | The amount in the baking reward account. |
|
finalization_reward_account | Amount | The amount in the finalization reward account. |
|
gas_account | Amount | The amount in the GAS account. |
|
foundation_transaction_rewards | Amount | The transaction reward fraction accruing to the foundation (to be paid at next payday). |
|
next_payday_time | Timestamp | The time of the next payday. |
|
next_payday_mint_rate | MintRate | The rate at which CCD will be minted (as a proportion of the total supply) at the next payday. |
|
total_staked_capital | Amount | The total capital put up as stake by bakers and delegators. |
|
protocol_version | ProtocolVersion | The protocol version. |
Parameters determining the distribution of transaction fees.
Field | Type | Label | Description |
baker | AmountFraction | The fraction allocated to the baker. |
|
gas_account | AmountFraction | The fraction allocated to the GAS account. |
Hash of a transaction. This is always 32 bytes long.
Field | Type | Label | Description |
value | bytes |
|
Transaction time specified as seconds since unix epoch.
Field | Type | Label | Description |
value | uint64 |
|
Payload of a transfer between two accounts.
Field | Type | Label | Description |
amount | Amount | Amount of CCD to send. |
|
receiver | AccountAddress | Receiver address. |
Payload of a transfer between two accounts with a memo.
Field | Type | Label | Description |
amount | Amount | Amount of CCD to send. |
|
receiver | AccountAddress | Receiver address. |
|
memo | Memo | Memo to include with the transfer. |
Data required to update a contract instance.
Field | Type | Label | Description |
amount | Amount | Amount of CCD to send to the instance. |
|
address | ContractAddress | Address of the instance to update. |
|
receive_name | ReceiveName | Name of the entrypoint to call to update the instance. This is expected to be in the format `contractName.entrypointName`. |
|
parameter | Parameter | Parameter to pass to the entrypoint. |
Details of an update instruction. These are free, and we only ever get a
response for them if the update is successfully enqueued, hence no failure
cases.
Field | Type | Label | Description |
effective_time | TransactionTime | The time at which the update will be effective. |
|
payload | UpdatePayload | The paylaod for the update. |
Field | Type | Label | Description |
signatures | SignatureMap | A map from `UpdateKeysIndex` to `Signature`. Keys must not exceed 2^16. |
|
header | UpdateInstructionHeader |
|
|
payload | UpdateInstructionPayload |
|
Field | Type | Label | Description |
sequence_number | UpdateSequenceNumber |
|
|
effective_time | TransactionTime |
|
|
timeout | TransactionTime |
|
The payload for an UpdateInstruction.
Field | Type | Label | Description |
raw_payload | bytes | A raw payload encoded according to the format defined by the protocol. |
Index of a key in an authorizations update payload.
Field | Type | Label | Description |
value | uint32 |
|
The threshold for how many UpdatePublicKeys are need to make a certain chain update.
Field | Type | Label | Description |
value | uint32 | Is ensured to be within between 1 and 2^16. |
The payload of a chain update.
Field | Type | Label | Description |
protocol_update | ProtocolUpdate | The protocol version was updated. |
|
election_difficulty_update | ElectionDifficulty | The election difficulty was updated. |
|
euro_per_energy_update | ExchangeRate | The euro per energy exchange rate was updated. |
|
micro_ccd_per_euro_update | ExchangeRate | The microCCD per euro exchange rate was updated. |
|
foundation_account_update | AccountAddress | The foundation account address was updated. |
|
mint_distribution_update | MintDistributionCpv0 | The mint distribution was updated. |
|
transaction_fee_distribution_update | TransactionFeeDistribution | The transaction fee distribtuion was updated. |
|
gas_rewards_update | GasRewards | The gas rewards were updated. |
|
baker_stake_threshold_update | BakerStakeThreshold | The minimum amount of CCD needed to be come a baker was updated. |
|
root_update | RootUpdate | The root keys were updated. |
|
level_1_update | Level1Update | The level 1 keys were updated. |
|
add_anonymity_revoker_update | ArInfo | An anonymity revoker was added. |
|
add_identity_provider_update | IpInfo | An identity provider was added. |
|
cooldown_parameters_cpv_1_update | CooldownParametersCpv1 | The cooldown parameters were updated. |
|
pool_parameters_cpv_1_update | PoolParametersCpv1 | The pool parameters were updated. |
|
time_parameters_cpv_1_update | TimeParametersCpv1 | The time parameters were updated. |
|
mint_distribution_cpv_1_update | MintDistributionCpv1 | The mint distribution was updated. |
|
gas_rewards_cpv_2_update | GasRewardsCpv2 | The gas rewards were updated (chain parameters version 2). |
|
timeout_parameters_update | TimeoutParameters | The consensus timeouts were updated (chain parameters version 2). |
|
min_block_time_update | Duration | The minimum time between blocks was updated (chain parameters version 2). |
|
block_energy_limit_update | Energy | The block energy limit was updated (chain parameters version 2). |
|
finalization_committee_parameters_update | FinalizationCommitteeParameters | Finalization committee parameters (chain parameters version 2). |
A public key used for chain updates.
Field | Type | Label | Description |
value | bytes |
|
A sequence number that determines the ordering of update transactions.
Equivalent to `SequenceNumber` for account transactions.
Update sequence numbers are per update type and the minimum value is 1.
Field | Type | Label | Description |
value | uint64 | The sequence number. |
Source bytes of a versioned smart contract module.
Field | Type | Label | Description |
v0 | VersionedModuleSource.ModuleSourceV0 |
|
|
v1 | VersionedModuleSource.ModuleSourceV1 |
|
Source bytes of a smart contract v0 module.
Field | Type | Label | Description |
value | bytes |
|
Source bytes of a smart contract v1 module.
Field | Type | Label | Description |
value | bytes |
|
Details of which baker won the lottery in a given round in consensus version 1.
Field | Type | Label | Description |
round | Round | The round number. |
|
winner | BakerId | The baker that won the round. |
|
present | bool | True if the baker produced a block in this round on the finalized chain, and False otherwise. |
Representation of the pair of a year and month.
Field | Type | Label | Description |
year | uint32 |
|
|
month | uint32 |
|
Version of smart contract.
Name | Number | Description |
V0 | 0 | |
V1 | 1 |
The type of a credential.
Name | Number | Description |
CREDENTIAL_TYPE_INITIAL | 0 | An initial credential created by the identity provider. |
CREDENTIAL_TYPE_NORMAL | 1 | A normal credential type created by the account. |
The committee information of a node configured with
baker keys but somehow the node is _not_ part of the
current baking committee.
Name | Number | Description |
NOT_IN_COMMITTEE | 0 | The node is started with baker keys however it is currently not in the baking committee. The node is __not__ baking. |
ADDED_BUT_NOT_ACTIVE_IN_COMMITTEE | 1 | The account is registered as a baker but not in the current `Epoch`. The node is __not__ baking. |
ADDED_BUT_WRONG_KEYS | 2 | The node has configured invalid baker keys i.e., the configured baker keys do not match the current keys on the baker account. The node is __not__ baking. |
Information about how open the pool is to new delegators.
Name | Number | Description |
OPEN_STATUS_OPEN_FOR_ALL | 0 | |
OPEN_STATUS_CLOSED_FOR_NEW | 1 | |
OPEN_STATUS_CLOSED_FOR_ALL | 2 |
Name | Number | Description |
UPTODATE | 0 | The peer does not have any data unknown to us. If we receive a message from the peer that refers to unknown data (e.g., an unknown block) the peer is marked as pending. |
PENDING | 1 | The peer might have some data unknown to us. A peer can be in this state either because it sent a message that refers to data unknown to us, or before we have established a baseline with it. The latter happens during node startup, as well as upon protocol updates until the initial catchup handshake completes. |
CATCHINGUP | 2 | The node is currently catching up by requesting blocks from this peer. There will be at most one peer with this status at a time. Once the peer has responded to the request, its status will be changed to: - 'UPTODATE' if the peer has no more data that is not known to us - 'PENDING' if the node has more data that is unknown to us. |
The different versions of the protocol.
Name | Number | Description |
PROTOCOL_VERSION_1 | 0 | |
PROTOCOL_VERSION_2 | 1 | |
PROTOCOL_VERSION_3 | 2 | |
PROTOCOL_VERSION_4 | 3 | |
PROTOCOL_VERSION_5 | 4 | |
PROTOCOL_VERSION_6 | 5 |
The type of transaction.
Name | Number | Description |
DEPLOY_MODULE | 0 | |
INIT_CONTRACT | 1 | |
UPDATE | 2 | |
TRANSFER | 3 | |
ADD_BAKER | 4 | |
REMOVE_BAKER | 5 | |
UPDATE_BAKER_STAKE | 6 | |
UPDATE_BAKER_RESTAKE_EARNINGS | 7 | |
UPDATE_BAKER_KEYS | 8 | |
UPDATE_CREDENTIAL_KEYS | 9 | |
ENCRYPTED_AMOUNT_TRANSFER | 10 | |
TRANSFER_TO_ENCRYPTED | 11 | |
TRANSFER_TO_PUBLIC | 12 | |
TRANSFER_WITH_SCHEDULE | 13 | |
UPDATE_CREDENTIALS | 14 | |
REGISTER_DATA | 15 | |
TRANSFER_WITH_MEMO | 16 | |
ENCRYPTED_AMOUNT_TRANSFER_WITH_MEMO | 17 | |
TRANSFER_WITH_SCHEDULE_AND_MEMO | 18 | |
CONFIGURE_BAKER | 19 | |
CONFIGURE_DELEGATION | 20 |
The type of chain update.
Name | Number | Description |
UPDATE_PROTOCOL | 0 | |
UPDATE_ELECTION_DIFFICULTY | 1 | |
UPDATE_EURO_PER_ENERGY | 2 | |
UPDATE_MICRO_CCD_PER_EURO | 3 | |
UPDATE_FOUNDATION_ACCOUNT | 4 | |
UPDATE_MINT_DISTRIBUTION | 5 | |
UPDATE_TRANSACTION_FEE_DISTRIBUTION | 6 | |
UPDATE_GAS_REWARDS | 7 | |
UPDATE_POOL_PARAMETERS | 8 | |
ADD_ANONYMITY_REVOKER | 9 | |
ADD_IDENTITY_PROVIDER | 10 | |
UPDATE_ROOT_KEYS | 11 | |
UPDATE_LEVEL1_KEYS | 12 | |
UPDATE_LEVEL2_KEYS | 13 | |
UPDATE_COOLDOWN_PARAMETERS | 14 | |
UPDATE_TIME_PARAMETERS | 15 | |
UPDATE_TIMEOUT_PARAMETERS | 16 | |
UPDATE_MIN_BLOCK_TIME | 17 | |
UPDATE_BLOCK_ENERGY_LIMIT | 18 | |
UPDATE_FINALIZATION_COMMITTEE_PARAMETERS | 19 |
Method Name | Request Type | Response Type | Description |
GetBlocks | Empty | ArrivedBlockInfo stream | Return a stream of blocks that arrive from the time the query is made onward. This can be used to listen for incoming blocks. |
GetFinalizedBlocks | Empty | FinalizedBlockInfo stream | Return a stream of blocks that are finalized from the time the query is made onward. This can be used to listen for newly finalized blocks. Note that there is no guarantee that blocks will not be skipped if the client is too slow in processing the stream, however blocks will always be sent by increasing block height. |
GetAccountInfo | AccountInfoRequest | AccountInfo | Retrieve the information about the given account in the given block. |
GetAccountList | BlockHashInput | AccountAddress stream | Retrieve the list of accounts that exist at the end of the given block. |
GetModuleList | BlockHashInput | ModuleRef stream | Get a list of all smart contract modules. The stream will end when all modules that exist in the state at the end of the given block have been returned. |
GetAncestors | AncestorsRequest | BlockHash stream | Get a stream of ancestors for the provided block. Starting with the provided block itself, moving backwards until no more ancestors or the requested number of ancestors has been returned. |
GetModuleSource | ModuleSourceRequest | VersionedModuleSource | Get the source of a smart contract module. |
GetInstanceList | BlockHashInput | ContractAddress stream | Get a list of addresses for all smart contract instances. The stream will end when all instances that exist in the state at the end of the given block has been returned. |
GetInstanceInfo | InstanceInfoRequest | InstanceInfo | Get info about a smart contract instance as it appears at the end of the given block. |
GetInstanceState | InstanceInfoRequest | InstanceStateKVPair stream | Get the exact state of a specific contract instance, streamed as a list of key-value pairs. The list is streamed in lexicographic order of keys. |
InstanceStateLookup | InstanceStateLookupRequest | InstanceStateValueAtKey | Get the value at a specific key of a contract state. In contrast to `GetInstanceState` this is more efficient, but requires the user to know the specific key to look for. |
GetNextAccountSequenceNumber | AccountAddress | NextAccountSequenceNumber | Get the best guess as to what the next account sequence number should be. If all account transactions are finalized then this information is reliable. Otherwise this is the best guess, assuming all other transactions will be committed to blocks and eventually finalized. |
GetConsensusInfo | Empty | ConsensusInfo | Get information about the current state of consensus. |
GetBlockItemStatus | TransactionHash | BlockItemStatus | Get the status of and information about a specific block item (transaction). |
GetCryptographicParameters | BlockHashInput | CryptographicParameters | Get the cryptographic parameters in a given block. |
GetBlockInfo | BlockHashInput | BlockInfo | Get information, such as height, timings, and transaction counts for the given block. |
GetBakerList | BlockHashInput | BakerId stream | Get all the bakers at the end of the given block. |
GetPoolInfo | PoolInfoRequest | PoolInfoResponse | Get information about a given pool at the end of a given block. |
GetPassiveDelegationInfo | BlockHashInput | PassiveDelegationInfo | Get information about the passive delegators at the end of a given block. |
GetBlocksAtHeight | BlocksAtHeightRequest | BlocksAtHeightResponse | Get a list of live blocks at a given height. |
GetTokenomicsInfo | BlockHashInput | TokenomicsInfo | Get information about tokenomics at the end of a given block. |
InvokeInstance | InvokeInstanceRequest | InvokeInstanceResponse | Run the smart contract entrypoint in a given context and in the state at the end of the given block. |
GetPoolDelegators | GetPoolDelegatorsRequest | DelegatorInfo stream | Get the registered delegators of a given pool at the end of a given block. In contrast to the `GetPoolDelegatorsRewardPeriod` which returns delegators that are fixed for the reward period of the block, this endpoint returns the list of delegators that are registered in the block. Any changes to delegators are immediately visible in this list. The stream will end when all the delegators has been returned. |
GetPoolDelegatorsRewardPeriod | GetPoolDelegatorsRequest | DelegatorRewardPeriodInfo stream | Get the fixed delegators of a given pool for the reward period of the given block. In contracts to the `GetPoolDelegators` which returns delegators registered for the given block, this endpoint returns the fixed delegators contributing stake in the reward period containing the given block. The stream will end when all the delegators has been returned. |
GetPassiveDelegators | BlockHashInput | DelegatorInfo stream | Get the registered passive delegators at the end of a given block. In contrast to the `GetPassiveDelegatorsRewardPeriod` which returns delegators that are fixed for the reward period of the block, this endpoint returns the list of delegators that are registered in the block. Any changes to delegators are immediately visible in this list. The stream will end when all the delegators has been returned. |
GetPassiveDelegatorsRewardPeriod | BlockHashInput | DelegatorRewardPeriodInfo stream | Get the fixed passive delegators for the reward period of the given block. In contracts to the `GetPassiveDelegators` which returns delegators registered for the given block, this endpoint returns the fixed delegators contributing stake in the reward period containing the given block. The stream will end when all the delegators has been returned. |
GetBranches | Empty | Branch | Get the current branches of blocks starting from and including the last finalized block. |
GetElectionInfo | BlockHashInput | ElectionInfo | Get information related to the baker election for a particular block. |
GetIdentityProviders | BlockHashInput | IpInfo stream | Get the identity providers registered as of the end of a given block. The stream will end when all the identity providers have been returned. |
GetAnonymityRevokers | BlockHashInput | ArInfo stream | Get the anonymity revokers registered as of the end of a given block. The stream will end when all the anonymity revokers have been returned. |
GetAccountNonFinalizedTransactions | AccountAddress | TransactionHash stream | Get a list of non-finalized transaction hashes for a given account. This endpoint is not expected to return a large amount of data in most cases, but in bad network condtions it might. The stream will end when all the non-finalized transaction hashes have been returned. |
GetBlockTransactionEvents | BlockHashInput | BlockItemSummary stream | Get a list of transaction events in a given block. The stream will end when all the transaction events for a given block have been returned. |
GetBlockSpecialEvents | BlockHashInput | BlockSpecialEvent stream | Get a list of special events in a given block. These are events generated by the protocol, such as minting and reward payouts. They are not directly generated by any transaction. The stream will end when all the special events for a given block have been returned. |
GetBlockPendingUpdates | BlockHashInput | PendingUpdate stream | Get the pending updates to chain parameters at the end of a given block. The stream will end when all the pending updates for a given block have been returned. |
GetNextUpdateSequenceNumbers | BlockHashInput | NextUpdateSequenceNumbers | Get next available sequence numbers for updating chain parameters after a given block. |
GetBakerEarliestWinTime | BakerId | Timestamp | Get the projected earliest time at which a particular baker will be required to bake a block. If the current consensus version is 0, this returns the status 'Unavailable', as the endpoint is only supported by consensus version 1. If the baker is not a baker for the current reward period, this returns a timestamp at the start of the next reward period. If the baker is a baker for the current reward period, the earliest win time is projected from the current round forward, assuming that each round after the last finalized round will take the minimum block time. (If blocks take longer, or timeouts occur, the actual time may be later, and the reported time in subsequent queries may reflect this.) At the end of an epoch (or if the baker is not projected to bake before the end of the epoch) the earliest win time for a (current) baker will be projected as the start of the next epoch. This is because the seed for the leader election is updated at the epoch boundary, and so the winners cannot be predicted beyond that. Note that in some circumstances the returned timestamp can be in the past, especially at the end of an epoch. |
Shutdown | Empty | Empty | Shut down the node. Return a GRPC error if the shutdown failed. |
PeerConnect | IpSocketAddress | Empty | Suggest to a peer to connect to the submitted peer details. This, if successful, adds the peer to the list of given addresses. Otherwise return a GRPC error. Note. The peer might not be connected to instantly, in that case the node will try to establish the connection in near future. This function returns a GRPC status 'Ok' in this case. |
PeerDisconnect | IpSocketAddress | Empty | Disconnect from the peer and remove them from the given addresses list if they are on it. Return if the request was processed successfully. Otherwise return a GRPC error. |
GetBannedPeers | Empty | BannedPeers | Get a list of banned peers. |
BanPeer | PeerToBan | Empty | Ban the given peer. Returns a GRPC error if the action failed. |
UnbanPeer | BannedPeer | Empty | Unban the banned peer. Returns a GRPC error if the action failed. |
DumpStart | DumpRequest | Empty | Start dumping packages into the specified file. Only enabled if the node was built with the `network_dump` feature. Returns a GRPC error if the network dump failed to start. |
DumpStop | Empty | Empty | Stop dumping packages. Only enabled if the node was built with the `network_dump` feature. Returns a GRPC error if the network dump failed to be stopped. |
GetPeersInfo | Empty | PeersInfo | Get a list of the peers that the node is connected to / and assoicated network related information for each peer. |
GetNodeInfo | Empty | NodeInfo | Get information about the node. The `NodeInfo` includes information of * Meta information such as the, version of the node, type of the node, uptime and the local time of the node. * NetworkInfo which yields data such as the node id, packets sent/received, average bytes per second sent/received. * ConsensusInfo. The `ConsensusInfo` returned depends on if the node supports the protocol on chain and whether the node is configured as a baker or not. |
SendBlockItem | SendBlockItemRequest | TransactionHash | Send a block item. A block item is either an `AccountTransaction`, which is a transaction signed and paid for by an account, a `CredentialDeployment`, which creates a new account, or `UpdateInstruction`, which is an instruction to change some parameters of the chain. Update instructions can only be sent by the governance committee. Returns a hash of the block item, which can be used with `GetBlockItemStatus`. |
GetAccountTransactionSignHash | PreAccountTransaction | AccountTransactionSignHash | Get the hash to be signed for an account transaction. The hash returned should be signed and the signatures included as an AccountTransactionSignature when calling `SendBlockItem`. This is provided as a convenience to support cases where the right SDK is not available for interacting with the node. If an SDK is available then it is strongly recommended to compute this hash off-line using it. That reduces the trust in the node, removes networking failure modes, and will perform better. |
GetBlockChainParameters | BlockHashInput | ChainParameters | Get the values of chain parameters in effect in the given block. |
GetBlockFinalizationSummary | BlockHashInput | BlockFinalizationSummary | Get the summary of the finalization data in a given block. |
GetBlockItems | BlockHashInput | BlockItem stream | Get the items of a block. |
GetBakersRewardPeriod | BlockHashInput | BakerRewardPeriodInfo stream | Get all bakers in the reward period of a block. This endpoint is only supported for protocol version 6 and onwards. If the protocol does not support the endpoint then an 'IllegalArgument' error is returned. |
GetBlockCertificates | BlockHashInput | BlockCertificates | For a non-genesis block, this returns the quorum certificate, a timeout certificate (if present) and epoch finalization entry (if present). Note that, if the block being pointed to is not a product of ConcordiumBFT, then the response will be a grpc error (invalid argument). If the endpoint is not enabled by the node, then an 'unimplemented' error will be returned. |
GetWinningBakersEpoch | EpochRequest | WinningBaker stream | Get the list of bakers that won the lottery in a particular historical epoch (i.e. the last finalized block is in a later epoch). This lists the winners for each round in the epoch, starting from the round after the last block in the previous epoch, running to the round before the first block in the next epoch. It also indicates if a block in each round was included in the finalized chain. The following error cases are possible: * `NOT_FOUND` if the query specifies an unknown block. * `UNAVAILABLE` if the query is for an epoch that is not finalized in the current genesis / index, or is for a future genesis index. * `INVALID_ARGUMENT` if the query is for an epoch that is not finalized for a past genesis index. * `INVALID_ARGUMENT` if the query is for a genesis index at consensus version 0. * `INVALID_ARGUMENT` if the input `EpochRequest` is malformed. * `UNIMPLEMENTED` if the endpoint is disabled on the node. |
GetFirstBlockEpoch | EpochRequest | BlockHash | Get the block hash of the first finalized block in a specified epoch. The following error cases are possible: * `NOT_FOUND` if the query specifies an unknown block. * `UNAVAILABLE` if the query is for an epoch that is not finalized in the current genesis index, or is for a future genesis index. * `INVALID_ARGUMENT` if the query is for an epoch with no finalized blocks for a past genesis index. * `INVALID_ARGUMENT` if the input `EpochRequest` is malformed. * `UNIMPLEMENTED` if the endpoint is disabled on the node. |
DryRun | DryRunRequest stream | DryRunResponse stream | Dry run a series of transactions and operations on a state derived from a specified block. The server should send a single `DryRunResponse` for each `DryRunRequest` received, unless the call fails with an error status code. If a request produces a `DryRunErrorResponse`, then the server will still process subsequent requests, just as if the request causing the error did not happen. The first request should be `load_block_at_state` to determine the block state that will be used for the dry run. The server associates each request with an energy cost, and limits the total energy that may be expended in a single invocation of `DryRun`. This limit is reported as `quota` in the initial metadata returned by the server. If executing an operation exceeds the limit, the server terminates the session with `RESOURCE_EXHAUSTED`. The server also imposes a timeout for a dry-run session to complete. The server reports the timeout duration in milliseconds in the initial metadata field `timeout`. If the session is not completed before the timeout elapses, the server terminates the session with `DEADLINE_EXCEEDED`. The following error cases are possible: * `INVALID_ARGUMENT` if any `DryRunRequest` is malformed. * `RESOURCE_EXHAUSTED` if the energy quota is exceeded. * `DEADLINE_EXCEEDED` if the session does not complete before the server-imposed timeout. * `RESOURCE_EXHAUSTED` if the server is not currently accepting new `DryRun` sessions. (The server may impose a limit on the number of concurrent sessions.) * `INTERNAL` if an interal server error occurs. This should not happen, and likely indicates a bug. * `UNIMPLEMENTED` if the endpoint is disabled on the node. |
Parameters to the node health query. The default message gives a good
default.
Response to the health check. A return code of "OK" is used for success, and
errors are handled via RPC status codes
Method Name | Request Type | Response Type | Description |
Check | NodeHealthRequest | NodeHealthResponse | Check the health of the node. By necessity this involves a number of heuristics since in a distributed network we have to rely on the local information only and we don't have authoritative data on, e.g., last finalized block. In particular, a node that is not caught up to the head of the chain is not healthy. If possible the client should use other queries to get a more fine-grained understanding of the node health. However this endpoint should provide a reasonable default and is usable in cases where an automatic check is performed that does not allow for configuration, such as in load-balancers. |
.proto Type | Notes | C++ | Java | Python | Go | C# | PHP | Ruby |
double | double | double | float | float64 | double | float | Float | |
float | float | float | float | float32 | float | float | Float | |
int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long | int64 | long | integer/string | Bignum |
uint32 | Uses variable-length encoding. | uint32 | int | int/long | uint32 | uint | integer | Bignum or Fixnum (as required) |
uint64 | Uses variable-length encoding. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum or Fixnum (as required) |
sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long | int64 | long | integer/string | Bignum |
fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int | uint32 | uint | integer | Bignum or Fixnum (as required) |
fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum |
sfixed32 | Always four bytes. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
sfixed64 | Always eight bytes. | int64 | long | int/long | int64 | long | integer/string | Bignum |
bool | bool | boolean | boolean | bool | bool | boolean | TrueClass/FalseClass | |
string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | string | string | string | String (UTF-8) |
bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str | []byte | ByteString | string | String (ASCII-8BIT) |