Memo Block

The main transaction part containing the encrypted data to restore balances and history

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 name
Size (bytes)
Description
fee
8
Asset amount transferred to the relayer.
native amount
8
Asset amount for withdrawal. This field is optional for withdrawal transactions only.
receiver
20
Destination address for withdrawal transaction (chain-specific).
ItemsNumItemsNum
4
Number 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)
32
Output account hash (with updated balance).
Hashnote(Notei)Hash_{note}(Note_i)
32
Output note hash.
noncenonce
24
XChaCha20 nonce. Used to decrypt
KeysencKeys^\text{enc}
by transaction sender.
KeysencKeys^\text{enc}
32 *
ItemsNumItemsNum
+ 16
Encrypted keys to decrypt output account and notes. Only the transaction sender can decrypt these keys.
accencacc^\text{enc}
86
Encrypted output account with an updated balance.
AiA_i
32
Ephemeral public key for notes. Used to decrypt
NoteiencNote_i^\text{enc}
by note owner (receiver).
NoteiencNote_i^\text{enc}
76
Encrypted note. It can be decrypted with
AiA_i
by owner or by transaction sender through a
KeysencKeys^\text{enc}
disclosure.