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

# Struct ProofData

Module: `noir_aztec::protocol::proof::proof_data`

```rust
pub struct ProofData<T, let ProofLen: u32, let VkLen: u32> {
    pub public_inputs: T,
    pub proof: [Field; ProofLen],
    pub vk_data: VkData<VkLen>,
}
```

## Fields

```rust
public_inputs: T
```

```rust
proof: [Field; ProofLen]
```

```rust
vk_data: VkData<VkLen>
```

## Implementations

```rust
impl<T, let ProofLen: u32, let VkLen: u32> ProofData<T, ProofLen, VkLen>
where
    T: Serialize<N = _>
```

```rust
pub fn verify(self, proof_type: u32)
where
    T: Serialize
```

Verifies the proof against the verification key and public inputs. The vk hash is also checked in the backend to match the key.

```rust
impl<T> ProofData<T, 1221, 119>
where
    T: Serialize<N = _>
```

```rust
pub fn verify_proof(self)
where
    T: Serialize
```

```rust
impl<T> ProofData<T, 410, 115>
where
    T: Serialize<N = _>
```

```rust
pub fn verify_proof(self)
where
    T: Serialize
```

```rust
impl<T> ProofData<T, 480, 115>
where
    T: Serialize<N = _>
```

```rust
pub fn verify_proof(self)
where
    T: Serialize
```

```rust
pub fn verify_proof_in_root(self)
where
    T: Serialize
```
