> For the complete documentation index, see [llms.txt](https://docs.cryptolegacy.app/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.cryptolegacy.app/dao-rights-architecture/ownership-and-roles.md).

# Ownership and Roles

Although you - and only you - are the Owner of your CryptoLegacy personal contract, there are other contracts within the protocol.

We use a flexible yet reliable role-based approach to manage these contracts. Various DAO multisigs include signers from the Core team, Protocol partners, and Top Security Firms.

Role names are simplified as:

* Msig 1.
* Msig 2.
* Msig 3.&#x20;

Detailed information about their associated multisig wallets can be found in separate articles.

The table below lists the contracts, their functions, and the roles assigned to each. Every function is protected by a **personal timelock for execution**.

<table><thead><tr><th width="239.64453125">Contract</th><th width="376.015625">Function</th><th width="304.703125">Purpose</th><th width="86.5703125">Role</th><th width="112.9453125">Timelock</th></tr></thead><tbody><tr><td>BuildManagerOwnable</td><td>setBuildManager()</td><td>Adds or removes a build manager address. Only the owner can call.</td><td>Msig 3</td><td>5 days</td></tr><tr><td>CryptoLegacyBuildManager</td><td>setRegistries()</td><td>Sets references to the fee registry, plugins registry, and beneficiary registry.</td><td>Msig 3</td><td>5 days</td></tr><tr><td>CryptoLegacyBuildManager</td><td>setFactory()</td><td>Sets the factory contract.</td><td>Msig 3</td><td>5 days</td></tr><tr><td>CryptoLegacyBuildManager</td><td>setSupplyLimit()</td><td>Sets the supply limit for lifetime NFTs, after which multiple mints without a lock become possible.</td><td>Msig 2</td><td>5 days</td></tr><tr><td>CryptoLegacyBuildManager</td><td>setExternalLens()</td><td>Sets the external lens contract address.</td><td>Msig 2</td><td>5 days</td></tr><tr><td>CryptoLegacyBuildManager</td><td>withdrawFee()</td><td>Withdraws fee from the contract to a recipient.</td><td>Msig 2</td><td>5 days</td></tr><tr><td>CryptoLegacyFactory</td><td>setBuildOperator()</td><td>Adds or removes an allowed operator to build CryptoLegacy contracts.</td><td>Msig 3</td><td>5 days</td></tr><tr><td>FeeRegistry</td><td>setCodeOperator()</td><td>Sets a operator address, that can manage referral codes.</td><td>Msig 2</td><td>5 days</td></tr><tr><td>FeeRegistry</td><td>setSupportedRefCodeInChains()</td><td>Adds or removes supported chain IDs for referral codes.</td><td>Msig 2</td><td>5 days</td></tr><tr><td>FeeRegistry</td><td>setFeeBeneficiaries()</td><td>Sets the custom fee beneficiaries for the registry.</td><td>Msig 2</td><td>5 days</td></tr><tr><td>FeeRegistry</td><td>setDefaultPct()</td><td>Sets the default discount and share percentages.</td><td>Msig 2</td><td>5 days</td></tr><tr><td>FeeRegistry</td><td>setRefererSpecificPct()</td><td>Sets referral-specific discount and share percentages.</td><td>Msig 2</td><td>0 days</td></tr><tr><td>FeeRegistry</td><td>setContractCaseFee()</td><td>Sets the fee for a particular contract case.</td><td>Msig 2</td><td>5 days</td></tr><tr><td>LifetimeNft</td><td>setBaseUri()</td><td>Sets a new base URI for the tokens.</td><td>Msig 2</td><td>0 days</td></tr><tr><td>LifetimeNft</td><td>setMinterOperator()</td><td>Grants or revokes permission to mint new tokens.</td><td>Msig 3</td><td>5 days</td></tr><tr><td>LockChainGate</td><td>setDebridgeGate()</td><td>Sets the deBridgeGate contract.</td><td>Msig 3</td><td>5 days</td></tr><tr><td>LockChainGate</td><td>setDebridgeNativeFee()</td><td>Sets the native fee for a specific chain.</td><td>Msig 2</td><td>5 days</td></tr><tr><td>LockChainGate</td><td>setDestinationChainContract()</td><td>Sets the destination chain contract.</td><td>Msig 2</td><td>5 days</td></tr><tr><td>LockChainGate</td><td>setSourceChainContract()</td><td>Sets the source chain contract.</td><td>Msig 2</td><td>5 days</td></tr><tr><td>LockChainGate</td><td>setSourceAndDestinationChainContract()</td><td>Sets both the source and destination chain contracts to the same address.</td><td>Msig 2</td><td>5 days</td></tr><tr><td>LockChainGate</td><td>setLockPeriod()</td><td>Sets the NFT lock period.</td><td>Msig 2</td><td>5 days</td></tr><tr><td>LockChainGate</td><td>setReferralCode()</td><td>Sets the referral code for deBridge.</td><td>Msig 2</td><td>0 days</td></tr><tr><td>LockChainGate</td><td>setCustomChainId()</td><td>Sets a custom chain ID.</td><td>Msig 2</td><td>5 days</td></tr><tr><td>PluginsRegistry</td><td>addPlugin()</td><td>Registers a plugin and logs a description block number.</td><td>Msig 3</td><td>5 days</td></tr><tr><td>PluginsRegistry</td><td>addPluginDescription()</td><td>Adds a new descriptive note for an already-registered plugin.</td><td>Msig 3</td><td>5 days</td></tr><tr><td>PluginsRegistry</td><td>removePlugin()</td><td>Deregisters a plugin.</td><td>Msig 3</td><td>5 days</td></tr><tr><td>SignatureRoleTimelock</td><td>setMaxExecutionPeriod()</td><td>Sets the maximum allowable execution period for scheduled calls.</td><td>Msig 1.</td><td>0 days</td></tr><tr><td>SignatureRoleTimelock</td><td>setRoleAccounts()</td><td>Manages role-account associations by adding, removing, or updating accounts for specified roles.</td><td>Msig 1.</td><td>0 days</td></tr><tr><td>SignatureRoleTimelock</td><td>cancelCallList()</td><td>Cancels scheduled contract calls.</td><td>Msig 1.</td><td>0 days</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, and the optional `goal` query parameter:

```
GET https://docs.cryptolegacy.app/dao-rights-architecture/ownership-and-roles.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
