# 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


---

# 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.kuma.bond/kuma-protocol/developers/smart-contract-architecture/decentralized-access-control.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.
