# Administrationw

## 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.

## Unpauses one of your vaults

`UNPAUSER_ROLE` should be used to perform these actions.

The function to call on every paused vault is:

```solidity
function unpauseDeposit() external onlyRole(UNPAUSER_ROLE);
```

No arguments, no value. The vault reverts if it's already unpaused (that's an OK signal — it just means someone already did it).

#### Unpauser is a Safe{Wallet} (multisig)

1. Sign in to Safe Wallet (`app.safe.global`) using the Safe address from the table in §6.
2. Switch to the matching network (Ethereum / Arbitrum / Base / BNB Chain / Optimism / Polygon).
3. **New transaction →Transaction builder**
4. Recipient = vault address.
5. ABI: paste the vault ABI, or let safe autofill or use the raw selector. `unpauseDeposit()` selector = `0x5157ced5`
6. Collect signatures up to the threshold (`N/M` shown in §6) and execute.

#### Unpauser is an EOA (single private key/ Ledger device)

The integrator can use any tooling they're comfortable with — Etherscan "Write Contract", MetaMask, Frame, Foundry. Foundry one-liner:

```shellscript
cast send <VAULT_ADDRESS> "unpauseDeposit()" \
  --rpc-url <RPC_URL> --private-key <KEY> or connect ledger device
```

## 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](/v1/kiln-products/omnivaults/how-to-integrate/smart-contract-interactions.md).


---

# 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.kiln.fi/v1/kiln-products/omnivaults/how-to-integrate/administrationw.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.
