Skip to main content

Memo Block

Fields overview

The memo block contains detailed transaction data such as output notes, accounts, transaction fee, and other specific fields.

The memo block consists of the fields below. There are two optional fields in the memo block, dependent on transaction type: native amount and receiver. These values are only included in the withdrawal transaction's memo block.

The memo block structure

Field nameSize (bytes)Description
fee8Asset amount transferred to the relayer.
native amount8Asset amount for withdrawal. This field is optional for withdrawal transactions only.
receiver20Destination address for withdrawal transaction (chain-specific).
ItemsNumItemsNum4Number of encrypted elements in the memo block. An element is an account or a note. Note has a fixed number of items currently: one output account and 127 notes.
Hashaccount(acc)Hash_{account}(acc)32Output account hash (with updated balance).
Hashnote(Notei)Hash_{note}(Note_i)32Output note hash.
ApA_p32Ephemeral public key. Used to decrypt KeysencKeys^\text{enc}by transaction sender.
KeysencKeys^\text{enc}32 * ItemsNumItemsNum + 16Encrypted keys to decrypt output account and notes. Only the transaction sender can decrypt these keys.
accencacc^\text{enc}86Encrypted output account with an updated balance.
AiA_i32Ephemeral public key for notes. Used to decrypt NoteiencNote_i^\text{enc} by note owner (receiver).
NoteiencNote_i^\text{enc}76Encrypted note. It can be decrypted with AiA_i by owner or by transaction sender through a KeysencKeys^\text{enc} disclosure.