# Access Controls

Term Finance Protocol contracts inherit from OpenZeppelin's [AccessControlUpgradeable.sol ](https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable/blob/master/contracts/access/AccessControlUpgradeable.sol)contract, an upgradeable variant of [AccessControl.sol](https://docs.openzeppelin.com/contracts/3.x/access-control). This allows Protocol contracts to define multiple roles, each with access to perform different sets of actions. The table below documents all roles, their multi-signature wallets and modules, and accessible methods assigned within the Protocol.

{% tabs %}
{% tab title="Ethereum" %}

<table><thead><tr><th width="466.53873659118">Role and Addresses</th><th>Contracts and Methods</th></tr></thead><tbody><tr><td>DEVOPS_ROLE<br><br><a href="https://app.safe.global/home?safe=eth:0xb8A1dF43c1c88b13937C0c5CEBbAd15830cAeC03">"Ownerless" Gnosis Safe</a> with 24-hour <a href="https://etherscan.io/address/0x0C19d8A404079d71E5CA3e32fE3f758Ab543ACdf">Zodiac Delay Modifier </a>and <a href="https://etherscan.io/address/0x87D3C4Aa89f121c2D24C4F4A74C3C95c07088eA1">Zodiac Roles Modifier</a> providing <a href="https://app.safe.global/home?safe=eth:0xd5E12854A3Dba99deF295A7635D3Ba16427d2A28">DevOps-Proposer Gnosis Safe (5/11)</a> with an invalidator role</td><td><p><mark style="color:yellow;"><code>All Contracts</code></mark>:</p><ul><li>_authorizeUpgrade</li><li>e.g. <a href="../0.5.31/term-repo-class/term-auction-group/termauction#_authorizeupgrade"><code>_authorizeUpgrade</code></a></li></ul><p><mark style="color:yellow;"><code>TermInitializer.sol</code></mark>:</p><ul><li><a href="../latest/protocol-class/terminitializer#pausedeploying"><code>pauseDeploying</code></a></li><li><a href="../latest/protocol-class/terminitializer#unpausedeploying"><code>unpauseDeploying</code></a></li></ul><p><a href="https://github.com/term-finance/term-finance-developer-docs/blob/main/access-controls/broken-reference/README.md"><mark style="color:yellow;"><code>TermController.sol</code></mark></a> :</p><ul><li><a href="../0.5.32/protocol-class/termcontroller#updatetreasuryaddress"><code>updateTreasuryAddress</code></a></li><li><a href="../0.5.32/protocol-class/termcontroller#updateprotocolreserveaddress"><code>updateProtocolReserveAddress</code></a></li></ul><p><a href="https://github.com/term-finance/term-finance-developer-docs/blob/main/access-controls/broken-reference/README.md"><mark style="color:yellow;"><code>TermPriceConsumerV3.sol</code></mark></a>:</p><ul><li><a href="../0.5.32/protocol-class/termpriceconsumerv3#addnewtokenpricefeed"><code>addNewTokenPriceFeed</code></a></li><li><a href="../0.5.32/protocol-class/termpriceconsumerv3#removetokenpricefeed"><code>removeTokenPriceFeed</code></a></li></ul></td></tr><tr><td>ADMIN_ROLE<br><br><a href="https://app.safe.global/home?safe=eth:0x73d1C7dc9CEb14660Cf1E9BB29F80ECF9E97D774">Admin Gnosis Safe (4/10)</a></td><td><p>Access to various admin actions for each contract group, documented below:</p><ul><li><a href="term-finance-protocol/term-repo/term-auction-group/administrative-functions">Term Auction Group</a></li><li><a href="term-finance-protocol/term-repo/term-servicer-group/administrative-functions">Term Servicer Group</a></li><li><a href="term-finance-protocol/term-repo/term-repo-token/administrative-functions">Term Repo Token</a></li><li><a href="term-finance-protocol/protocol-contracts">Protocol Contracts</a></li></ul></td></tr><tr><td>INITIALIZER_APPROVER_ROLE<br><br><a href="https://app.safe.global/home?safe=eth:0xD03a6771b64E9A759523af3a89Fc982b2dd38591">Setup Approver Gnosis Safe (3/6)</a></td><td><p><mark style="color:yellow;"><code>TermInitializer.sol</code></mark>:</p><ul><li><a href="../latest/protocol-class/terminitializer#setupterm"><code>setupTerm</code></a></li><li><a href="../latest/protocol-class/terminitializer#setupauction"><code>setupAuction</code></a></li></ul></td></tr><tr><td>CONTROLLER_ADMIN_ROLE<br><br><a href="https://etherscan.io/address/0x2AB21222953A63f29Df48573A1c7E89D9f296685">Deploy Tools EOA</a> stored in AWS Parameters managed by AWS <a href="https://aws.amazon.com/kms/">Key Management Service (KMS)</a></td><td><p><a href="https://github.com/term-finance/term-finance-developer-docs/blob/main/access-controls/broken-reference/README.md"><mark style="color:yellow;"><code>TermController.sol</code></mark></a> :</p><ul><li><a href="../0.5.32/protocol-class/termcontroller#marktermdeployed"><code>markTermDeployed</code></a></li><li><a href="../0.5.32/protocol-class/termcontroller#unmarktermdeployed"><code>unmarkTermDeployed</code></a></li></ul></td></tr></tbody></table>
{% endtab %}

{% tab title="Avalanche" %}

<table><thead><tr><th width="466.53873659118">Role and Addresses</th><th>Contracts and Methods</th></tr></thead><tbody><tr><td>DEVOPS_ROLE<br><br><a href="https://app.safe.global/settings/setup?safe=base:0xb8A1dF43c1c88b13937C0c5CEBbAd15830cAeC03">"Ownerless" Gnosis Safe</a> with 24-hour <a href="https://snowtrace.io/address/0x7E8CdF62F0Aa78901B0A45907B00380E182698aa">Zodiac Delay Modifier </a>and <a href="https://etherscan.io/address/0x87D3C4Aa89f121c2D24C4F4A74C3C95c07088eA1">Zodiac Roles Modifier</a> providing <a href="https://app.safe.global/settings/setup?safe=base:0xd5E12854A3Dba99deF295A7635D3Ba16427d2A28">DevOps-Proposer Gnosis Safe (5/9)</a> with an invalidator role</td><td><p><mark style="color:yellow;"><code>All Contracts</code></mark>:</p><ul><li>_authorizeUpgrade</li><li>e.g. <a href="../0.5.31/term-repo-class/term-auction-group/termauction#_authorizeupgrade"><code>_authorizeUpgrade</code></a></li></ul><p><mark style="color:yellow;"><code>TermInitializer.sol</code></mark>:</p><ul><li><a href="../latest/protocol-class/terminitializer#pausedeploying"><code>pauseDeploying</code></a></li><li><a href="../latest/protocol-class/terminitializer#unpausedeploying"><code>unpauseDeploying</code></a></li></ul><p><a href="https://github.com/term-finance/term-finance-developer-docs/blob/main/access-controls/broken-reference/README.md"><mark style="color:yellow;"><code>TermController.sol</code></mark></a> :</p><ul><li><a href="../0.5.32/protocol-class/termcontroller#updatetreasuryaddress"><code>updateTreasuryAddress</code></a></li><li><a href="../0.5.32/protocol-class/termcontroller#updateprotocolreserveaddress"><code>updateProtocolReserveAddress</code></a></li></ul><p><a href="https://github.com/term-finance/term-finance-developer-docs/blob/main/access-controls/broken-reference/README.md"><mark style="color:yellow;"><code>TermPriceConsumerV3.sol</code></mark></a>:</p><ul><li><a href="../0.5.32/protocol-class/termpriceconsumerv3#addnewtokenpricefeed"><code>addNewTokenPriceFeed</code></a></li><li><a href="../0.5.32/protocol-class/termpriceconsumerv3#removetokenpricefeed"><code>removeTokenPriceFeed</code></a></li></ul></td></tr><tr><td>ADMIN_ROLE<br><br><a href="https://app.safe.global/settings/setup?safe=base:0x73d1C7dc9CEb14660Cf1E9BB29F80ECF9E97D774">Admin Gnosis Safe (4/9)</a></td><td><p>Access to various admin actions for each contract group, documented below:</p><ul><li><a href="term-finance-protocol/term-repo/term-auction-group/administrative-functions">Term Auction Group</a></li><li><a href="term-finance-protocol/term-repo/term-servicer-group/administrative-functions">Term Servicer Group</a></li><li><a href="term-finance-protocol/term-repo/term-repo-token/administrative-functions">Term Repo Token</a></li><li><a href="term-finance-protocol/protocol-contracts">Protocol Contracts</a></li></ul></td></tr><tr><td>INITIALIZER_APPROVER_ROLE<br><br><a href="https://app.safe.global/settings/setup?safe=base:0xD03a6771b64E9A759523af3a89Fc982b2dd38591">Setup Approver Gnosis Safe (3/9)</a></td><td><p><mark style="color:yellow;"><code>TermInitializer.sol</code></mark>:</p><ul><li><a href="../latest/protocol-class/terminitializer#setupterm"><code>setupTerm</code></a></li><li><a href="../latest/protocol-class/terminitializer#setupauction"><code>setupAuction</code></a></li></ul></td></tr><tr><td>CONTROLLER_ADMIN_ROLE<br><br><a href="https://etherscan.io/address/0x2AB21222953A63f29Df48573A1c7E89D9f296685">Deploy Tools EOA</a> stored in AWS Parameters managed by AWS <a href="https://aws.amazon.com/kms/">Key Management Service (KMS)</a></td><td><p><a href="https://github.com/term-finance/term-finance-developer-docs/blob/main/access-controls/broken-reference/README.md"><mark style="color:yellow;"><code>TermController.sol</code></mark></a> :</p><ul><li><a href="../0.5.32/protocol-class/termcontroller#marktermdeployed"><code>markTermDeployed</code></a></li><li><a href="../0.5.32/protocol-class/termcontroller#unmarktermdeployed"><code>unmarkTermDeployed</code></a></li></ul></td></tr></tbody></table>
{% endtab %}

{% tab title="Base" %}

<table><thead><tr><th width="466.53873659118">Role and Addresses</th><th>Contracts and Methods</th></tr></thead><tbody><tr><td>DEVOPS_ROLE<br><br><a href="https://app.safe.global/home?safe=base:0xb8A1dF43c1c88b13937C0c5CEBbAd15830cAeC03">"Ownerless" Gnosis Safe</a> with 24-hour <a href="https://basescan.org/address/0xb64C32D6B44BD0f48c6a0B834e7fdB416d834a67">Zodiac Delay Modifier </a>and <a href="https://basescan.org/address/0x8eF51A946b939eEd46552770D0D6511a72033b50">Zodiac Roles Modifier</a> providing <a href="https://app.safe.global/home?safe=base:0xd5E12854A3Dba99deF295A7635D3Ba16427d2A28">DevOps-Proposer Gnosis Safe (5/11)</a> with an invalidator role</td><td><p><mark style="color:yellow;"><code>All Contracts</code></mark>:</p><ul><li>_authorizeUpgrade</li><li>e.g. <a href="../0.5.31/term-repo-class/term-auction-group/termauction#_authorizeupgrade"><code>_authorizeUpgrade</code></a></li></ul><p><mark style="color:yellow;"><code>TermInitializer.sol</code></mark>:</p><ul><li><a href="../latest/protocol-class/terminitializer#pausedeploying"><code>pauseDeploying</code></a></li><li><a href="../latest/protocol-class/terminitializer#unpausedeploying"><code>unpauseDeploying</code></a></li></ul><p><a href="https://github.com/term-finance/term-finance-developer-docs/blob/main/access-controls/broken-reference/README.md"><mark style="color:yellow;"><code>TermController.sol</code></mark></a> :</p><ul><li><a href="../0.5.32/protocol-class/termcontroller#updatetreasuryaddress"><code>updateTreasuryAddress</code></a></li><li><a href="../0.5.32/protocol-class/termcontroller#updateprotocolreserveaddress"><code>updateProtocolReserveAddress</code></a></li></ul><p><a href="https://github.com/term-finance/term-finance-developer-docs/blob/main/access-controls/broken-reference/README.md"><mark style="color:yellow;"><code>TermPriceConsumerV3.sol</code></mark></a>:</p><ul><li><a href="../0.5.32/protocol-class/termpriceconsumerv3#addnewtokenpricefeed"><code>addNewTokenPriceFeed</code></a></li><li><a href="../0.5.32/protocol-class/termpriceconsumerv3#removetokenpricefeed"><code>removeTokenPriceFeed</code></a></li></ul></td></tr><tr><td>ADMIN_ROLE<br><br><a href="https://app.safe.global/home?safe=base:0x73d1C7dc9CEb14660Cf1E9BB29F80ECF9E97D774">Admin Gnosis Safe (4/10)</a></td><td><p>Access to various admin actions for each contract group, documented below:</p><ul><li><a href="term-finance-protocol/term-repo/term-auction-group/administrative-functions">Term Auction Group</a></li><li><a href="term-finance-protocol/term-repo/term-servicer-group/administrative-functions">Term Servicer Group</a></li><li><a href="term-finance-protocol/term-repo/term-repo-token/administrative-functions">Term Repo Token</a></li><li><a href="term-finance-protocol/protocol-contracts">Protocol Contracts</a></li></ul></td></tr><tr><td>INITIALIZER_APPROVER_ROLE<br><br><a href="https://app.safe.global/home?safe=base:0xD03a6771b64E9A759523af3a89Fc982b2dd38591">Setup Approver Gnosis Safe (3/6)</a></td><td><p><mark style="color:yellow;"><code>TermInitializer.sol</code></mark>:</p><ul><li><a href="../latest/protocol-class/terminitializer#setupterm"><code>setupTerm</code></a></li><li><a href="../latest/protocol-class/terminitializer#setupauction"><code>setupAuction</code></a></li></ul></td></tr><tr><td>CONTROLLER_ADMIN_ROLE<br><br><a href="https://etherscan.io/address/0x2AB21222953A63f29Df48573A1c7E89D9f296685">Deploy Tools EOA</a> stored in AWS Parameters managed by AWS <a href="https://aws.amazon.com/kms/">Key Management Service (KMS)</a></td><td><p><a href="https://github.com/term-finance/term-finance-developer-docs/blob/main/access-controls/broken-reference/README.md"><mark style="color:yellow;"><code>TermController.sol</code></mark></a> :</p><ul><li><a href="../0.5.32/protocol-class/termcontroller#marktermdeployed"><code>markTermDeployed</code></a></li><li><a href="../0.5.32/protocol-class/termcontroller#unmarktermdeployed"><code>unmarkTermDeployed</code></a></li></ul></td></tr></tbody></table>
{% endtab %}

{% tab title="BNB" %}

<table><thead><tr><th width="466.53873659118">Role and Addresses</th><th>Contracts and Methods</th></tr></thead><tbody><tr><td>DEVOPS_ROLE<br><br><a href="https://app.safe.global/home?safe=bnb:0xb8A1dF43c1c88b13937C0c5CEBbAd15830cAeC03">"Ownerless" Gnosis Safe</a> with 24-hour <a href="https://bscscan.com/address/0x0613507855562DB48390E19077028B8538a369AA">Zodiac Delay Modifier </a>and <a href="https://bscscan.com/address/0x67B6eB2bdAE054265E83c98C8e0d207013D6C7C1">Zodiac Roles Modifier</a> providing <a href="https://app.safe.global/home?safe=bnb:0xd5E12854A3Dba99deF295A7635D3Ba16427d2A28">DevOps-Proposer Gnosis Safe (5/11)</a> with an invalidator role</td><td><p><mark style="color:yellow;"><code>All Contracts</code></mark>:</p><ul><li>_authorizeUpgrade</li><li>e.g. <a href="../0.5.31/term-repo-class/term-auction-group/termauction#_authorizeupgrade"><code>_authorizeUpgrade</code></a></li></ul><p><mark style="color:yellow;"><code>TermInitializer.sol</code></mark>:</p><ul><li><a href="../latest/protocol-class/terminitializer#pausedeploying"><code>pauseDeploying</code></a></li><li><a href="../latest/protocol-class/terminitializer#unpausedeploying"><code>unpauseDeploying</code></a></li></ul><p><a href="https://github.com/term-finance/term-finance-developer-docs/blob/main/access-controls/broken-reference/README.md"><mark style="color:yellow;"><code>TermController.sol</code></mark></a> :</p><ul><li><a href="../0.5.32/protocol-class/termcontroller#updatetreasuryaddress"><code>updateTreasuryAddress</code></a></li><li><a href="../0.5.32/protocol-class/termcontroller#updateprotocolreserveaddress"><code>updateProtocolReserveAddress</code></a></li></ul><p><a href="https://github.com/term-finance/term-finance-developer-docs/blob/main/access-controls/broken-reference/README.md"><mark style="color:yellow;"><code>TermPriceConsumerV3.sol</code></mark></a>:</p><ul><li><a href="../0.5.32/protocol-class/termpriceconsumerv3#addnewtokenpricefeed"><code>addNewTokenPriceFeed</code></a></li><li><a href="../0.5.32/protocol-class/termpriceconsumerv3#removetokenpricefeed"><code>removeTokenPriceFeed</code></a></li></ul></td></tr><tr><td>ADMIN_ROLE<br><br><a href="https://app.safe.global/home?safe=bnb:0x73d1C7dc9CEb14660Cf1E9BB29F80ECF9E97D774">Admin Gnosis Safe (4/10)</a></td><td><p>Access to various admin actions for each contract group, documented below:</p><ul><li><a href="term-finance-protocol/term-repo/term-auction-group/administrative-functions">Term Auction Group</a></li><li><a href="term-finance-protocol/term-repo/term-servicer-group/administrative-functions">Term Servicer Group</a></li><li><a href="term-finance-protocol/term-repo/term-repo-token/administrative-functions">Term Repo Token</a></li><li><a href="term-finance-protocol/protocol-contracts">Protocol Contracts</a></li></ul></td></tr><tr><td>INITIALIZER_APPROVER_ROLE<br><br><a href="https://app.safe.global/home?safe=bnb:0xD03a6771b64E9A759523af3a89Fc982b2dd38591">Setup Approver Gnosis Safe (3/6)</a></td><td><p><mark style="color:yellow;"><code>TermInitializer.sol</code></mark>:</p><ul><li><a href="../latest/protocol-class/terminitializer#setupterm"><code>setupTerm</code></a></li><li><a href="../latest/protocol-class/terminitializer#setupauction"><code>setupAuction</code></a></li></ul></td></tr><tr><td>CONTROLLER_ADMIN_ROLE<br><br><a href="https://etherscan.io/address/0x2AB21222953A63f29Df48573A1c7E89D9f296685">Deploy Tools EOA</a> stored in AWS Parameters managed by AWS <a href="https://aws.amazon.com/kms/">Key Management Service (KMS)</a></td><td><p><a href="https://github.com/term-finance/term-finance-developer-docs/blob/main/access-controls/broken-reference/README.md"><mark style="color:yellow;"><code>TermController.sol</code></mark></a> :</p><ul><li><a href="../0.5.32/protocol-class/termcontroller#marktermdeployed"><code>markTermDeployed</code></a></li><li><a href="../0.5.32/protocol-class/termcontroller#unmarktermdeployed"><code>unmarkTermDeployed</code></a></li></ul></td></tr></tbody></table>
{% endtab %}

{% tab title="Plasma" %}

<table><thead><tr><th width="466.53873659118">Role and Addresses</th><th>Contracts and Methods</th></tr></thead><tbody><tr><td>DEVOPS_ROLE<br><br><a href="https://app.safe.global/settings/setup?safe=plasma:0xEF091234249846493F63E5042C9b030ab9A2aEB3">"Ownerless" Gnosis Safe</a> with 24-hour <a href="https://plasmascan.to/address/0xe1b116efaB0fc6f46e24C398c7B129DBc7f82c4c">Zodiac Delay Modifier </a>and <a href="https://plasmascan.to/address/0xe44445B8F43C351ea6DD9b038eEd2Bf5C93D0E19">Zodiac Roles Modifier</a> providing <a href="https://app.safe.global/transactions/history?safe=plasma:0xA40D49E49A306e22d9144351c994EE82FBaBDEEC">DevOps-Proposer Gnosis Safe (5/11)</a> with an invalidator role</td><td><p><mark style="color:yellow;"><code>All Contracts</code></mark>:</p><ul><li>_authorizeUpgrade</li><li>e.g. <a href="../0.5.31/term-repo-class/term-auction-group/termauction#_authorizeupgrade"><code>_authorizeUpgrade</code></a></li></ul><p><mark style="color:yellow;"><code>TermInitializer.sol</code></mark>:</p><ul><li><a href="../latest/protocol-class/terminitializer#pausedeploying"><code>pauseDeploying</code></a></li><li><a href="../latest/protocol-class/terminitializer#unpausedeploying"><code>unpauseDeploying</code></a></li></ul><p><a href="https://github.com/term-finance/term-finance-developer-docs/blob/main/access-controls/broken-reference/README.md"><mark style="color:yellow;"><code>TermController.sol</code></mark></a> :</p><ul><li><a href="../0.5.32/protocol-class/termcontroller#updatetreasuryaddress"><code>updateTreasuryAddress</code></a></li><li><a href="../0.5.32/protocol-class/termcontroller#updateprotocolreserveaddress"><code>updateProtocolReserveAddress</code></a></li></ul><p><a href="https://github.com/term-finance/term-finance-developer-docs/blob/main/access-controls/broken-reference/README.md"><mark style="color:yellow;"><code>TermPriceConsumerV3.sol</code></mark></a>:</p><ul><li><a href="../0.5.32/protocol-class/termpriceconsumerv3#addnewtokenpricefeed"><code>addNewTokenPriceFeed</code></a></li><li><a href="../0.5.32/protocol-class/termpriceconsumerv3#removetokenpricefeed"><code>removeTokenPriceFeed</code></a></li></ul></td></tr><tr><td>ADMIN_ROLE<br><br><a href="https://app.safe.global/transactions/history?safe=plasma:0xD33ea17aB17A79818a8dF682e9A50f667Fa67Fc7">Admin Gnosis Safe (4/10)</a></td><td><p>Access to various admin actions for each contract group, documented below:</p><ul><li><a href="term-finance-protocol/term-repo/term-auction-group/administrative-functions">Term Auction Group</a></li><li><a href="term-finance-protocol/term-repo/term-servicer-group/administrative-functions">Term Servicer Group</a></li><li><a href="term-finance-protocol/term-repo/term-repo-token/administrative-functions">Term Repo Token</a></li><li><a href="term-finance-protocol/protocol-contracts">Protocol Contracts</a></li></ul></td></tr><tr><td>INITIALIZER_APPROVER_ROLE<br><br><a href="https://app.safe.global/settings/setup?safe=plasma:0x97E476445a0a7433f6C2C1ea7C1E7938CFD57cEc">Setup Approver Gnosis Safe (3/6)</a></td><td><p><mark style="color:yellow;"><code>TermInitializer.sol</code></mark>:</p><ul><li><a href="../latest/protocol-class/terminitializer#setupterm"><code>setupTerm</code></a></li><li><a href="../latest/protocol-class/terminitializer#setupauction"><code>setupAuction</code></a></li></ul></td></tr><tr><td>CONTROLLER_ADMIN_ROLE<br><br><a href="https://etherscan.io/address/0x2AB21222953A63f29Df48573A1c7E89D9f296685">Deploy Tools EOA</a> stored in AWS Parameters managed by AWS <a href="https://aws.amazon.com/kms/">Key Management Service (KMS)</a></td><td><p><a href="https://github.com/term-finance/term-finance-developer-docs/blob/main/access-controls/broken-reference/README.md"><mark style="color:yellow;"><code>TermController.sol</code></mark></a> :</p><ul><li><a href="../0.5.32/protocol-class/termcontroller#marktermdeployed"><code>markTermDeployed</code></a></li><li><a href="../0.5.32/protocol-class/termcontroller#unmarktermdeployed"><code>unmarkTermDeployed</code></a></li></ul></td></tr></tbody></table>
{% endtab %}
{% endtabs %}

{% hint style="info" %}
Signers of the DevOps-Proposer Gnosis Safes and Admin Gnosis Safes are required to abide by the Signer Compliance Policy viewable [here](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fg2unsUVhFxcxuJwNIofz%2Fuploads%2FH076wEUfpUyXvSN97Hms%2FTerm%20Labs%20-%20Signer%20Compliance%20Policy%20231113.pdf?alt=media\&token=f4e793da-5314-4c97-8c9e-a629e58630da).
{% endhint %}
