# Administration

## Change the end user fee

`FEE_MANAGER` should be used to perform these actions.

#### Set the deposit fee

The deposit fee is taken at the time of deposit. You can set it by calling the `setDepositFee(uint256 newDepositFee),` where `newDepositFee` is a fixed amount of tokens deducted from each deposit.&#x20;

#### Set the rewards fee

The rewards fee is computed as percentage of the rewards generated by the Vault as a whole. It can be set by calling`setRewardFee(uint256 newRewardFee),` where `newRewardFee`is denominated in basis points.

## Change commission recipients

`ADMIN` should be used to perform these actions.

Your wallet address must have the `FEE_MANAGER` role granted, as you are the default admin you can grant this role to any address that work for you.

#### Set fee recipients - manual

Here is a step by step video on how to perform this using etherescan:&#x20;

1. Check if your wallet address have the `FEE_MANAGER` role using `hasRole (0x91d14854)` with the `bytes32("FEE_MANAGER")` .
2. If the returned value is false, you need to `grantRole (0x2f2ff15d)`  the `FEE_MANAGER`  role to your preferred address.
3. Check the current `feeRecipients (0x0adfdcb9)`  tuple to confirm your current configuration.
   1. eg. `[[0x4179b87f8faE24ED5A4bCe952b794426D68f4406,50000000,50000000]`\
      `[0x991c468AbcE2b4DD627a6210C145373EbABdd186,50000000,50000000]]` = 50/50 split between theses 2 addreses.
4. Then call `setFeeRecipients (0x71c99619)`  with the new configuration, eg. changing one address.

{% embed url="<https://www.youtube.com/watch?v=NNtHh9PwCpA>" %}

#### Set fee recipients - script&#x20;

To set the recipients of the deposit and rewards fees, you can call the  `setFeeRecipients(FeeRecipient[] memory recipients)` function where `recipients` is an array of the following structure:

```
struct FeeRecipient {
        address recipient;
        uint256 depositFeeSplit;
        uint256 rewardFeeSplit;
}
```

where:

* `recipient` is the address of the fee recipient&#x20;
* `depositFeeSplit` is the share of the recipient on the deposit fee (in basis points)
* `rewardFeeSplit` is the share of the recipient on the performance fee (in basis points)

The sum of all `depositFeeSplit` values and the sum of all `rewardFeeSplit` values in the struct must both equal `100 * 10^(decimal places of the token)`.

We recommend you call first call `feeRecipients (0x0adfdcb9)`, and get your current setup, and then just change the address you want to receive funds on.&#x20;

eg. `[[0x4179b87f8faE24ED5A4bCe952b794426D68f4406,50000000,50000000],[0x991c468AbcE2b4DD627a6210C145373EbABdd186,50000000,50000000]]`

Kiln treasury address is : `0x7D793370dB270CB239Ec05c20F16346f7F69871F` .

You can find the vault [ABI in the smart contract interaction page](https://docs.kiln.fi/v1/kiln-products/omnivaults/how-to-integrate/smart-contract-interactions).
