> For the complete documentation index, see [llms.txt](https://docs.kiln.fi/v1/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.kiln.fi/v1/kiln-products/onchain/deprecated-dedicated-validators/how-to-integrate/2.-administration.md).

# 2. Administration

## Users

<table><thead><tr><th width="264">Role</th><th>Description</th></tr></thead><tbody><tr><td>PROXY_ADMIN</td><td>Responsible for upgrades operations (pause/unpause/add new logic or fix contract data/freeze contract upgrades)</td></tr><tr><td>SYS_ADMIN</td><td>Responsible for Operation administration: set commissions, add / remove Operator(s), approve / remove Operator validation keys before they are funded </td></tr><tr><td>OPERATOR (can be multiple)</td><td>Add / Remove validation key deposit data</td></tr></tbody></table>

## PROXY\_ADMIN

Kiln recommends that the PROXY\_ADMIN is setup as a multi-sig between multiple parties within the partner or including trusted third parties.

| Contract        | Action           | Description                                                       | Regularity |
| --------------- | ---------------- | ----------------------------------------------------------------- | ---------- |
| StakingContract | pause            | pause Staking Contract (no non-view functions can be called)      | Exception  |
| StakingContract | unpause          | unpause Staking Contract                                          | Exception  |
| StakingContract | changeAdmin      | change PROXY\_ADMIN address                                       | Exception  |
| StakingContract | upgradeTo        | change implementation address                                     | Exception  |
| StakingContract | upgradeToAndCall | change implentation address and performs an additional setup call | Exception  |

## SYS\_ADMIN

Kiln recommends that the SYS\_ADMIN is setup as a multi-sig between multiple parties within the partner or including trusted third parties.

| Contract        | Action                            | Description                                                                | Regularity    |
| --------------- | --------------------------------- | -------------------------------------------------------------------------- | ------------- |
| StakingContract | setWithdrawerCustomizationEnabled | Enable or disable the ability for users to modify their withdrawer address | Exception     |
| StakingContract | setTreasury                       | Set new treasury recipient address                                         | Rare          |
| StakingContract | transferOwnership                 | Set new SYS\_ADMIN                                                         | Exception     |
| StakingContract | addOperator                       | Register Operator address and commission recipient address                 | At Setup time |
| StakingContract | setOperatorLimit                  | Set Operator number of keys to be exposed to the end users for deposit     | Often         |
| StakingContract | deactivateOperator                | Deactivate operator, its commission recipient and key limit                | Exception     |
| StakingContract | activateOperator                  | Activate operator, without changing the 0 limit                            | Exception     |
| StakingContract | setOperatorFee                    | Change the operator fee                                                    | Rare          |
| StakingContract | setGlobalFee                      | Change the Global fee                                                      | Rare          |
| StakingContract | setDepositsStopped                | Pause or Resume the deposit feature                                        | Exception     |
| StakingContract | batchWithdrawCLFee                | Withdraw CL Recipients of multiple staked positions                        | Rare          |
| StakingContract | batchWithdrawELFee                | Withdraw EL Recipients of multiple staked positions                        | Rare          |
| StakingContract | withdrawELFee                     | Withdraw EL Recipient of a staked position                                 | Rare          |
| StakingContract | withdrawCLFee                     | Withdraw CL Recipient of a staked position                                 | Rare          |

## OPERATOR

Kiln recommends that the OPERATOR is setup as a hot wallet for use in scripts and automation.

It's rights are limited to changing the validators list, changes must then be approved by the admin.

The address can be changed by OPERATOR\_FEE\_RECIPIENT

<table><thead><tr><th>Contract</th><th width="180">Action</th><th width="170">Description</th><th>Regularity</th></tr></thead><tbody><tr><td>StakingContract</td><td>addValidators</td><td>Add new validator deposit data to be approved by the SYS_ADMIN</td><td>1/mth (depends on the deposit volume)</td></tr><tr><td>StakingContract</td><td>removeValidators</td><td>Remove validators that are not funded</td><td>Exception</td></tr></tbody></table>

## OPERATOR\_FEE\_RECIPIENT

Kiln recommends that the OPERATOR\_FEE\_RECIPIENT is setup as a multi-sig between multiple parties inside the Operator entity, this is where the operator fee will flow to.&#x20;

<table><thead><tr><th width="171">Contract</th><th width="210">Action</th><th width="259">Description</th><th>Regularity</th></tr></thead><tbody><tr><td>StakingContract</td><td>setOperatorAddresses</td><td>Change Operator Address and/or Operator Commission  recipient address</td><td>Exception</td></tr></tbody></table>


---

# 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://docs.kiln.fi/v1/kiln-products/onchain/deprecated-dedicated-validators/how-to-integrate/2.-administration.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.
