# Registry

## Overview

`ERC6551Registry` is a contract that facilitates the creation of ERC6551 accounts using the `Create2` opcode for deterministic address generation. It allows users to deploy new accounts with specific implementation details and initialization data.

## Methods

## <mark style="color:blue;">`createAccount`</mark>

Creates a new ERC6551 account.

### Parameters

| Name             | Type      | Description                          |
| ---------------- | --------- | ------------------------------------ |
| `implementation` | `address` | The contract implementation address. |
| `chainId`        | `uint256` | Chain ID.                            |
| `tokenContract`  | `address` | Token contract address.              |
| `tokenId`        | `uint256` | Token ID.                            |
| `salt`           | `uint256` | Salt for address generation.         |
| `initData`       | `bytes`   | Initialization data for the account. |

### Returns

`address` - The address of the newly created account.

## <mark style="color:blue;">`account`</mark>

Computes the address of an ERC6551 account.

### Parameters

| Name             | Type      | Description                          |
| ---------------- | --------- | ------------------------------------ |
| `implementation` | `address` | The contract implementation address. |
| `chainId`        | `uint256` | Chain ID.                            |
| `tokenContract`  | `address` | Token contract address.              |
| `tokenId`        | `uint256` | Token ID.                            |
| `salt`           | `uint256` | Salt for address generation.         |

### Returns

`address` - The computed account address.
