# Notes

The note specifies a user's available assets. It indicates that an asset is held by the owner of the spending key $$\sigma$$which was used to [derive the private address](/implementation/zkbob-keys/address-derivation.md).

A private address is a value strictly associated with the user account. It consists of:

1. &#x20;a random value called a diversifier&#x20;
2. a diversified public key derived from the diversifier using the spending key.

The note is created by the asset sender. A note and its hash are placed in the transaction.

A note is a tuple $$(d, P\_d, b, t)$$where

* $$d$$ (10 bytes) is a diversifier (a random value generated by a note owner)
* $$P\_d$$ (32 bytes) is a diversified public key (a value derived from the $$d$$ and intermediate key $$\eta$$)
* $$b$$(8 bytes) is the note balance (an asset amount transferred by this note)
* $$t$$(10 bytes) is a salt. Since the transaction contains note hashes we must use a random salt to hide notes with the same owners and balances.

The raw note size is 60 bytes.

Due to the private nature of transactions, all notes are encrypted. They can be decrypted by the sender or receiver (note owner) only.&#x20;

The sender decrypts notes to obtain the transaction history outcome. The note receiver (owner) can decrypt it with the spending key $$\sigma$$ which was used to generate a [private address](/implementation/zkbob-keys/address-derivation.md) $$(d, P\_d)$$specified in the note.

{% hint style="info" %}

#### Zero note

There is an additional state for the note. When a user creates a transaction one or more zero output notes may be created. They will be ignored during transaction parsing. In such a note **all** fields are zero.
{% endhint %}


---

# 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://docs.zkbob.com/implementation/account-and-notes/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.
