# Roles and Permissions

The protocol uses a role-based access control system managed through the **AccessControlManager** contract.

**AccessControlManager**

`0x1d19E18ECaC4ef332a0d5d6Aa3a0f0f772605f60`

Each role is assigned to a specific caller (multisig or timelock) and governs sensitive protocol actions.

**PAUSER\_ROLE**\
**Callable by:** Admin Multisig\
**Description:** Pause or resume deposits and redemptions in Senior and Junior tranches.\
**Functions:**

* `StrataCDO::setActionStates`\
  Sets action states for the tranche
* `StrataCDO::setJrtShortfallPausePrice`\
  Sets the JRT shortfall price at which deposits automatically pause

**UPDATER\_FEED\_ROLE**\
**Callable by:** Operational Multisig\
**Description:** Triggers APR refresh and recalculation.\
**Functions:**

* `Accounting::onAprChanged`\
  Triggers fetching new APRs to update `srtTargetIndex`
* `AprPairFeed::updateRoundData`\
  Pulls APR values from the provider and updates when deviation is detected

**UPDATER\_STRAT\_CONFIG\_ROLE**\
**Callable by:** 24h Timelock\
**Description:** Updates strategy risk parameters and cooldown periods.\
**Functions:**

* `Accounting::setRiskParameters`
* `sUSDeStrategy::setCooldowns`

**RESERVE\_MANAGER\_ROLE**\
**Callable by:** 24h Timelock\
**Description:** Redistributes reserve back to tranche TVL or withdraws protocol reserve to the treasury wallet.\
**Functions:**

* `StrataCDO::reduceReserve`\
  Transfers reserve to the treasury
* `StrataCDO::distributeReserve`\
  Distributes reserve assets to the tranches
* `StrataCDO::setReserveTreasury`\
  Sets the treasury wallet for reserve withdrawals

**PROPOSER\_CONFIG\_ROLE**\
**Callable by:** Admin Multisig\
**Description:** Proposes changes to exit-fee configuration parameters in the TwoStepConfigManager contract.\
**Functions:**

* **`TwoStepConfigManager::scheduleExitFeeChange`**\
  Schedules a new exit-fee configuration to take effect after the required delay.

**OWNER\_ROLE**\
**Callable by:** 48h Timelock\
**Description:** High-level protocol methods that modify configuration.\
**Functions:**

* `Accounting::setAprPairFeed`\
  Sets the APR feed contract
* `Accounting::setReserveBps`\
  Sets the percentage of gains allocated to reserves
* `Accounting::setFeeRetentionBps`\
  Sets the portion of fees returned to tranche TVL (remainder goes to reserve)
* `Accounting::setMinimumJrtSrtRatio`\
  Hard minimum Jrt/Srt ratio below which Jrt withdrawals are halted
* `Accounting::setMinimumJrtSrtRatioBuffer`\
  Protective buffer ratio at which Srt deposits are halted
* `UnstakCooldown::setImplementations`\
  Sets unstake implementations for supported assets (e.g. sUSDe)
* `AprPairFeed::setProvider`\
  Sets the new APR provider
* `AprPairFeed::setRoundStaleAfter`\
  Sets the duration after which a round becomes stale


---

# 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.strata.markets/technical-documentation/roles-and-permissions.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.
