Protocol Documentation

Table of Contents

v2/concordium/types.proto

Top

AbsoluteBlockHeight

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.

FieldTypeLabelDescription
value uint64

AccessStructure

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.

FieldTypeLabelDescription
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.

AccountAddress

An address of an account. Always 32 bytes.

FieldTypeLabelDescription
value bytes

AccountCreationDetails

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.

FieldTypeLabelDescription
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.

AccountCredential

Credential that is part of an account.

FieldTypeLabelDescription
initial InitialCredentialValues

normal NormalCredentialValues

AccountIdentifierInput

Input to queries which take an account as a parameter.

FieldTypeLabelDescription
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.

AccountIndex

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.

FieldTypeLabelDescription
value uint64

AccountInfo

Information about the account at a particular point in time.

FieldTypeLabelDescription
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.

AccountInfo.CredsEntry

FieldTypeLabelDescription
key uint32

value AccountCredential

AccountInfoRequest

Request for account information.

FieldTypeLabelDescription
block_hash BlockHashInput

Block in which to query the account information.

account_identifier AccountIdentifierInput

Specification of the account.

AccountSignatureMap

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.

FieldTypeLabelDescription
signatures AccountSignatureMap.SignaturesEntry repeated

AccountSignatureMap.SignaturesEntry

FieldTypeLabelDescription
key uint32

value Signature

AccountStakingInfo

Information about the account stake, if the account is either a baker or a

delegator.

FieldTypeLabelDescription
baker AccountStakingInfo.Baker

The account is a baker.

delegator AccountStakingInfo.Delegator

The account is a delegator.

AccountStakingInfo.Baker

FieldTypeLabelDescription
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.

AccountStakingInfo.Delegator

FieldTypeLabelDescription
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.

AccountThreshold

The number of credentials required to sign an account transaction.

FieldTypeLabelDescription
value uint32

AccountTransaction

Account transactions are messages which are signed and paid for by the sender

account.

FieldTypeLabelDescription
signature AccountTransactionSignature

header AccountTransactionHeader

payload AccountTransactionPayload

AccountTransactionDetails

Details about an account transaction.

FieldTypeLabelDescription
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.

AccountTransactionEffects

Effects of an account transaction. All variants except `None`

correspond to a unique transaction that was successful.

FieldTypeLabelDescription
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.

AccountTransactionEffects.AccountTransfer

A simple account to account transfer occurred. This is the result of a

successful Transfer transaction.

FieldTypeLabelDescription
amount Amount

Amount that was transferred.

receiver AccountAddress

Receiver account.

memo Memo optional

Memo.

AccountTransactionEffects.BakerConfigured

A baker was configured. The details of what happened are contained in

the list of BakerEvents.

FieldTypeLabelDescription
events BakerEvent repeated

AccountTransactionEffects.BakerStakeUpdated

An account was deregistered as a baker. This is the result of a

successful UpdateBakerStake transaction.

FieldTypeLabelDescription
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.

AccountTransactionEffects.ContractUpdateIssued

A contract update transaction was issued and produced the given trace.

This is the result of Update transaction.

FieldTypeLabelDescription
effects ContractTraceElement repeated

AccountTransactionEffects.CredentialsUpdated

Account's credentials were updated. This is the result of a

successful UpdateCredentials transaction.

FieldTypeLabelDescription
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.

AccountTransactionEffects.DelegationConfigured

An account configured delegation. The details of what happened are

contained in the list of DelegationEvents.

FieldTypeLabelDescription
events DelegationEvent repeated

AccountTransactionEffects.EncryptedAmountTransferred

An encrypted amount was transferred. This is the result of a successful

EncryptedAmountTransfer transaction.

FieldTypeLabelDescription
removed EncryptedAmountRemovedEvent

added NewEncryptedAmountEvent

memo Memo optional

AccountTransactionEffects.None

No effects other than payment from this transaction.

The rejection reason indicates why the transaction failed.

FieldTypeLabelDescription
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.

AccountTransactionEffects.TransferredToPublic

An account transferred part of its encrypted balance to its public

balance. This is the result of a successful TransferToPublic transaction.

FieldTypeLabelDescription
removed EncryptedAmountRemovedEvent

amount Amount

AccountTransactionEffects.TransferredWithSchedule

A transfer with schedule was performed. This is the result of a

successful TransferWithSchedule transaction.

FieldTypeLabelDescription
receiver AccountAddress

Receiver account.

amount NewRelease repeated

The list of releases. Ordered by increasing timestamp.

memo Memo optional

Optional memo.

AccountTransactionHeader

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.

FieldTypeLabelDescription
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.

AccountTransactionPayload

The payload for an account transaction.

FieldTypeLabelDescription
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

AccountTransactionSignHash

Signature on an account transaction is defined to be the signature on the

hash of the `PreAccountTransaction`.

FieldTypeLabelDescription
value bytes

AccountTransactionSignature

FieldTypeLabelDescription
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.

AccountTransactionSignature.SignaturesEntry

FieldTypeLabelDescription
key uint32

value AccountSignatureMap

AccountVerifyKey

A public key used to verify transaction signatures from an account.

FieldTypeLabelDescription
ed25519_key bytes

Address

An address of either a contract or an account.

FieldTypeLabelDescription
account AccountAddress

contract ContractAddress

Amount

An amount of microCCD.

FieldTypeLabelDescription
value uint64

AmountFraction

A fraction of an amount with a precision of `1/100_000`.

FieldTypeLabelDescription
parts_per_hundred_thousand uint32

Must not exceed 100000.

AncestorsRequest

Request the ancestors for the given block.

FieldTypeLabelDescription
block_hash BlockHashInput

The block to get ancestors of.

amount uint64

The maximum number of ancestors returned.

ArInfo

Information on a single anonymity revoker help by the identity provider.

Typically an identity provider will hold more than one.

FieldTypeLabelDescription
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.

ArInfo.ArIdentity

Identity of the anonymity revoker on the chain. This defines their

evaluateion point for secret sharing, and thus it cannot be 0.

FieldTypeLabelDescription
value uint32

ArInfo.ArPublicKey

Public key of an anonymity revoker.

FieldTypeLabelDescription
value bytes

ArThreshold

The number of anonymity revokers needed to revoke anonymity of a credential

holder.

FieldTypeLabelDescription
value uint32

ArrivedBlockInfo

Information about an arrived block that is part of the streaming response.

FieldTypeLabelDescription
hash BlockHash

Hash of the block.

height AbsoluteBlockHeight

Absolute height of the block, height 0 is the genesis block.

AuthorizationsV0

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.

FieldTypeLabelDescription
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.

AuthorizationsV1

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.

FieldTypeLabelDescription
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.

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.

FieldTypeLabelDescription
value bytes

BakerElectionVerifyKey

Baker's public key used to check whether they won the lottery or not.

FieldTypeLabelDescription
value bytes

BakerEvent

Events that may result from the ConfigureBaker transaction.

FieldTypeLabelDescription
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.

BakerEvent.BakerAdded

A baker was added.

FieldTypeLabelDescription
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.

BakerEvent.BakerRestakeEarningsUpdated

FieldTypeLabelDescription
baker_id BakerId

Baker's id.

restake_earnings bool

The new value of the flag.

BakerEvent.BakerSetBakingRewardCommission

Updated baking reward commission for baker pool

FieldTypeLabelDescription
baker_id BakerId

Baker's id

baking_reward_commission AmountFraction

The baking reward commission

BakerEvent.BakerSetFinalizationRewardCommission

Updated finalization reward commission for baker pool

FieldTypeLabelDescription
baker_id BakerId

Baker's id

finalization_reward_commission AmountFraction

The finalization reward commission

BakerEvent.BakerSetMetadataUrl

Updated metadata url for a baker pool.

FieldTypeLabelDescription
baker_id BakerId

Baker's id.

url string

The URL.

BakerEvent.BakerSetOpenStatus

Updated open status for a baker pool.

FieldTypeLabelDescription
baker_id BakerId

Baker's id.

open_status OpenStatus

The new open status.

BakerEvent.BakerSetTransactionFeeCommission

Updated transaction fee commission for a baker pool.

FieldTypeLabelDescription
baker_id BakerId

Baker's id.

transaction_fee_commission AmountFraction

The transaction fee commission.

BakerEvent.BakerStakeDecreased

FieldTypeLabelDescription
baker_id BakerId

Baker's id.

new_stake Amount

The new stake.

BakerEvent.BakerStakeIncreased

Baker stake increased.

FieldTypeLabelDescription
baker_id BakerId

Baker's id.

new_stake Amount

The new stake.

BakerId

The ID of a baker, which is the index of its account.

FieldTypeLabelDescription
value uint64

BakerInfo

Information about a baker.

FieldTypeLabelDescription
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.

BakerKeysEvent

Result of a successful change of baker keys.

FieldTypeLabelDescription
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.

BakerPoolInfo

Additional information about a baking pool.

This information is added with the introduction of delegation.

FieldTypeLabelDescription
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.

BakerRewardPeriodInfo

Information about a particular baker with respect to

the current reward period.

FieldTypeLabelDescription
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.

BakerSignatureVerifyKey

Baker's public key used to check that they are indeed the ones who

produced the block.

FieldTypeLabelDescription
value bytes

BakerStakeThreshold

Minimum stake needed to become a baker. This only applies to protocol version

1-3.

FieldTypeLabelDescription
baker_stake_threshold Amount

Minimum threshold required for registering as a baker.

BakerStakeUpdatedData

FieldTypeLabelDescription
baker_id BakerId

Affected baker.

new_stake Amount

New stake.

increased bool

A boolean which indicates whether it increased (`true`) or decreased (`false`).

BannedPeer

A banned peer

FieldTypeLabelDescription
ip_address IpAddress

The IP address of the banned peer.

BannedPeers

The banned peers given by

their IP addresses.

FieldTypeLabelDescription
peers BannedPeer repeated

BlockCertificates

Certificates for a block for protocols supporting

ConcordiumBFT.

FieldTypeLabelDescription
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.

BlockFinalizationSummary

Finalization summary that may or may not be part of the block.

FieldTypeLabelDescription
none Empty

There is no finalization data in the block.

record FinalizationSummary

There is a single finalization record with the block.

BlockHash

Hash of a block. This is always 32 bytes long.

FieldTypeLabelDescription
value bytes

BlockHashInput

Input to queries which take a block as a parameter.

FieldTypeLabelDescription
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.

BlockHashInput.RelativeHeight

Request using a relative block height.

FieldTypeLabelDescription
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`).

BlockHeight

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.

FieldTypeLabelDescription
value uint64

BlockInfo

The response for GetBlockInfo.

FieldTypeLabelDescription
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.

BlockItem

FieldTypeLabelDescription
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.

BlockItemStatus

Status of a block item known to the node.

FieldTypeLabelDescription
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.

BlockItemStatus.Committed

FieldTypeLabelDescription
outcomes BlockItemSummaryInBlock repeated

BlockItemStatus.Finalized

FieldTypeLabelDescription
outcome BlockItemSummaryInBlock

BlockItemSummary

Summary of the outcome of a block item in structured form.

The summary determines which transaction type it was.

FieldTypeLabelDescription
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.

BlockItemSummary.TransactionIndex

FieldTypeLabelDescription
value uint64

BlockItemSummaryInBlock

A block item summary together with a block hash. Used in BlockItemStatus.

FieldTypeLabelDescription
block_hash BlockHash

The block hash.

outcome BlockItemSummary

The block item summary.

BlockSpecialEvent

A protocol generated event that is not directly caused by a transaction. This

includes minting new CCD, rewarding different bakers and delegators, etc.

FieldTypeLabelDescription
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

BlockSpecialEvent.AccountAmounts

A representation of a mapping from an account address to an amount.

FieldTypeLabelDescription
entries BlockSpecialEvent.AccountAmounts.Entry repeated

BlockSpecialEvent.AccountAmounts.Entry

The entry for the map.

FieldTypeLabelDescription
account AccountAddress

The key type

amount Amount

The value type

BlockSpecialEvent.BakingRewards

Payment to each baker of a previous epoch, in proportion to the number

of blocks they contributed.

FieldTypeLabelDescription
baker_rewards BlockSpecialEvent.AccountAmounts

The amount awarded to each baker.

remainder Amount

The remaining balance of the baker reward account.

BlockSpecialEvent.BlockAccrueReward

Amounts accrued to accounts for each baked block.

FieldTypeLabelDescription
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.

BlockSpecialEvent.BlockReward

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```

FieldTypeLabelDescription
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.

BlockSpecialEvent.FinalizationRewards

Payment to each finalizer on inclusion of a finalization record in a block.

FieldTypeLabelDescription
finalization_rewards BlockSpecialEvent.AccountAmounts

The amount awarded to each finalizer.

remainder Amount

The remaining balance of the finalization reward account.

BlockSpecialEvent.Mint

Minting of new CCD.

FieldTypeLabelDescription
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.

BlockSpecialEvent.PaydayAccountReward

Reward payment to the given account.

FieldTypeLabelDescription
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.

BlockSpecialEvent.PaydayFoundationReward

Foundation tax.

FieldTypeLabelDescription
foundation_account AccountAddress

The account that got rewarded.

development_charge Amount

The transaction fee reward at payday to the account.

BlockSpecialEvent.PaydayPoolReward

Payment distributed to a pool or passive delegators.

FieldTypeLabelDescription
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.

BlocksAtHeightRequest

Request for GetBlocksAtHeight.

FieldTypeLabelDescription
absolute BlocksAtHeightRequest.Absolute

relative BlocksAtHeightRequest.Relative

BlocksAtHeightRequest.Absolute

Request using an absolute block height.

FieldTypeLabelDescription
height AbsoluteBlockHeight

The absolute block height.

BlocksAtHeightRequest.Relative

Request using a relative block height.

FieldTypeLabelDescription
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`).

BlocksAtHeightResponse

Response for GetBlocksAtHeight.

FieldTypeLabelDescription
blocks BlockHash repeated

Live blocks at the given height.

Branch

Response type for GetBranches.

FieldTypeLabelDescription
block_hash BlockHash

The hash of the block.

children Branch repeated

Further blocks branching of this block.

CapitalBound

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.

FieldTypeLabelDescription
value AmountFraction

ChainArData

Data relating to a single anonymity revoker sent by the account holder to

the chain.

FieldTypeLabelDescription
enc_id_cred_pub_share bytes

Share of the encryption of IdCredPub.

ChainParameters

Chain parameters.

FieldTypeLabelDescription
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.

ChainParametersV0

Updatable chain parameters that apply to protocol versions 1-3.

FieldTypeLabelDescription
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.

ChainParametersV1

Updatable chain parameters that apply to protocol versions 4-5.

FieldTypeLabelDescription
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.

ChainParametersV2

Updatable chain parameters that apply to protocol versions 6.

FieldTypeLabelDescription
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

CommissionRanges

Ranges of allowed commission values that pools may choose from.

FieldTypeLabelDescription
finalization InclusiveRangeAmountFraction

The range of allowed finalization commissions.

baking InclusiveRangeAmountFraction

The range of allowed baker commissions.

transaction InclusiveRangeAmountFraction

The range of allowed transaction commissions.

CommissionRates

Distribution of the rewards for the particular pool.

FieldTypeLabelDescription
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.

Commitment

A single commitment in the G1 group of the BLS curve. This is always 48 bytes

in length.

FieldTypeLabelDescription
value bytes

ConsensusInfo

The response for GetConsensusInfo.

FieldTypeLabelDescription
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.

ConsensusParametersV1

Parameters for the consensus protocol used from protocol version 6.

FieldTypeLabelDescription
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.

ContractAddress

Address of a smart contract instance.

FieldTypeLabelDescription
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.

ContractEvent

An event generated by a smart contract.

FieldTypeLabelDescription
value bytes

ContractInitializedEvent

Data generated as part of initializing a single contract instance.

FieldTypeLabelDescription
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.

ContractStateV0

A smart contract v0 state.

FieldTypeLabelDescription
value bytes

ContractTraceElement

Effects produced by successful smart contract invocations.

A single invocation will produce a sequence of these effects.

FieldTypeLabelDescription
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.

ContractTraceElement.Interrupted

A contract was interrupted.

This occurs when a contract invokes another contract or makes a transfer to an account.

FieldTypeLabelDescription
address ContractAddress

The contract interrupted.

events ContractEvent repeated

The events generated up until the interruption.

ContractTraceElement.Resumed

A previously interrupted contract was resumed.

FieldTypeLabelDescription
address ContractAddress

The contract resumed.

success bool

Whether the action that caused the interruption (invoke contract or make transfer) was successful or not.

ContractTraceElement.Transferred

A contract transferred an amount to an account.

FieldTypeLabelDescription
sender ContractAddress

Sender contract.

amount Amount

Amount transferred.

receiver AccountAddress

Receiver account.

ContractTraceElement.Upgraded

A previously interrupted contract was resumed.

FieldTypeLabelDescription
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.

CooldownParametersCpv1

FieldTypeLabelDescription
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.

CredentialCommitments

Commitments that are part of a normal credential.

FieldTypeLabelDescription
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.

CredentialCommitments.AttributesEntry

FieldTypeLabelDescription
key uint32

value Commitment

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.

FieldTypeLabelDescription
message_expiry TransactionTime

raw_payload bytes

A raw payload, which is just the encoded payload. A typed variant might be added in the future.

CredentialIndex

Index of a credential on an account.

FieldTypeLabelDescription
value uint32

CredentialPublicKeys

Public keys of a single credential.

FieldTypeLabelDescription
keys CredentialPublicKeys.KeysEntry repeated

threshold SignatureThreshold

CredentialPublicKeys.KeysEntry

FieldTypeLabelDescription
key uint32

value AccountVerifyKey

CredentialRegistrationId

A registration ID of a credential, derived from the secret PRF key and a

nonce. This is always 48 bytes long.

FieldTypeLabelDescription
value bytes

CredentialsPerBlockLimit

The number of credential deployments allowed in a block. This in effect

determines the number of accounts that can be created in a block.

FieldTypeLabelDescription
value uint32

CryptographicParameters

The response for GetCryptographicParameters.

FieldTypeLabelDescription
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.

DelegationEvent

FieldTypeLabelDescription
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.

DelegationEvent.DelegationSetDelegationTarget

FieldTypeLabelDescription
delegator_id DelegatorId

Delegator's id

delegation_target DelegationTarget

New delegation target

DelegationEvent.DelegationSetRestakeEarnings

FieldTypeLabelDescription
delegator_id DelegatorId

Delegator's id

restake_earnings bool

Whether earnings will be restaked

DelegationEvent.DelegationStakeDecreased

FieldTypeLabelDescription
delegator_id DelegatorId

Delegator's id

new_stake Amount

New stake

DelegationEvent.DelegationStakeIncreased

FieldTypeLabelDescription
delegator_id DelegatorId

Delegator's id

new_stake Amount

New stake

DelegationTarget

Entity to which the account delegates a portion of its stake.

FieldTypeLabelDescription
passive Empty

Delegate passively, i.e., to no specific baker.

baker BakerId

Delegate to a specific baker.

DelegatorId

The identifier for a delegator.

FieldTypeLabelDescription
id AccountIndex

DelegatorInfo

Stream item for GetPoolDelegators and GetPassiveDelegators.

FieldTypeLabelDescription
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.

DelegatorRewardPeriodInfo

Stream item for GetPoolDelegatorsRewardPeriod and GetPassiveDelegatorsRewardPeriod.

FieldTypeLabelDescription
account AccountAddress

The delegator account address.

stake Amount

The amount of stake currently staked to the pool.

Description

Description either of an anonymity revoker or identity provider.

Metadata that should be visible on the chain.

FieldTypeLabelDescription
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.

DryRunErrorResponse

FieldTypeLabelDescription
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'.

DryRunErrorResponse.AccountNotFound

The specified account was not found.

DryRunErrorResponse.AmountOverLimit

The amount that was requested to be minted would overflow the total supply.

FieldTypeLabelDescription
amount_limit Amount

The maximum amount that can be minted without overflowing the supply.

DryRunErrorResponse.BalanceInsufficient

The sender account for the transaction has insufficient balance to pay the preliminary fees

for the transaction to be included in a block.

FieldTypeLabelDescription
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.

DryRunErrorResponse.BlockNotFound

The requested block was not found, so its state could not be loaded.

DryRunErrorResponse.EnergyInsufficient

The energy made available for the transaction is insufficient to cover the basic processing

required to include a transaction in a block.

FieldTypeLabelDescription
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.

DryRunErrorResponse.InstanceNotFound

The specified instance was not found.

DryRunErrorResponse.InvokeFailure

Invoking the smart contract instance failed.

FieldTypeLabelDescription
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.

DryRunErrorResponse.NoState

The current block state is undefined. It should be initialized with

a 'load_block_state' request before any other operations.

DryRunInvokeInstance

Invoke an entrypoint on a smart contract instance.

FieldTypeLabelDescription
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.

DryRunMintToAccount

Mint a specified amount and credit it to the specified account as part of a dry run.

FieldTypeLabelDescription
account AccountAddress

The account to mint to.

amount Amount

The amount to mint and credit to the account.

DryRunRequest

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.

FieldTypeLabelDescription
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.

DryRunResponse

A response to a `DryRunRequest`.

FieldTypeLabelDescription
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.

DryRunSignature

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.

FieldTypeLabelDescription
credential uint32

Credential index. Must not exceed 255.

key uint32

Key index. Must not exceed 255.

DryRunStateOperation

An operation that can update the state as part of a dry run.

FieldTypeLabelDescription
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.

DryRunStateQuery

Run a query as part of a dry run. Queries do not update the block state.

FieldTypeLabelDescription
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.

DryRunSuccessResponse

The dry run operation completed successfully.

FieldTypeLabelDescription
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'.

DryRunSuccessResponse.BlockStateLoaded

The block state at the specified block was successfully loaded.

FieldTypeLabelDescription
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.

DryRunSuccessResponse.InvokeSuccess

The smart contract instance was invoked successfully.

FieldTypeLabelDescription
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.

DryRunSuccessResponse.MintedToAccount

The specified amount was minted to the specified account.

DryRunSuccessResponse.TimestampSet

The current apparent timestamp was updated to the specified value.

DryRunSuccessResponse.TransactionExecuted

The transaction was executed.

FieldTypeLabelDescription
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.

DryRunTransaction

Dry run an account transaction

FieldTypeLabelDescription
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.

DumpRequest

Request to enable dumping of network packages.

FieldTypeLabelDescription
file string

Which file to dump the packages into. Requires a valid path.

raw bool

Whether the node should dump raw packages.

Duration

A duration of milliseconds.

FieldTypeLabelDescription
value uint64

DurationSeconds

A duration in seconds.

FieldTypeLabelDescription
value uint64

ElectionDifficulty

Election difficulty parameter.

FieldTypeLabelDescription
value AmountFraction

ElectionInfo

Response type for GetElectionInfo.

Contains information related to baker election for a perticular block.

FieldTypeLabelDescription
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.

ElectionInfo.Baker

FieldTypeLabelDescription
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".

Empty

A message that contains no information.

EncryptedAmount

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.

FieldTypeLabelDescription
value bytes

EncryptedAmountRemovedEvent

Event generated when one or more encrypted amounts are consumed from the account.

FieldTypeLabelDescription
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.

EncryptedBalance

FieldTypeLabelDescription
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.

EncryptedSelfAmountAddedEvent

FieldTypeLabelDescription
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.

EncryptionKey

An account encryption key. Always 96 bytes.

FieldTypeLabelDescription
value bytes

Energy

Energy is used to count exact execution cost.

This cost is then converted to CCD amounts.

FieldTypeLabelDescription
value uint64

Epoch

A chain epoch.

FieldTypeLabelDescription
value uint64

EpochFinalizationEntry

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'.

FieldTypeLabelDescription
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.

EpochRequest

Input to queries which take an epoch as a parameter.

FieldTypeLabelDescription
relative_epoch EpochRequest.RelativeEpoch

Query by genesis index and epoch number.

block_hash BlockHashInput

Query for the epoch of a specified block.

EpochRequest.RelativeEpoch

Request an epoch by number at a given genesis index.

FieldTypeLabelDescription
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.

ExchangeRate

Represents an exchange rate.

FieldTypeLabelDescription
value Ratio

FinalizationCommitteeParameters

Finalization committee parameters used from protocol version 6

FieldTypeLabelDescription
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`

FinalizationIndex

Index of the finalization round. This increases on each successfully

completed finalization.

FieldTypeLabelDescription
value uint64

FinalizationSummary

Details about a finalization record included in a block.

FieldTypeLabelDescription
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.

FinalizationSummaryParty

Details about a finalizer for the finalization round.

FieldTypeLabelDescription
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.

FinalizedBlockInfo

Information about a finalized block that is part of the streaming response.

FieldTypeLabelDescription
hash BlockHash

Hash of the block.

height AbsoluteBlockHeight

Absolute height of the block, height 0 is the genesis block.

FinalizerRound

The finalizer round is a map from a 'Round'

to the list of finalizers (identified by their 'BakerId') that signed

off the round.

FieldTypeLabelDescription
round Round

The round that was signed off.

finalizers BakerId repeated

The finalizers (identified by their 'BakerId' that signed off the in 'round'.

GasRewards

Distribution of gas rewards for chain parameters version 0 and 1.

FieldTypeLabelDescription
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.

GasRewardsCpv2

Distribution of gas rewards for chain parameters version 2.

FieldTypeLabelDescription
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.

GenesisIndex

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.

FieldTypeLabelDescription
value uint32

GetPoolDelegatorsRequest

Request for GetPoolDelegators and GetPoolDelegatorsRewardPeriod.

FieldTypeLabelDescription
block_hash BlockHashInput

Block in which to query the delegators.

baker BakerId

The 'BakerId' of the pool owner.

HigherLevelKeys

Represents root or level 1 keys.

FieldTypeLabelDescription
keys UpdatePublicKey repeated

The keys.

threshold UpdateKeysThreshold

The number of keys needed to make a chain update.

IdentityProviderIdentity

An index of the identity provider that identifies them uniquely in the

context of a specific chain.

FieldTypeLabelDescription
value uint32

InclusiveRangeAmountFraction

Inclusive range of amount fractions.

FieldTypeLabelDescription
min AmountFraction

max_ AmountFraction

InitContractPayload

Data required to initialize a new contract instance.

FieldTypeLabelDescription
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.

InitName

The init name of a smart contract function. Expected format:

`init_`. It must only consist of atmost 100 ASCII alphanumeric

or punctuation characters, must not contain a '.' and must start with

'init_'.

FieldTypeLabelDescription
value string

InitialCredentialValues

Values contained in an initial credential.

FieldTypeLabelDescription
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.

InstanceInfo

Information about a smart contract instance.

FieldTypeLabelDescription
v0 InstanceInfo.V0

v1 InstanceInfo.V1

InstanceInfo.V0

Version 0 smart contract instance information.

FieldTypeLabelDescription
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.

InstanceInfo.V1

Version 1 smart contract instance information.

FieldTypeLabelDescription
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.

InstanceInfoRequest

Request for getting information about a smart contract instance.

FieldTypeLabelDescription
block_hash BlockHashInput

The block to be used for the query.

address ContractAddress

The address of the smart contract instance.

InstanceStateKVPair

A smart contract instance key-value pair.

FieldTypeLabelDescription
key bytes

value bytes

InstanceStateLookupRequest

Request for a specific key of a smart contract instance state.

FieldTypeLabelDescription
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.

InstanceStateValueAtKey

Value at the requested key of a smart contract instance state. For V0

contracts this will always be the entire state of the contract.

FieldTypeLabelDescription
value bytes

InstanceUpdatedEvent

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.

FieldTypeLabelDescription
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.

InvokeInstanceRequest

Request for InvokeInstance.

FieldTypeLabelDescription
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.

InvokeInstanceResponse

Response type for InvokeInstance.

FieldTypeLabelDescription
success InvokeInstanceResponse.Success

failure InvokeInstanceResponse.Failure

InvokeInstanceResponse.Failure

Contract execution failed.

FieldTypeLabelDescription
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.

InvokeInstanceResponse.Success

Contract execution succeeded.

FieldTypeLabelDescription
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.

IpAddress

A request to send a new block item to the chain.

An IP address

FieldTypeLabelDescription
value string

IpIdentity

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.

FieldTypeLabelDescription
value uint32

IpInfo

Public information about an identity provider.

FieldTypeLabelDescription
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.

IpInfo.IpCdiVerifyKey

Ed25519 public key of the identity provider.

FieldTypeLabelDescription
value bytes

IpInfo.IpVerifyKey

Pointcheval-Sanders public key of the identity provider.

FieldTypeLabelDescription
value bytes

IpSocketAddress

A socket address consisting of

an IP + port.

FieldTypeLabelDescription
ip IpAddress

port Port

LeadershipElectionNonce

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.

FieldTypeLabelDescription
value bytes

Level1Update

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.

FieldTypeLabelDescription
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.

LeverageFactor

A leverage factor.

FieldTypeLabelDescription
value Ratio

Memo

A memo which can be included as part of a transfer. Max size is 256 bytes.

FieldTypeLabelDescription
value bytes

MintDistributionCpv0

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.

FieldTypeLabelDescription
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.

MintDistributionCpv1

Mint distribution payload as it looks in protocol version 4 and onward.

FieldTypeLabelDescription
baking_reward AmountFraction

finalization_reward AmountFraction

MintRate

A minting rate of CCD.

The value is `mantissa * 10^(-exponent)`.

FieldTypeLabelDescription
mantissa uint32

exponent uint32

This will never exceed 255 and can thus be stored in a single byte.

ModuleRef

A smart contract module reference. This is always 32 bytes long.

FieldTypeLabelDescription
value bytes

ModuleSourceRequest

Request for getting the source of a smart contract module.

FieldTypeLabelDescription
block_hash BlockHashInput

The block to be used for the query.

module_ref ModuleRef

The reference of the module.

NewEncryptedAmountEvent

Event generated when an account receives a new encrypted amount.

FieldTypeLabelDescription
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.

NewRelease

A new individual release. Part of a single transfer with schedule transaction.

FieldTypeLabelDescription
timestamp Timestamp

Effective time of the release in milliseconds since unix epoch.

amount Amount

Amount to be released.

NextAccountSequenceNumber

The response for getNextAccountSequenceNumber.

FieldTypeLabelDescription
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.

NextUpdateSequenceNumbers

The response for `GetNextUpdateSequenceNumbers`.

FieldTypeLabelDescription
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

NodeInfo

Node info response

Contains various information of the

enquired node.

FieldTypeLabelDescription
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.

NodeInfo.BakerConsensusInfo

Consensus info for a node configured with baker keys.

FieldTypeLabelDescription
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.

NodeInfo.BakerConsensusInfo.ActiveBakerCommitteeInfo

Tagging message type for a node that

is configured with baker keys and active in

the current baking committee

NodeInfo.BakerConsensusInfo.ActiveFinalizerCommitteeInfo

Tagging message type for a node that

is configured with baker keys and active in

the current finalizer committee (and also baking committee).

NodeInfo.NetworkInfo

Network related information of the node.

FieldTypeLabelDescription
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.

NodeInfo.Node

The node is a regular node.

FieldTypeLabelDescription
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.

NormalCredentialValues

Values contained in a normal (non-initial) credential.

FieldTypeLabelDescription
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.

NormalCredentialValues.ArDataEntry

FieldTypeLabelDescription
key uint32

value ChainArData

Parameter

Parameter to a smart contract initialization or invocation.

FieldTypeLabelDescription
value bytes

PassiveDelegationInfo

Type for the response of GetPassiveDelegationInfo.

Contains information about passive delegators at the end of a given block.

FieldTypeLabelDescription
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.

PeerId

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.

FieldTypeLabelDescription
value string

PeerToBan

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.

FieldTypeLabelDescription
ip_address IpAddress

PeersInfo

Peers and their associated network related statistics

FieldTypeLabelDescription
peers PeersInfo.Peer repeated

PeersInfo.Peer

A peer that the node is connected to.

FieldTypeLabelDescription
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.

PeersInfo.Peer.NetworkStats

Network statistics for the peer

FieldTypeLabelDescription
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.

PendingUpdate

A pending update.

FieldTypeLabelDescription
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

Policy on a credential.

FieldTypeLabelDescription
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.

Policy.AttributesEntry

FieldTypeLabelDescription
key uint32

value bytes

PoolCurrentPaydayInfo

Information about a baker pool in the current reward period.

FieldTypeLabelDescription
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.

PoolInfoRequest

Request for GetPoolInfo.

FieldTypeLabelDescription
block_hash BlockHashInput

Block in which to query the pool information.

baker BakerId

The 'BakerId' of the pool owner.

PoolInfoResponse

Type for the response of GetPoolInfo.

Contains information about a given pool at the end of a given block.

FieldTypeLabelDescription
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.

PoolParametersCpv1

Parameters related to staking pools.

FieldTypeLabelDescription
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.

PoolPendingChange

A pending change to a baker pool.

FieldTypeLabelDescription
reduce PoolPendingChange.Reduce

remove PoolPendingChange.Remove

PoolPendingChange.Reduce

A reduction in baker equity capital is pending.

FieldTypeLabelDescription
reduced_equity_capital Amount

New baker equity capital.

effective_time Timestamp

Timestamp when the change takes effect.

PoolPendingChange.Remove

Removal of the pool is pending.

FieldTypeLabelDescription
effective_time Timestamp

Timestamp when the change takes effect.

Port

A port

Valid port numbers are expected thus

the value is expected to be in the range (0..u16::MAX).

FieldTypeLabelDescription
value uint32

PreAccountTransaction

An unsigned account transaction. This is used with the

`GetTransactionSignHash` endpoint to obtain the message to sign.

FieldTypeLabelDescription
header AccountTransactionHeader

payload AccountTransactionPayload

ProtocolUpdate

FieldTypeLabelDescription
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.

QuorumCertificate

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.

FieldTypeLabelDescription
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.

QuorumSignature

The signature of a 'QuorumCertificate'.

FieldTypeLabelDescription
value bytes

The bytes representing the raw aggregate signature. The bytes have a fixed length of 48 bytes.

Ratio

Represents a ratio, i.e., 'numerator / denominator'.

FieldTypeLabelDescription
numerator uint64

The numerator.

denominator uint64

The denominator.

ReceiveName

The receive name of a smart contract function. Expected format:

`.`. It must only consist of atmost 100 ASCII

alphanumeric or punctuation characters, and must contain a '.'.

FieldTypeLabelDescription
value string

RegisteredData

Data registered on the chain with a register data transaction.

FieldTypeLabelDescription
value bytes

RejectReason

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.

FieldTypeLabelDescription
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.

RejectReason.AmountTooLarge

FieldTypeLabelDescription
address Address

amount Amount

RejectReason.DuplicateCredIds

FieldTypeLabelDescription
ids CredentialRegistrationId repeated

RejectReason.InvalidInitMethod

FieldTypeLabelDescription
module_ref ModuleRef

init_name InitName

RejectReason.InvalidReceiveMethod

FieldTypeLabelDescription
module_ref ModuleRef

receive_name ReceiveName

RejectReason.NonExistentCredIds

FieldTypeLabelDescription
ids CredentialRegistrationId repeated

RejectReason.RejectedInit

FieldTypeLabelDescription
reject_reason int32

RejectReason.RejectedReceive

FieldTypeLabelDescription
reject_reason int32

contract_address ContractAddress

receive_name ReceiveName

parameter Parameter

Release

An individual release of a locked balance.

FieldTypeLabelDescription
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.

ReleaseSchedule

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.

FieldTypeLabelDescription
total Amount

Total amount locked in the release schedule.

schedules Release repeated

A list of releases, ordered by increasing timestamp.

RewardPeriodLength

Length of a reward period in epochs.

Must always be a strictly positive number.

FieldTypeLabelDescription
value Epoch

RootUpdate

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.

FieldTypeLabelDescription
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.

Round

A round.

FieldTypeLabelDescription
value uint64

SendBlockItemRequest

FieldTypeLabelDescription
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.

SequenceNumber

A sequence number that determines the ordering of transactions from the

account. The minimum sequence number is 1.

FieldTypeLabelDescription
value uint64

The sequence number.

Sha256Hash

A SHA256 hash. This is always 32 bytes long.

FieldTypeLabelDescription
value bytes

Signature

A single signature. Used when sending block items to a node with

`SendBlockItem`.

FieldTypeLabelDescription
value bytes

SignatureMap

A signature on an update instruction.

The type `UpdateKeysIndex` is not used directly, as messages cannot be keys in maps.

FieldTypeLabelDescription
signatures SignatureMap.SignaturesEntry repeated

SignatureMap.SignaturesEntry

FieldTypeLabelDescription
key uint32

value Signature

SignatureThreshold

The number of signatures required to sign.

FieldTypeLabelDescription
value uint32

Slot

A number representing a slot for baking a block.

FieldTypeLabelDescription
value uint64

StakePendingChange

Pending change to the stake either of a baker or delegator.

FieldTypeLabelDescription
reduce StakePendingChange.Reduce

remove Timestamp

Remove the stake. The value is a Unix timestamp of the effective time in milliseconds.

StakePendingChange.Reduce

FieldTypeLabelDescription
new_stake Amount

effective_time Timestamp

Unix timestamp in milliseconds when the change takes effect.

StateHash

Hash of the state after some block. This is always 32 bytes long.

FieldTypeLabelDescription
value bytes

SuccessorProof

A proof that establishes that the successor block of

a 'EpochFinalizationEntry' is the immediate successor of

the finalized block.

FieldTypeLabelDescription
value bytes

The proof represented as raw bytes. The bytes have a fixed length of 32 bytes.

TimeParametersCpv1

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.

FieldTypeLabelDescription
reward_period_length RewardPeriodLength

mint_per_payday MintRate

TimeoutCertificate

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.

FieldTypeLabelDescription
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.

TimeoutParameters

Parameters that determine timeouts in the consensus protocol used from protocol version 6.

FieldTypeLabelDescription
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.

TimeoutSignature

The signature of a 'TimeoutCertificate'.

FieldTypeLabelDescription
value bytes

The bytes representing the raw aggregate signature. The bytes have a fixed length of 48 bytes.

Timestamp

Unix timestamp in milliseconds.

FieldTypeLabelDescription
value uint64

TokenomicsInfo

Type for the response of GetTokenomicsInfo.

Contains information related to tokenomics at the end of a given block.

FieldTypeLabelDescription
v0 TokenomicsInfo.V0

v1 TokenomicsInfo.V1

TokenomicsInfo.V0

Version 0 tokenomics.

FieldTypeLabelDescription
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.

TokenomicsInfo.V1

Version 1 tokenomics.

FieldTypeLabelDescription
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.

TransactionFeeDistribution

Parameters determining the distribution of transaction fees.

FieldTypeLabelDescription
baker AmountFraction

The fraction allocated to the baker.

gas_account AmountFraction

The fraction allocated to the GAS account.

TransactionHash

Hash of a transaction. This is always 32 bytes long.

FieldTypeLabelDescription
value bytes

TransactionTime

Transaction time specified as seconds since unix epoch.

FieldTypeLabelDescription
value uint64

TransferPayload

Payload of a transfer between two accounts.

FieldTypeLabelDescription
amount Amount

Amount of CCD to send.

receiver AccountAddress

Receiver address.

TransferWithMemoPayload

Payload of a transfer between two accounts with a memo.

FieldTypeLabelDescription
amount Amount

Amount of CCD to send.

receiver AccountAddress

Receiver address.

memo Memo

Memo to include with the transfer.

UpdateContractPayload

Data required to update a contract instance.

FieldTypeLabelDescription
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.

UpdateDetails

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.

FieldTypeLabelDescription
effective_time TransactionTime

The time at which the update will be effective.

payload UpdatePayload

The paylaod for the update.

UpdateInstruction

FieldTypeLabelDescription
signatures SignatureMap

A map from `UpdateKeysIndex` to `Signature`. Keys must not exceed 2^16.

header UpdateInstructionHeader

payload UpdateInstructionPayload

UpdateInstructionHeader

FieldTypeLabelDescription
sequence_number UpdateSequenceNumber

effective_time TransactionTime

timeout TransactionTime

UpdateInstructionPayload

The payload for an UpdateInstruction.

FieldTypeLabelDescription
raw_payload bytes

A raw payload encoded according to the format defined by the protocol.

UpdateKeysIndex

Index of a key in an authorizations update payload.

FieldTypeLabelDescription
value uint32

UpdateKeysThreshold

The threshold for how many UpdatePublicKeys are need to make a certain chain update.

FieldTypeLabelDescription
value uint32

Is ensured to be within between 1 and 2^16.

UpdatePayload

The payload of a chain update.

FieldTypeLabelDescription
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).

UpdatePublicKey

A public key used for chain updates.

FieldTypeLabelDescription
value bytes

UpdateSequenceNumber

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.

FieldTypeLabelDescription
value uint64

The sequence number.

VersionedModuleSource

Source bytes of a versioned smart contract module.

FieldTypeLabelDescription
v0 VersionedModuleSource.ModuleSourceV0

v1 VersionedModuleSource.ModuleSourceV1

VersionedModuleSource.ModuleSourceV0

Source bytes of a smart contract v0 module.

FieldTypeLabelDescription
value bytes

VersionedModuleSource.ModuleSourceV1

Source bytes of a smart contract v1 module.

FieldTypeLabelDescription
value bytes

WinningBaker

Details of which baker won the lottery in a given round in consensus version 1.

FieldTypeLabelDescription
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.

YearMonth

Representation of the pair of a year and month.

FieldTypeLabelDescription
year uint32

month uint32

ContractVersion

Version of smart contract.

NameNumberDescription
V0 0

V1 1

CredentialType

The type of a credential.

NameNumberDescription
CREDENTIAL_TYPE_INITIAL 0

An initial credential created by the identity provider.

CREDENTIAL_TYPE_NORMAL 1

A normal credential type created by the account.

NodeInfo.BakerConsensusInfo.PassiveCommitteeInfo

The committee information of a node configured with

baker keys but somehow the node is _not_ part of the

current baking committee.

NameNumberDescription
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.

OpenStatus

Information about how open the pool is to new delegators.

NameNumberDescription
OPEN_STATUS_OPEN_FOR_ALL 0

OPEN_STATUS_CLOSED_FOR_NEW 1

OPEN_STATUS_CLOSED_FOR_ALL 2

PeersInfo.Peer.CatchupStatus

NameNumberDescription
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.

ProtocolVersion

The different versions of the protocol.

NameNumberDescription
PROTOCOL_VERSION_1 0

PROTOCOL_VERSION_2 1

PROTOCOL_VERSION_3 2

PROTOCOL_VERSION_4 3

PROTOCOL_VERSION_5 4

PROTOCOL_VERSION_6 5

TransactionType

The type of transaction.

NameNumberDescription
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

UpdateType

The type of chain update.

NameNumberDescription
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

v2/concordium/service.proto

Top

Queries

Method NameRequest TypeResponse TypeDescription
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.

v2/concordium/health.proto

Top

NodeHealthRequest

Parameters to the node health query. The default message gives a good

default.

NodeHealthResponse

Response to the health check. A return code of "OK" is used for success, and

errors are handled via RPC status codes

Health

Method NameRequest TypeResponse TypeDescription
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.

Scalar Value Types

.proto TypeNotesC++JavaPythonGoC#PHPRuby
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)