> 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/resolver-management/adding-resolvers-delegated.md).

# Adding Resolvers (delegated)

This provides an approach to adding a resolver for an EIN leveraging meta-transactions.

### Adding Resolvers on Behalf of an Identity

Delegated addition of resolvers follows the same pattern and provides the same functionality as Adding Resolvers, but accepts a signature to allow for meta-transactions. Call the `addResolverFor` function with the following:

**ARGUMENTS**

| Parameter               | Type                          | Description                                                                                                                       |
| ----------------------- | ----------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| `approvingAddress`      | `address`                     | `Associated Address` signing the necessary message in the function call.                                                          |
| `resolver`              | `address`                     | Ethereum Address of the `Resolver` to be set in the function call.                                                                |
| `isSnowflake`           | `bool`                        | Boolean indicating whether the `Resolver` calls `onSignup` functions through Snowflake.                                           |
| `withDrawalAllowance`   | `uint`                        | An array of `uints` corresponding with user-set allowances for each Resolver being added. See Allowances section for more detail. |
| extraData               | `bytes`                       | Arbitrary data to trigger function calls when the Resolver is set for an EIN.                                                     |
| `r`, `s`, `v` signature | `bytes32`, `bytes32`, `uint8` | Signed message as required in the format below                                                                                    |

See \[Adding Resolvers]\(adding-resolvers) for an example of when to use the `extraData` argument.

Signatures should follow the example format:

```

keccak256(
  abi.encodePacked(
  byte(0x19), byte(0), address(this),
  "I authorize that this resolver be added to my Identity.",
  ein, resolver, isSnowflake, withdrawAllowance, extraData, timestamp
  )
)
```
