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.

Last updated

Was this helpful?