> **Can't find what you're looking for?** Use `search_docs` on the docs MCP server at `https://v3.viem.sh/api/mcp` to find what you need.

# Chain Data

## Overview

Address and ENS Actions expose account state without requiring a contract ABI. Read native balances,
bytecode, nonces, and storage slots, verify Merkle proofs, or resolve human-readable ENS names and
records.

:::code-group
```ts twoslash [example.ts]
import { client } from './viem.config'

const value = await client.address.getStorageAt({
  address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
  slot: '0x0',
})
```

```ts twoslash [viem.config.ts] filename="viem.config.ts"
// [!include ~/snippets/docs/public.config.ts:setup]
```
:::

<Cards>
  <Card icon="lucide:database" title="Address & Contract State" description="Read balances, code, nonces, and contract storage." to="/docs/guides/chain-data/state" />

  <Card icon="lucide:shield-check" title="State Proofs" description="Request account and storage proofs for independent verification." to="/docs/guides/chain-data/proofs" />

  <Card icon="lucide:at-sign" title="ENS" description="Resolve names, addresses, avatars, resolvers, and text records." to="/docs/guides/chain-data/ens" />
</Cards>
