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

# Struct AppSiloedHandshakeSecrets

Module: `noir_aztec::messages::delivery::handshake`

```rust
pub struct AppSiloedHandshakeSecrets {
    pub shared: Field,
    pub sender_only: Field,
}
```

The app-siloed handshake secrets the registry returns for a `(sender, recipient)` pair.

## Fields

```rust
shared: Field
```

The app-siloed shared secret, used to derive the recipient's discovery tag. The recipient can reconstruct it from the handshake's public ephemeral key via ECDH.

```rust
sender_only: Field
```

The app-siloed sender-only secret, folded into the constrained-delivery sequence nullifier so only the sender can advance a sequence. The recipient cannot reconstruct it: it derives from a random secret stored only in the sender's handshake note and never transmitted.

## Trait implementations

```rust
impl Deserialize for AppSiloedHandshakeSecrets
```

```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 AppSiloedHandshakeSecrets
```

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

```rust
impl From<TagSecretSource> for AppSiloedHandshakeSecrets
```

```rust
pub fn from(source: TagSecretSource) -> Self
```

```rust
impl Serialize for AppSiloedHandshakeSecrets
```

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

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