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

# Struct FactCollection

Module: `noir_aztec::facts`

```rust
pub struct FactCollection {
    pub contract_address: AztecAddress,
    pub scope: FactScope,
    pub fact_collection_type_id: Field,
    pub fact_collection_id: Field,
    pub facts: EphemeralArray<Fact>,
}
```

A fact collection as returned by the store.

## Fields

```rust
contract_address: AztecAddress
```

```rust
scope: FactScope
```

```rust
fact_collection_type_id: Field
```

The collection's type. A single contract may have facts in collections of different types (e.g. one for the processing offchain messages, another for partial notes, etc.).

```rust
fact_collection_id: Field
```

The collection's unique identifier among the other collections of this type in this contract and scope.

```rust
facts: EphemeralArray<Fact>
```

## Trait implementations

```rust
impl Deserialize for FactCollection
```

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

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

```rust
impl Serialize for FactCollection
```

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

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