# Notes

In Ola, a note serves as a fundamental data structure for encoding user assets and application state. The Zexe platform calls it `Record`, they all have the same meaning.

Each account note includes data that defines the note's owner, its stored value, and its associated application state. Within Ola, notes are both consumed and newly generated through a transition function. A transaction within Ola is designed to contain multiple transitions, with each transition being responsible for the consumption and creation of individual notes. Additionally, for notes with private visibility, they can be encrypted using the owner's address secret key as an optional security measure.

Every notes are appended as UTXO model in Ola.

### Components of a Note <a href="#components-of-a-record" id="components-of-a-record"></a>

An Ola note is serialized in the following format:

| Type       | Description                                                           |
| ---------- | --------------------------------------------------------------------- |
| address    | The address of the owner of the contract note                         |
| data       | A data payload containing arbitrary application-dependent information |
| nonce      | The serial number nonce of the contract note                          |
| visibility | The note's visibility, which can either be `public` or `private`      |

#### (Optional) Note Encryption <a href="#optional-record-encryption" id="optional-record-encryption"></a>

A "Note" with a private visibility in Ola is cryptographically encrypted during the transition and securely stored on the blockchain. This feature empowers users to confidentially exchange Note data and values across the public network. Decryption of these Notes is only possible for the sender and receiver, using their respective account view keys.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://ola-2.gitbook.io/ola-developer-documents/olavm/concepts/notes.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
