> **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.

# Authorizations

## Overview

EIP-7702 lets an externally owned account authorize contract code to execute on its behalf. Viem
can prepare and sign an authorization or include it in a transaction.

Viem can also inspect the resulting delegation and call an ERC-7821 execution interface exposed by
the delegated account.

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

const authorization = await client.wallet.prepareAuthorization({
  address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
  executor: 'self',
})
```

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

<Cards>
  <Card icon="lucide:pen-line" title="Prepare & Sign" description="Prepare an EIP-7702 authorization and sign it with a wallet or Local Account." to="/docs/guides/authorizations/prepare-sign" />

  <Card icon="lucide:send" title="Send & Write" description="Attach an authorization to transactions and contract writes." to="/docs/guides/authorizations/send-write" />

  <Card icon="lucide:search-check" title="Inspect Delegations" description="Read delegated code and verify signed authorizations." to="/docs/guides/authorizations/delegations" />

  <Card icon="lucide:list-tree" title="ERC-7821 Execution" description="Execute individual or batched calls through a delegated account." to="/docs/guides/authorizations/erc7821" />
</Cards>
