# Governance

* Orbit Bridge defines Governance on each chain on the basis of their respective vault.&#x20;
* The Origin Chain's vault is created with a Multi-Sig wallet, so if there is no governance concensus, no assets can be moved.&#x20;
* Governance has mint/burn/execute permissions on the Destination chain&#x20;
* A pair of what destination chain to bridge must be registered.
* Depend on specification of each chain governance have different consensus in same governance.

## BridgeGovernance Setting Authorization

### OrbitHub

* `function addBridgeInfo`
  * Function to save data such as Multi-Sig Wallet, Nonce, Sequence, etc. to be used and managed in Bridge Contract
  * The function must be executed using the Multi-Sig Wallet registered in Orbit Hub.
  * Params
    * `string memory chain` : Chain Symbol of Bridge Contract (ex, ETH, KLAYTN, TERRA)
    * `address mig` : Multi-Sig Wallet Contract Address to be used in Bridge Contract
    * `uint[] memory uints` : Uint Data Array to be managed in the Bridge Contract
    * `bytes32[] memory bytes32s` : Bytes32 Data Array to be managed in the Bridge Contract
    * `bytes memory comment` : Bytes Data to be managed in the Bridge Contract<br>

* `function removeBridgeInfo`
  * Function to delete data used and managed in Bridge Contract
  * The function must be executed using the Multi-Sig Wallet registered in Orbit Hub.
  * Params
    * `string memory chain` : Chain Symbol of Bridge Contract (ex, ETH, KLAYTN, TERRA)<br>

* `function changeHubMig`
  * Function to replace the Multi-Sig Wallet registered in Orbit Hub Contract
  * The function must be executed using the Multi-Sig Wallet registered in Orbit Hub.
  * Params

    * `address mig` : Multi-Sig Wallet Contract Address

* `function changeBridgeMig`
  * Function to replace the Multi-Sig Wallet registered in Bridge Contract
  * The function must be executed using the Multi-Sig Wallet registered in Orbit Hub.
  * Params
    * `string memory chain` : Chain Symbol of Bridge Contract (ex, ETH, KLAYTN, TERRA)
    * `address mig` : Multi-Sig Wallet Contract Address

### Minter ( Ethereum / Klaytn / Icon )

* `function changeActivate`&#x20;
  * Functions to control Minter functions to respond to problems
  * The function must be executed by the governance of Minter.
  * Params

    * `bool activate` : Minter Status

* `function setValidChain`&#x20;
  * Function to make it possible to receive requests only through a bridging-capable chain
  * The function must be executed by the governance of Minter.
  * Params

    * `string memory _chain` : Chain Symbol ( ex, ETH, KLAYTN, TERRA )

* `function addToken`&#x20;
  * Function to add mapping about tokens to be minted when bridging is executed
  * The function must be executed by the governance of Minter.
  * Params

    * `bytes memory token` : Token Information to be requested bridging from Vault
    * `address tokenAddress` : Token Address to be minted by Bridging execution in Minter

* `function setBridgingFee`&#x20;
  * Function to set the fee amount for Bridging execution.
  * The function must be executed by the governance of Minter.
  * Params

    * `uint _bridgingFee` : Fee Amount for Bridging execution.

* `function setFeeGovernance`&#x20;
  * Function to set the feeGovernance.
  * The function must be executed by the governance of Minter.
  * Params
    * `address _feeGovernance` : Address of FeeGovernance.

### Vault ( Ethereum / Klaytn / Icon )

* `function changeActivate`&#x20;
  * Functions to control Vault functions to respond to problems
  * The function must be executed through Vault's own SubmitTransaction/ ConfirmTransaction logic
  * Params

    * `bool activate` : Minter Status

* `function setValidChain`&#x20;
  * Function to make it possible to receive requests only through a bridging-capable chain
  * The function must be executed through Vault's own SubmitTransaction/ ConfirmTransaction logic
  * Params

    * `string memory _chain` : Chain Symbol ( ex, ETH, KLAYTN, TERRA )

* `function setBridgingFee`&#x20;
  * Function to set the fee amount for Bridging execution.
  * The function must be executed through Vault's own SubmitTransaction/ ConfirmTransaction logic
  * Params

    * `uint _bridgingFee` : Fee Amount for Bridging execution.

* `function setFeeGovernance`&#x20;
  * Function to set the feeGovernance.
  * The function must be executed through Vault's own SubmitTransaction/ ConfirmTransaction logic
  * Params
    * `address _feeGovernance` : Address of FeeGovernance.


---

# 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://bridge-docs.orbitchain.io/how-it-works/governance.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.
