Skip to content

docs(aztec-nr): document partial note completion trust model - #24816

Merged
nventuro merged 2 commits into
merge-train/fairies-v5from
nchamo/partial-note-docs
Jul 21, 2026
Merged

docs(aztec-nr): document partial note completion trust model#24816
nventuro merged 2 commits into
merge-train/fairies-v5from
nchamo/partial-note-docs

Conversation

@nchamo

@nchamo nchamo commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Documents the trust model of partial note completion on PartialUintNote and PartialNFTNote:
    • The validity commitment only proves that the contract created the partial note designating completer.
    • The storage slot and value/token id are trusted arguments, not bound by the commitment.
    • The completer is not authenticated by the check itself, so contracts must pass msg_sender() as completer.
  • Adds a WARNING that completion is not single-use: the designated completer can complete the same partial note any number of times, so contracts must make every completion independently paid for or authorized in the completing function (as the token and NFT contracts already do).
  • Fixes doc overclaims that said the validity commitment verifies the storage slot / state variable.

@nchamo nchamo self-assigned this Jul 20, 2026
@nchamo nchamo added ci-draft Run CI on draft PRs. ci-no-fail-fast Sets NO_FAIL_FAST in the CI so the run is not aborted on the first failure labels Jul 20, 2026
@nchamo
nchamo marked this pull request as ready for review July 20, 2026 16:47
@nchamo
nchamo requested a review from nventuro as a code owner July 20, 2026 16:47
Comment thread noir-projects/aztec-nr/uint-note/src/uint_note.nr Outdated
@nchamo
nchamo requested a review from nventuro July 20, 2026 19:50
@nventuro
nventuro merged commit 1879ac1 into merge-train/fairies-v5 Jul 21, 2026
12 checks passed
@nventuro
nventuro deleted the nchamo/partial-note-docs branch July 21, 2026 17:47
rangozd pushed a commit to rangozd/aztec-packages that referenced this pull request Aug 5, 2026
…otocol#24816)

## Summary

- Documents the trust model of partial note completion on
`PartialUintNote` and `PartialNFTNote`:
- The validity commitment only proves that the contract created the
partial note designating `completer`.
- The storage slot and value/token id are trusted arguments, not bound
by the commitment.
- The completer is not authenticated by the check itself, so contracts
must pass `msg_sender()` as `completer`.
- Adds a WARNING that completion is not single-use: the designated
completer can complete the same partial note any number of times, so
contracts must make every completion independently paid for or
authorized in the completing function (as the token and NFT contracts
already do).
- Fixes doc overclaims that said the validity commitment verifies the
storage slot / state variable.

(cherry picked from commit 1879ac1)
rangozd pushed a commit to rangozd/aztec-packages that referenced this pull request Aug 5, 2026
…ztecProtocol#24931)

Forward-ports the **noir / aztec-nr / contracts** slice of the v5-next →
next backlog (work merged to `v5-next` after the ~2026-07-08 cut that
reshaped `next`).

## Applied (clean cherry-picks, chronological)
- fix: prevent reception of messages too far into the future (AztecProtocol#24645)
- fix(aztec-nr): reject infinity ephemeral key in message encryption
(AztecProtocol#24665)
- fix(aztec-nr): tolerate malformed partial-note completion logs
(AztecProtocol#24668)
- docs(aztec-nr): document partial note completion trust model (AztecProtocol#24816)
- refactor(aztec-nr): shared no-op sync handler for stateless contracts
(AztecProtocol#24844)
- fix: dont panic on note msgs on contracts with no notes (AztecProtocol#24852)
- docs(noir-contracts): document standard-contract re-pin consequences
(AztecProtocol#24890)

## ⚠️ Needs owner conflict-resolution (conflict against reshaped `next`;
not included here)
Cherry-pick onto this branch and resolve:
- [ ] `git cherry-pick -x 9f1167e` — feat!: make inbox secrets be
multiple fields (AztecProtocol#24599)
- [ ] `git cherry-pick -x 4490597` — fix(aztec-nr): prevent recipient
forging a colliding handshake (AztecProtocol#24403)
- [ ] `git cherry-pick -x 8b1903c` — feat!: forbid external note
validation checks (AztecProtocol#24644)
- [ ] `git cherry-pick -x 10e339a` — fix(aztec-nr)!: compute note
property selectors from the packed layout (AztecProtocol#24689)
- [ ] `git cherry-pick -x 15c7a1e` — chore: clarify scope of packable
impl detection (AztecProtocol#24820)
- [ ] `git cherry-pick -x f66808c` — fix: change init and single
claim nullif to incl owner address, add testing utilities (AztecProtocol#24892)

Part of the manual v5-next → next backlog sweep. Draft until conflicts
are resolved and CI is green.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci-draft Run CI on draft PRs. ci-no-fail-fast Sets NO_FAIL_FAST in the CI so the run is not aborted on the first failure

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants