# ERC884

## Overview

The `ERC884` contract is an implementation of the ERC884 token standard, adhering to regulations set forth by the Delaware State Senate Bill No. 69.&#x20;

This standard is particularly relevant for tokenized shares in accordance with Delaware corporate law. It includes provisions for verified shareholder addresses and unique shareholder identification.

## Methods

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

Mints tokens to a verified address.

### Parameters

| **Parameter** | **Type**  | **Description**                       |
| ------------- | --------- | ------------------------------------- |
| `_to`         | `address` | Address to receive the minted tokens. |
| `_amount`     | `uint256` | Amount of tokens to mint.             |

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

Returns the number of unique addresses that own tokens.

### Returns

| **Return** | **Type** | **Description**                 |
| ---------- | -------- | ------------------------------- |
| -          | `uint`   | Number of unique token holders. |

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

Retrieves the address of a token holder by index.

### Parameters

| **Parameter** | **Type**  | **Description**                 |
| ------------- | --------- | ------------------------------- |
| `index`       | `uint256` | Zero-based index of the holder. |

### Returns

| **Return** | **Type**  | **Description**              |
| ---------- | --------- | ---------------------------- |
| -          | `address` | Address of the token holder. |

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

Adds a verified address along with an associated hash.

### Parameters

| **Parameter** | **Type**  | **Description**                                  |
| ------------- | --------- | ------------------------------------------------ |
| `addr`        | `address` | Address to be verified.                          |
| `hash`        | `bytes32` | Cryptographic hash of the address holder's info. |

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

Removes a verified address and its associated hash.

### Parameters

| **Parameter** | **Type**  | **Description**                 |
| ------------- | --------- | ------------------------------- |
| `addr`        | `address` | Verified address to be removed. |

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

Updates the hash for a verified address.

### Parameters

| **Parameter** | **Type**  | **Description**             |
| ------------- | --------- | --------------------------- |
| `addr`        | `address` | Verified address to update. |
| `hash`        | `bytes32` | New cryptographic hash.     |

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

Cancels an original address and reissues tokens to a replacement address.

### Parameters

| **Parameter** | **Type**  | **Description**                     |
| ------------- | --------- | ----------------------------------- |
| `original`    | `address` | Address to be superseded.           |
| `replacement` | `address` | Address that replaces the original. |

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

Transfers tokens to a verified address.

### Parameters

| **Parameter** | **Type**  | **Description**               |
| ------------- | --------- | ----------------------------- |
| `to`          | `address` | Recipient address.            |
| `value`       | `uint256` | Amount of tokens to transfer. |

### Returns

| **Return** | **Type** | **Description**                             |
| ---------- | -------- | ------------------------------------------- |
| `success`  | `bool`   | Returns true if the transfer is successful. |

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

Allows a spender to transfer tokens from one address to another.

### Parameters

| **Parameter** | **Type**  | **Description**                  |
| ------------- | --------- | -------------------------------- |
| `from`        | `address` | Address to transfer tokens from. |
| `to`          | `address` | Address to transfer tokens to.   |
| `value`       | `uint256` | Amount of tokens to transfer.    |

### Returns

| **Return** | **Type** | **Description**                             |
| ---------- | -------- | ------------------------------------------- |
| `success`  | `bool`   | Returns true if the transfer is successful. |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.volary.io/template-library/smart-contracts/erc884.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
