> For the complete documentation index, see [llms.txt](https://hydro.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hydro.gitbook.io/docs/snowflake/address-management/adding-addresses.md).

# Adding Addresses

### Add Addresses

To add an address to an existing EIN, call the `addAssociatedAddressDelegated` function on the Identity Registry.

To remain a trustless process, adding an address requires two signatures - one from a current `Associated Address`, and one from the `Associated Address` to be claimed.

To add an `Associated Address`, call the `addAddress` function on the Snowflake smart contract with the `approvingAddress`, `addressToAdd`, `r`,`s`,`v` signatures from both addresses, and the `timestamp` of the function call.

Signatures should follow the example format:&#x20;

```
require(
    isSigned(
        approvingAddress,
        keccak256(
            abi.encodePacked(
                byte(0x19), byte(0), address(this),
                "I authorize adding this address to my Identity.",
                ein, addressToAdd, timestamp[0]
            )
        ),
        v[0], r[0], s[0]
    ),
    "Permission denied from approving address."
);
require(
    isSigned(
        addressToAdd,
        keccak256(
            abi.encodePacked(
                byte(0x19), byte(0), address(this),
                "I authorize being added to this Identity.",
                ein, addressToAdd, timestamp[1]
            )
        ),
        v[1], r[1], s[1]
    ),
    "Permission denied from address to add."
);
```

**ARGUMENTS**

| Parameter                         | Type                                   | Description                                                          |
| --------------------------------- | -------------------------------------- | -------------------------------------------------------------------- |
| `approvingAddress`                | `address`                              | A current `Associated Address` of the `EIN`.                         |
| `addressToAdd`                    | `address`                              | Address to be added to the user's `EIN`.                             |
| \[`r`], \[`s`], \[`v`] signatures | \[`bytes32`], \[`bytes32`], \[`uint8`] | Signed messages from each address as required in the example format. |
| `timestamp`                       | `uint`                                 | Timestamp of the function call - to prevent replay attacks.          |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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://hydro.gitbook.io/docs/snowflake/address-management/adding-addresses.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.
