feat(aztec-nr): sender-side support for interactive handshakes#24522
Merged
nchamo merged 8 commits intoJul 7, 2026
Conversation
…sender-side-support-for-interactive-handshakes
…sender-side-support-for-interactive-handshakes
vezenovm
approved these changes
Jul 7, 2026
Comment on lines
+102
to
+106
| /// | ||
| /// The registry obtains the recipient's signed authorization through a | ||
| /// [`resolve_custom_request`](crate::oracle::resolve_custom_request::resolve_custom_request) oracle call it resolves | ||
| /// internally, verifies it in-circuit, inserts a fresh handshake note and returns the secrets. Nothing announcing the | ||
| /// handshake is published onchain: the recipient learns the shared secret while signing. As with |
Contributor
There was a problem hiding this comment.
Suggested change
| /// | |
| /// The registry obtains the recipient's signed authorization through a | |
| /// [`resolve_custom_request`](crate::oracle::resolve_custom_request::resolve_custom_request) oracle call it resolves | |
| /// internally, verifies it in-circuit, inserts a fresh handshake note and returns the secrets. Nothing announcing the | |
| /// handshake is published onchain: the recipient learns the shared secret while signing. As with | |
| /// As with |
we probably don't need to repeat this information again. it can all be found by looking at the registry method's doc comments.
Comment on lines
+28
to
+31
| /// An interactive handshake: the recipient learns the secret while signing its authorization, and nothing | ||
| /// announcing the handshake is published onchain. See | ||
| /// [`create_interactive_handshake`](super::handshake::create_interactive_handshake) for how the registry obtains | ||
| /// that authorization. |
Contributor
There was a problem hiding this comment.
Suggested change
| /// An interactive handshake: the recipient learns the secret while signing its authorization, and nothing | |
| /// announcing the handshake is published onchain. See | |
| /// [`create_interactive_handshake`](super::handshake::create_interactive_handshake) for how the registry obtains | |
| /// that authorization. | |
| /// An interactive handshake: the recipient learns the secret while signing its authorization. |
feel like this is enough
Comment on lines
+46
to
+48
| /// Establishes a fresh interactive handshake, publishing nothing about the recipient onchain. See | ||
| /// [`create_interactive_handshake`](super::handshake::create_interactive_handshake) for how the registry obtains | ||
| /// the recipient's signed authorization. |
Contributor
There was a problem hiding this comment.
Suggested change
| /// Establishes a fresh interactive handshake, publishing nothing about the recipient onchain. See | |
| /// [`create_interactive_handshake`](super::handshake::create_interactive_handshake) for how the registry obtains | |
| /// the recipient's signed authorization. | |
| /// Establishes a fresh interactive handshake, publishing nothing about the recipient onchain. |
same here. I think it is clear we should reference the registry. Or we can say to reference the registry for more info.
|
|
||
| /// A secret established through an interactive handshake. | ||
| /// | ||
| /// The registry obtains the recipient's signed authorization through a |
…sender-side-support-for-interactive-handshakes
nchamo
deleted the
nchamo/f-786-feataztec-nr-sender-side-support-for-interactive-handshakes
branch
July 7, 2026 16:53
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
The handshake registry has an
interactive_handshakeentrypoint (#24473), but no sender can reach it: the delivery stack only knows how to establish non-interactive handshakes.The change
Senders can now choose an interactive handshake the same two ways non-interactive ones are chosen:
via_interactive_handshake()builder option on both onchain delivery modes, flowing through a newTagDerivationkind andTagSecretSourcekind that call the registry'sinteractive_handshakeentrypoint via a new pinned selector.interactive-handshakevariant in theTaggingSecretStrategyhook union and inResolvedTaggingStrategy(TS and Noir in lockstep).Defaults do not change: interactive is strictly opt-in. Like a fresh non-interactive handshake, a fresh interactive one backs both delivery modes and starts its constrained sequence at index 0; an existing handshake of either type is reused before establishing a new one.
The oracle version minors are bumped since no existing contracts were using this oracle yet.
Fixes F-786