# DAO

The DAO Utils contract serves as a utility layer that enables the DAO to execute complex operations in a single transaction. It does not hold any administrative privileges itself but provides convenience functions for the DAO to interact with multiple protocol contracts efficiently.

## Soroban Governor Integration

The Orbit Protocol is governed by [Soroban Governor](https://governance.script3.io/), which serves as the DAO for the protocol. The DAO Utils contract enhances this integration by providing simplified methods for the DAO to execute common administrative actions that involve multiple contracts.

## Contract Functions

### Creating New Stablecoins

The DAO can deploy new stablecoins through the `new_stablecoin()` function:

```rust
fn new_stablecoin(
    e: Env,
    admin: Address,
    treasury: Address,
    oracle: Address,
    token: Address,
    asset: Asset,
    blend_pool: Address,
    initial_supply: i128
)
```

This function orchestrates all the steps required to deploy a new stablecoin:

1. Maps the stablecoin token to its reference asset in the Bridge Oracle
2. Registers the stablecoin with its Blend pool in the Treasury
3. Mints the initial supply of the stablecoin through the Treasury

For this operation, the admin (DAO) must authorize the transaction.

### Managing Supply

The DAO can adjust stablecoin supply using the `update_supply()` function:

```rust
fn update_supply(e: Env, admin: Address, treasury: Address, token: Address, amount: i128)
```

This function:

* Allows increasing supply by providing a positive amount
* Allows decreasing supply by providing a negative amount
* Automatically calls the appropriate Treasury function based on the sign of the amount
* Requires admin (DAO) authorization


---

# 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.orbitcdp.finance/technical-documentation/dao.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.
