> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify.com/solana-foundation/anchor/llms.txt
> Use this file to discover all available pages before exploring further.

# Account types

> Reference for Anchor's account wrapper types

Anchor provides strongly-typed account wrappers for common Solana account patterns.

## Account\<'info, T>

Wrapper for program-owned accounts with automatic validation and deserialization.

```rust theme={null}
pub data: Account<'info, MyData>
```

**Checks:**

* Account owner is the current program
* Account discriminator matches type T
* Account data deserializes to type T

## Signer\<'info>

Verifies an account signed the transaction.

```rust theme={null}
pub authority: Signer&lt;'info&gt;
```

**Checks:**

* `is_signer` is true

## SystemAccount\<'info>

Represents a native Solana account owned by the System Program.

```rust theme={null}
pub user: SystemAccount&lt;'info&gt;
```

## Program type

Verifies an account is an executable program.

```rust theme={null}
pub system_program: Program<'info, System>
```

**Checks:**

* Account is executable
* Account key matches expected program ID

## UncheckedAccount\<'info>

Raw `AccountInfo` with no automatic checks.

```rust theme={null}
/// CHECK: Safe because we only read the key
pub unchecked: UncheckedAccount&lt;'info&gt;
```

<Warning>
  Always add a `/// CHECK:` comment explaining why no validation is needed.
</Warning>

## InterfaceAccount\<'info, T>

For Token-2022 compatibility.

```rust theme={null}
use anchor_spl::token_interface::TokenAccount;

pub token_account: InterfaceAccount<'info, TokenAccount>
```

## Complete reference

See [Accounts](/concepts/accounts) for detailed usage examples.
