A note represents some value of a particular asset attached to an owner's address (related to a shielded account) who has the authority to spend it. A user can zero or more notes in their shielded account. The asset balance of a shielded account is simply the sum of the values of all notes of that asset.

In our protocol, a Note is a tuple of multiple items:

  • assetId: Identifier for the asset (ETH, WBTC, MATIC, etc.) this note represents the value of.

  • value: Value or amount the note represents.

  • owner: The stealth address of a user having the authority to spend it.

The so-called commitment of a note is defined Poseidon hash of all of the fields above.

commitment = H(assetId, owner, value)

All the notes to ever exist have their commitments stored in a data structure called Merkle tree. This is essential for bookkeeping as will be clear in the next sections.

Last updated