Every role in the Kasu system, system-wide and per pool, what each one may call, and how KasuController grants and revokes them.
All roles are managed through the KasuController contract using OpenZeppelin's AccessControl. Each address can hold multiple roles, and a single address may fill several roles for a given lending pool.
These roles are granted per lending pool by the Pool Admin via KasuController.grantLendingPoolRole().
Role
Hash
Description
Pool Admin
0xa1ae6eec...
Grants pool-specific roles (Pool Manager, Pool Funds Manager, Pool Clearing Manager). Sets Draw Recipient.
Pool Manager
0x3e891da8...
Manages pool parameters: tranche ratios, interest rates, draw amounts, deposit limits, excess liquidity. Can force withdrawals, cancel requests, and stop the pool.
Pool Funds Manager
0x3329bd6c...
Manages pool finances: repays owed funds, reports/repays losses, deposits/withdraws First Loss Capital.
Pool Clearing Manager
0xe9bdd900...
Executes clearing for the lending pool each epoch via LendingPoolManager.doClearing().