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

# Struct ResolvedTaggingStrategy

Module: `noir_aztec::messages::delivery`

```rust
pub struct ResolvedTaggingStrategy
{ /* private fields */ }
```

The tagging secret the PXE hands to the contract after applying the wallet's tagging secret strategy. It is already app-siloed, so the contract uses it directly to derive the message tag and never sees raw key material.

## Implementations

```rust
impl ResolvedTaggingStrategy
```

```rust
pub fn non_interactive_handshake() -> Self
```

A non-interactive handshake: the recipient re-derives the secret from the onchain handshake registry.

```rust
pub fn unconstrained_secret(secret: Field) -> Self
```

An app-siloed, recipient-directional secret, ready to use. Only sound for unconstrained delivery.

```rust
pub fn interactive_handshake() -> Self
```

An interactive handshake: the recipient learns the secret while signing its authorization.

```rust
pub fn is_unconstrained_secret(self) -> bool
```

## Trait implementations

```rust
impl Deserialize for ResolvedTaggingStrategy
```

```rust
pub fn deserialize(fields: [Field; 2]) -> Self
```

```rust
pub fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self
```

```rust
impl Eq for ResolvedTaggingStrategy
```

```rust
pub fn eq(_self: Self, _other: Self) -> bool
```

```rust
impl Serialize for ResolvedTaggingStrategy
```

```rust
pub fn serialize(self) -> [Field; 2]
```

```rust
pub fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>)
```
