> Aztec.nr API reference, v6.0.0 (mainnet and testnet). Index: https://docs.aztec.network/aztec-nr-api/v6.0.0/llms.txt

# Function get_notes

Module: `noir_aztec::note::note_getter`

```rust
pub fn get_notes<Note, let M: u32, PreprocessorArgs, FilterArgs>(
    context: &mut PrivateContext,
    storage_slot: Field,
    options: NoteGetterOptions<Note, M, PreprocessorArgs, FilterArgs>,
) -> BoundedVec<ConfirmedNote<Note>, 16>
where
    Note: NoteType,
    Note: NoteHash,
    Note: Eq,
    Note: Packable<N = M>
```

Returns a BoundedVec of notes that have been proven to have been created by this contract, either in the current or past transactions (i.e. pending or settled notes). A second BoundedVec contains the note hashes used for the read requests, which can save constraints when computing the note's nullifiers.

WARNING: recall that notes are never destroyed! Note existence therefore does not imply that the note is *current* or *valid* - this typically requires also emitting the note's nullifier to prove that it had not been emitted before. Because of this, calling this function directly from end-user applications should be discouraged, and safe abstractions such as aztec-nr's state variables should be used instead.
