State Delta - 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 State Delta represents the changes made to the Ledger’s state from one round to the next.

It is a compact data structure designed to efficiently update all state Trackers after a block is committed. By recording only the parts of the state that were modified, it also simplifies block assembly and validation.

For a formal definition of this structure, refer to the Algorand Ledger normative specification.

In the go-algorand reference implementation, a State Delta includes the following fields:

A set of Account State Deltas, collecting changes to accounts affected by the block, detailing how their states were modified.

A key-value map of modified entries in the Key Value Store, represented as (string → KvValueDelta).

A mapping of new transaction IDs to their LastValid round: (txid → uint). This is used to update the TxTailTxTail and manage the transaction counter.

A mapping (TxLease → uint64) of new transaction leases to their expiration rounds, also relevant to the TxTailTxTail mechanism.

A mapping of data about newly created or deleted “creatable entities” such as Applications and Assets.

A read-only reference to the header of the new block.

Reflects any update to the StateProofNextRound in the block header. If the block includes a valid State Proof transaction, this is set to the next round for a proof; otherwise, it’s set to 00.

Stores the timestamp of the previous block as an integer.

A snapshot of the updated account totals resulting from the changes in this State Delta.