# Access Control Handoff

## Dispatcher ownership

The owner of the `Dispatcher` is the canonical global admin for the protocol, persisting across releases (how the release implements that authority is up to the release).

The owner is already the Enzyme Council.

The Enzyme Council is able to transfer ownership (e.g., to a new multisig wallet, as has taken place) via a nomination-claim procedure.

## FundDeployer ownership

For this release, the owner of the `FundDeployer` is taken to be the admin of release-level protocol contracts.

The owner of `FundDeployer` is set dynamically:

* when `isLive` is `false`, the owner is the contract's deployer, i.e., Avantgarde Core
* when `isLive` is set to `true` (by Avantgarde Core), the contract then defers ownership to the owner of `Dispatcher`

This setup allows for easily setting up all contract configuration prior to freezing ownership for verification.

## Extensions and plugins ownership

Extensions (`FeeManager`, `PolicyManager`, `IntegrationManager`) and plugins (fees, policies, integration adapters) that require ownership for access control defer ownership to the current `FundDeployer` owner. This is accomplished by inheriting a `FundDeployerOwnerMixin` contract.

Thus when the owner of the `FundDeployer` becomes the ETC, so does the owner of all contracts that implement this mixin.

\---

These patterns of handing-off access control gives maximum flexibility for deployment and configuration, while assuring that the ETC will end up with complete admin privileges once the protocol is taken liven.


---

# 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.enzyme.finance/enzyme-blue-protocol/users/access-control-handoff.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.
