Key Registration - Algorand Specifications

Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Algorand Specifications

A key registration transaction additionally has the following fields:

FIELD CODEC TYPE REQUIRED
Vote Public Key votekey [32]byte Yes (for Online)
Selection Public Key selkey [32]byte Yes (for Online)
State Proof Public Key sprfkey [64]byte Yes (for Online)
Vote First votefst uint64 Yes (for Online)
Vote Last votelst uint64 Yes (for Online)
Vote Key Dilution votekd uint64 Yes (for Online)
Non-Participation nonpart bool No

The vote public key vpk is the (root) Ed25519 public authentication key of an account’s participation keys.

The selection public key spk is the public VRF key of an account’s participation keys.

The state proof public key spk is the public commitment to the account’s State Proof keys.

If vpk, spk, and spk are all omitted, the transaction deregisters the account’s participation key set, and marks the account as offline (i.e., non-participating in the agreement).

The vote first vf indicates the first valid round (inclusive) of an account’s participation key sets.

The vote last vl indicates the last valid round (inclusive) of an account’s participation key sets.

The vote key dilution defines the number of rounds for generating a new (second-level) ephemeral participation key. The higher the number, the more "dilution" is added to the authentication key’s security.

For further details on the two-level ephemeral key scheme used for consensus participation authentication, refer to the Algorand Participation Key Specification.

The non-participation nonpart is a flag which, when deregistering keys, specifies whether to mark the account just as offline (if nonpart is false) or as non-participatory (if nonpart is true).

The non-participatory status is set to true if the account is irreversibly excluded from consensus participation and from the legacy distribution rewards mechanism.

For a key registration transaction to be valid, the following conditions MUST apply:

Providing the default value or the empty value for any of the set members would be interpreted as if these values were omitted.

It is RECOMMENDED that vlv − vfv ≤ 3,000,000 rounds for security reasons, to ensure safe rotation of participation keys.