> For the complete documentation index, see [llms.txt](https://clanker.gitbook.io/documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://clanker.gitbook.io/documentation/references/core-contracts/v4/administrative-permissions.md).

# Administrative Permissions

Each admin role on the Clanker v4 contracts is listed below with what it can do.

Clanker aims to be permissionless where possible and is committed to decentralization. All Clanker v4 contracts either have no owner or are owned by Clanker's team multisig. Any "admin" role can be assumed to be controlled by Clanker multisigs or EOAs. None of the contracts are upgradeable.

## Clanker.sol

### Owner

* Add or remove admins via `setAdmin()`.
* Initialize the contract with `teamFeeRecipient` addresses. This can only be done once.
* Pause supplied token deployments with `setDeprecated()`.
* Change the `teamFeeRecipient` via `setTeamFeeRecipient()`.
* Everything the admin role can do.

### Admin

* Claim protocol fees to `teamFeeRecipient` via `claimTeamFees()`.
* Enable or disable hooks via `setHook()`.
* Enable or disable extensions via `setExtension()`.
* Enable or disable MEV modules via `setMevModule()`.
* Enable or disable lockers via `setLocker()`.

## ClankerLpLockerMultiple.sol and ClankerLpLockerFeeConversion.sol

### Owner

* Withdraw ETH sent to the contract by accident via `withdrawEth()`.
* Withdraw ERC20s sent to the contract by accident via `withdrawERC20()`.

## ClankerFeeLocker.sol

### Owner

* Add depositors via `addDepositor()`.

## No administrative permissions

Clanker has no administrative abilities on the following contracts:

* ClankerHook.sol
* ClankerStaticHook.sol
* ClankerDynamicHook.sol
* ClankerAirdrop.sol
* ClankerVault.sol
* ClankerUniv4EthDevBuy.sol
* ClankerMevBlockDelay.sol
* ClankerToken.sol
