# Governed

View Source: [moc-governance/contracts/Governance/Governed.sol](https://github.com/money-on-chain/main-RBTC-contract/blob/master-gitbook/moc-governance/contracts/Governance/Governed.sol)

**↗ Extends:** [**Initializable**](/main-rbtc-contract/smart-contracts/abis-documentation/initializable.md) **↘ Derived Contracts:** [**CommissionSplitter**](https://github.com/money-on-chain/main-RBTC-contract/blob/master-gitbook/docs/abis/CommissionSplitter.md)**,** [**MoCBucketContainer**](/main-rbtc-contract/smart-contracts/abis-documentation/mocbucketcontainer.md)**,** [**MoCEMACalculator**](/main-rbtc-contract/smart-contracts/abis-documentation/mocemacalculator.md)**,** [**MoCInrate**](/main-rbtc-contract/smart-contracts/abis-documentation/mocinrate.md)**,** [**MoCInrateEvents**](https://github.com/money-on-chain/main-RBTC-contract/blob/master-gitbook/docs/abis/MoCInrateEvents.md)**,** [**MoCInrateStructs**](https://github.com/money-on-chain/main-RBTC-contract/blob/master-gitbook/docs/abis/MoCInrateStructs.md)**,** [**MoCSettlement**](/main-rbtc-contract/smart-contracts/abis-documentation/mocsettlement.md)**,** [**MoCSettlementEvents**](https://github.com/money-on-chain/main-RBTC-contract/blob/master-gitbook/docs/abis/MoCSettlementEvents.md)**,** [**MoCVendors**](/main-rbtc-contract/smart-contracts/abis-documentation/mocvendors.md)**,** [**MoCVendorsEvents**](https://github.com/money-on-chain/main-RBTC-contract/blob/master-gitbook/docs/abis/MoCVendorsEvents.md)**,** [**Stoppable**](/main-rbtc-contract/smart-contracts/abis-documentation/stoppable.md)**,** [**UpgradeDelegator**](/main-rbtc-contract/smart-contracts/abis-documentation/upgradedelegator.md)

**Governed** - version: 0.1.12

Base contract to be inherited by governed contractsThis contract is not usable on its own since it does not have any *productive useful* behaviour The only purpose of this contract is to define some useful modifiers and functions to be used on the governance aspect of the child contract

## Contract Members

**Constants & Variables**

```js
contract IGovernor public governor;
```

***

```js
string private constant NOT_AUTHORIZED_CHANGER;
```

***

```js
uint256[50] private upgradeGap;
```

***

## Modifiers

* [onlyAuthorizedChanger](#onlyauthorizedchanger)

### onlyAuthorizedChanger

Modifier that protects the functionYou should use this modifier in any function that should be called through the governance system

```js
modifier onlyAuthorizedChanger() internal
```

**Arguments**

## Functions

* [initialize(IGovernor \_governor)](#initialize)
* [changeIGovernor(IGovernor newIGovernor)](#changeigovernor)

### initialize

Initialize the contract with the basic settingsThis initialize replaces the constructor but it is not called automatically. It is necessary because of the upgradeability of the contracts

```js
function initialize(IGovernor _governor) public nonpayable initializer 
```

**Arguments**

| Name       | Type      | Description      |
| ---------- | --------- | ---------------- |
| \_governor | IGovernor | Governor address |

### changeIGovernor

Change the contract's governor. Should be called through the old governance system

```js
function changeIGovernor(IGovernor newIGovernor) public nonpayable onlyAuthorizedChanger 
```

**Arguments**

| Name         | Type      | Description          |
| ------------ | --------- | -------------------- |
| newIGovernor | IGovernor | New governor address |


---

# 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.moneyonchain.com/main-rbtc-contract/smart-contracts/abis-documentation/governed.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.
