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

# Overview

Description of the privileged roles in the Teller Platform

The smart contracts used in the Teller Platform often have `Pauser/owner` variables to designate the party with special privileges to make modifications to the platform's settings. In the spirit of transparency in the decentralized world, these roles are documented below for the Teller Finance platform.

## Pauser Role

The `Pauser` role is set in the Settings smart contract for the Teller platform, and inherited into the platform's smart contracts.&#x20;

{% hint style="info" %}
Ethereum wallet addresses are assigned `Pauser` role through the Teller DAO to govern the management and development of the Teller Platform.
{% endhint %}

The Teller DAO wallet addresses with the Pauser role can govern methods in the following contracts:

### ATMFactory

| Method                                                                                                                                                                                                                                                                   | Action            |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------- |
| <p><code>createATM(</code></p><p>  <code>string calldata name,</code></p><p>  <code>string calldata symbol,</code>  </p><p>  <code>uint8 decimals,</code> </p><p>  <code>uint256 cap,</code> </p><p>  <code>uint256 maxVestingPerWallet</code></p><p><code>)</code> </p> | Creates a new ATM |

### ATMSettings

| Method                                                                                                                                                                                                    | Action                                                                           |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
| `pauseATM(address atmAddress)`                                                                                                                                                                            | Pauses a given ATM                                                               |
| `unpauseATM(address atmAddress)`                                                                                                                                                                          | Unpauses a given ATM                                                             |
| <p><code>setATMToMarket(</code></p><p>  <code>address borrowedToken,</code> </p><p>  <code>address collateralToken,</code> </p><p>  <code>address atmAddress</code></p><p><code>)</code></p>              | Sets an ATM for a given market (borrowed token and collateral token)             |
| <p><code>updateATMToMarket(</code></p><p>  <code>address borrowedToken,</code> </p><p>  <code>address collateralToken,</code>       </p><p>  <code>address newAtmAddress</code> </p><p><code>)</code></p> | Updates a new ATM for a given market (borrowed token and collateral token)       |
| <p><code>removeATMToMarket(</code></p><p>  <code>address borrowedToken,</code> </p><p>  <code>address collateralToken</code></p><p><code>)</code></p>                                                     | Removes the ATM address for a given market (borrowed token and collateral token) |

### ChainlinkPairAggregatorRegistry

| Method                                                                                                                                                 | Action                                                    |
| ------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------- |
| <p><code>registerPairAggregators(</code></p><p>  <code>TellerCommon.PairAggregatorRegisterRequest\[] calldata requests</code></p><p><code>)</code></p> | Registers multiple new pair aggregators for given markets |
| <p><code>registerPairAggregator(</code></p><p>  <code>TellerCommon.PairAggregatorRegisterRequest calldata request</code></p><p><code>)</code></p>      | Registers a single new pair aggregator for a given market |
| <p><code>updatePairAggregator(</code></p><p>  <code>TellerCommon.PairAggregatorRegisterRequest calldata request</code></p><p><code>)</code></p>        | Updates a current pair aggregator for a given market      |

### EscrowFactory

| Method                     | Action                                  |
| -------------------------- | --------------------------------------- |
| `addDapp(address dapp)`    | Adds a new dapp to the factory          |
| `removeDapp(address dapp)` | Removes a current dapp from the factory |

### LoansBase

| Method                                   | Action                                    |
| ---------------------------------------- | ----------------------------------------- |
| `setPriceOracle(address newPriceOracle)` | Updates the current price oracle instance |

### LogicVersionsRegistry

| Method                                                                                                                                           | Action                                                     |
| ------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------- |
| <p><code>createLogicVersion(</code></p><p>  <code>bytes32 logicName,</code> </p><p>  <code>address logic</code></p><p><code>)</code></p>         | Creates a new logic version given a logic name and address |
| <p><code>createLogicVersions(</code></p><p>  <code>TellerCommon.LogicVersionRequest\[] calldata newLogicVersions</code></p><p><code>)</code></p> | Creates multiple logic versions                            |
| <p><code>updateLogicAddress(</code></p><p>  <code>bytes32 logicName,</code> </p><p>  <code>address newLogic</code></p><p><code>)</code></p>      | Updates a current logic address given a logic name         |
| `removeLogicVersion(bytes32 logicName)`                                                                                                          | Removes a current logic version given a logic name         |

### MarketFactory

| Method                                                                                                                                                                                    | Action                                                                 |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- |
| <p><code>createMarket(</code></p><p>  <code>address tToken,</code> </p><p>  <code>address borrowedToken,</code>    </p><p>  <code>address collateralToken</code></p><p><code>)</code></p> | Creates a new market for a given TToken and borrowed/collateral tokens |
| <p><code>removeMarket(</code></p><p>  <code>address borrowedToken,</code></p><p>  <code>address collateralToken</code></p><p><code>)</code></p>                                           | Removes a current market for a given borrowed/collateral tokens        |

### Settings

| Method                                                                                                                                                                                                                        | Action                                                                         |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ |
| <p><code>createPlatformSetting(</code></p><p>  <code>bytes32 settingName,</code> </p><p>  <code>uint256 value,</code> </p><p>  <code>uint256 minValue,</code> </p><p>  <code>uint256 maxValue</code></p><p><code>)</code></p> | Creates a new platform setting given a setting name, value, min and max values |
| <p><code>updatePlatformSetting(</code></p><p>  <code>bytes32 settingName,</code> </p><p>  <code>uint256 newValue</code></p><p><code>)</code></p>                                                                              | Updates an existent platform setting given a setting name                      |
| `removePlatformSetting(bytes32 settingName)`                                                                                                                                                                                  | Removes a current platform setting given a setting name                        |
| `pauseLendingPool(address lendingPoolAddress)`                                                                                                                                                                                | Pauses a specific lending pool                                                 |
| `unpauseLendingPool(address lendingPoolAddress)`                                                                                                                                                                              | Unpauses a specific lending pool                                               |
| <p><code>createAssetSettings(</code></p><p>  <code>address assetAddress,</code> </p><p>  <code>address cTokenAddress,</code> </p><p>  <code>uint256 maxLoanAmount</code></p><p><code>)</code></p>                             | Creates a new asset settings in the platform                                   |
| `removeAssetSettings(address assetAddress)`                                                                                                                                                                                   | Removes all the asset settings for a specific asset address                    |
| <p><code>updateMaxLoanAmount(</code></p><p>  <code>address assetAddress,</code> </p><p>  <code>uint256 newMaxLoanAmount</code></p><p><code>)</code></p>                                                                       | Updates the maximum loan amount for a specific asset address                   |
| <p><code>updateCTokenAddress(</code></p><p>  <code>address assetAddress,</code> </p><p>  <code>address newCTokenAddress</code></p><p><code>)</code></p>                                                                       | Updates the cToken address for a specific asset address                        |

### TLRToken

| Method                                                                                                                                                                                                                 | Action                                                                                       |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
| `setCap(uint256 newCap)`                                                                                                                                                                                               | Sets a new cap on the token's total supply                                                   |
| <p><code>mint(</code></p><p>  <code>address account,</code> </p><p>  <code>uint256 amount</code></p><p><code>)</code></p>                                                                                              | Mints tokens without a vesting schedule for a wallet address and increasing the total supply |
| <p><code>mintVesting(</code></p><p>  <code>address account,</code> </p><p>  <code>uint256 amount,</code> </p><p>  <code>uint256 cliff,</code> </p><p>  <code>uint256 vestingTime</code>      </p><p><code>)</code></p> | Mints tokens with a vesting schedule for a wallet address and increasing the total supply    |
| <p><code>revokeVesting(</code></p><p>  <code>address account,</code> </p><p>  <code>uint256 vestingId</code>     </p><p><code>)</code></p>                                                                             | Revokes unvested tokens for a wallet address and decreasing the total supply                 |

### Upgradeable Proxy

| Method                        | Action                                            |
| ----------------------------- | ------------------------------------------------- |
| `upgradeTo(address newLogic)` | Upgrades the current logic to a new logic address |
