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

# ERC20Registry

GitHub: [ERC20Registry](https://github.com/initia-labs/initia-evm-contracts/blob/main/src/ERC20Registry.sol)

## Overview

The `ERC20Registry` contract provides modifiers for registering ERC20 tokens and their associated stores. The registration is done to allow the token to be recognized and interoperable with other parts of the MiniEVM rollup functionality.

## Modifiers

### `register_erc20`

Registers an ERC20 token with the ERC20 registry. This is done to allow the token to be recognized and interoperable with other parts of the MiniEVM rollup.

```solidity theme={null}
modifier register_erc20() {
    ERC20_REGISTRY_CONTRACT.register_erc20();
    _;
}
```

### `register_erc20_store`

Registers an ERC20 store for a given account with the ERC20 registry if it is not already registered. This is done to keep track of which accounts are associated with which ERC20 tokens.

```solidity theme={null}
modifier register_erc20_store(address account) {
    if (!ERC20_REGISTRY_CONTRACT.is_erc20_store_registered(account)) {
        ERC20_REGISTRY_CONTRACT.register_erc20_store(account);
    }
    _;
}
```

#### Parameters

| Name      | Type      | Description                                                                    |
| --------- | --------- | ------------------------------------------------------------------------------ |
| `account` | `address` | The address of the ERC20 store to check and register if not already registered |
