> For the complete documentation index, see [llms.txt](https://valargroup.gitbook.io/shielded-vote-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://valargroup.gitbook.io/shielded-vote-docs/circuit-components/note-commitment-integrity.md).

# Note Commitment Integrity

**Used in:** ZKP #1 (conditions 1, 6, 9)

## What it does

Verifies that a note commitment is correctly constructed from its component fields. This is the same `NoteCommit` function from the Orchard specification.

## Circuit

```
cm = NoteCommit_rcm(repr(g_d), repr(pk_d), v, ρ, ψ)
```

Where:

* `g_d = DiversifyHash(d)` — the diversified base point
* `pk_d` — the diversified transmission key
* `v` — the note value
* `ρ` (rho) — used in nullifier derivation
* `ψ` (psi) — additional randomness
* `rcm` — commitment randomness

## Usage in Shielded Vote

* **Condition 1** — Verifies the signed (dummy) note's commitment. The value is always 1 (to ensure hardware wallets render the transaction).
* **Condition 6** — Verifies the output note commitment (to the voting hotkey address). Value is also 0.
* **Condition 9** — Verifies each of the 5 input notes (real or padded). Values are the actual note balances.

## Reference

Orchard spec §5.4.7.3 — Action Statement
