> For the complete documentation index, see [llms.txt](https://docs.kuma.bond/kuma-protocol/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.kuma.bond/kuma-protocol/developers/smart-contract-architecture/decentralized-access-control.md).

# Decentralized Access Control

All access control logic for the decentralized contracts (`KUMASwap`, `KIBToken`, `KBCToken`, and `MCAGRateFeed`) is handled by the the KUMA protocol's [AccessController](https://github.com/mimo-capital/tokenized-bonds/blob/main/src/AccessController.sol) contract. The following roles will be added to the KUMA protocol's access control to the following entities:

|     Entity    | Mint KIBT | Burn KIBT | Pause KUMASwap | Un-Pause KUMASwap | Set KIBT Epoch | Manager | KUMASwap Claim | Set KBC URI |
| :-----------: | :-------: | :-------: | :------------: | :---------------: | :------------: | :-----: | :------------: | :---------: |
|    KIBTSwap   |     ✅     |     ✅     |                |                   |                |         |                |             |
| MCAG MultiSig |           |           |                |                   |                |         |        ✅       |             |
|    KUMA DAO   |           |           |        ✅       |         ✅         |        ✅       |    ✅    |                |      ✅      |

* `KIBT_MINT_ROLE` - Mints KIBTokens
* `KIBT_BURN_ROLE` - Burns KIBTokens
* `KUMA_SWAP_PAUSE_ROLE` - Pauses `KUMASwap`, which prevents all transfers, minting, and burning of KUMA Bonds NFTs
* `KUMA_SWAP_UNPAUSE_ROLE` - Unpauses `KUMASwap`, which re-enables transfers, minting, and burning of KUMA Bonds NFTs after a pause
* `KIBT_SWAP_CLAIM_ROLE` - Claims the parent bonds of a clone bond in `KIBTSwap`
* `KIBT_SET_EPOCH_LENGTH_ROLE` - Sets KIBToken epoch length
* `KUMA_MANAGER_ROLE` - Sets configs of the protocol like `sellBond` fees, `minGas` in `KIBTSwap` , `KUMAFeeCollector` payees and shares, and contract addresses in the `KUMAAddressProvider`
* `KUMA_SET_URI_ROLE` - Sets the URI for the `Kuma Bond Clone Token` contract
