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

# Struct VkData

Module: `protocol_types::proof::vk_data`

```rust
pub struct VkData<let VK_LENGTH: u32> {
    pub vk: VerificationKey<VK_LENGTH>,
    pub leaf_index: u32,
    pub sibling_path: [Field; 7],
}
```

## Fields

```rust
vk: VerificationKey<VK_LENGTH>
```

```rust
leaf_index: u32
```

```rust
sibling_path: [Field; 7]
```

## Implementations

```rust
impl<let VK_LENGTH: u32> VkData<VK_LENGTH>
```

```rust
pub fn validate_allowed_in_vk_tree<let N: u32>(
    self,
    vk_tree_root: Field,
    allowed_indices: [u32; N],
)
```

```rust
pub fn validate_in_vk_tree(self, vk_tree_root: Field)
```

## Trait implementations

```rust
impl<let VK_LENGTH: u32> Empty for VkData<VK_LENGTH>
```

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

```rust
pub fn is_empty(self: Self) -> bool
where
    Self: Eq
```

```rust
pub fn assert_empty<let S: u32>(self: Self, msg: str<S>)
where
    Self: Eq
```

```rust
impl<let VK_LENGTH: u32> Eq for VkData<VK_LENGTH>
```

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