A record is a fundamental data structure for encoding user assets and application state.
Each account record contains information that specifies the record owner, its stored value, and its application state.
Records in Aleo are consumed and newly created from a transition function. A transaction will store multiple transitions, each of which is responsible for the consumption and creation of its individual records.
Optionally, if the
visibility of the record is
private, it can be encrypted using the owner's address secret key.
Components of a Record
An Aleo record is serialized in the following format:
|The address public key of the owner of the program record
|A data payload containing arbitrary application-dependent information
|The serial number nonce of the program record
|The record's visibility, which can either be
The record owner is an account address, and specifies the party who is authorized to spend the record.
[ RECORD BYTE MAP ]
The record data encodes arbitrary application information.
The serial number nonce is used to create a unique identifier for each record,
and is computed via a
PRF evaluation of the address secret key
ask of the
owner and the record's serial number.
(Optional) Record Encryption
A record which has a
private is verifiably encrypted in the transition and stored on the ledger.
This enables users to securely and privately transfer record data and values between one another over the public network.
Only the sender and receiver with their corresponding account view keys are able to decrypt these records.