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

# Type alias ComputeNoteNullifier

Module: `noir_aztec::messages::discovery`

```rust
pub type ComputeNoteNullifier = unconstrained fn(Field, BoundedVec<Field, 8>, AztecAddress, Field, Field, AztecAddress, Field) -> Option<Field>;
```

A contract's way of computing note nullifiers.

Like [`ComputeNoteHash`](/aztec-nr-api/v6.0.0/noir_aztec/messages/discovery/type.ComputeNoteHash.md), each contract is free to derive nullifiers as they see fit. This function takes the unique note hash (used as the note hash for nullification for settled notes), plus the note's packed content and metadata, and attempts to compute the inner nullifier (not siloed by address).

## Automatic Implementation

The [`[#aztec]`](/aztec-nr-api/v6.0.0/noir_aztec/macros/fn.aztec.md) macro automatically creates a correct implementation of this function for each contract called `_compute_note_nullifier`. It dispatches on `note_type_id` similarly to [`ComputeNoteHash`](/aztec-nr-api/v6.0.0/noir_aztec/messages/discovery/type.ComputeNoteHash.md), then calls the note's [`compute_nullifier_unconstrained`](/aztec-nr-api/v6.0.0/noir_aztec/note/note_interface/trait.NoteHash.md#compute_nullifier_unconstrained) method.
