> 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/provider-management/add-providers.md).

# Add Providers

To add a `Provider`, call the `addProvidersFor` function on the Snowflake smart contract with the `approvingAddress`, `Providers`, `v`,`r`,`s` signatures from both Addresses, and the `timestamp` of the function call.

Triggers event: `ProviderAdded`

The `addProvidersFor` function should contain:

**ARGUMENTS**

| Parameter               | Type                          | Description                                               |
| ----------------------- | ----------------------------- | --------------------------------------------------------- |
| `approvingAddress`      | `address`                     | A current `Associated Address` of the `EIN`.              |
| `providers`             | `address[]`                   | Array of `addresses` provided.                            |
| `r`, `s`, `v` signature | `bytes32`, `bytes32`, `uint8` | Signed message as required in the format below.           |
| `timestamp`             | `uint`                        | Timestamp of the function call to prevent replay attacks. |

Signatures should follow the below pattern:

```
keccak256(
                    abi.encodePacked(
                        "I authorize that these Providers be added to my Identity", ein, providers, timestamp
                    )
                )
```
