Pool Configuration
The pool settings a Pool Manager changes between clearings: tranche ratios, interest rates, draw amount and recipient, excess liquidity, limits and forcing.
All pool configuration functions can only be called outside of clearing periods unless otherwise noted.
Tranche Ratios#
Role: ROLE_POOL_MANAGER
Function: LendingPoolManager.updateTrancheDesiredRatios()
Updates the ratio between tranches. All ratios must sum to FULL_PERCENT (100_00 = 100%).
Values use 2 decimal places: 10.12% = 1012
Example: A pool with 20% Junior, 10% Mezzanine, 70% Senior: [2000, 1000, 7000]
Interest Rates#
Role: ROLE_POOL_MANAGER
Function: LendingPoolManager.updateTrancheInterestRate()
Updates a tranche's per-epoch interest rate. Changes take effect after a configurable epoch delay (default: 4 epochs). The Kasu Admin can override this delay.
Interest rates use 18-decimal precision (1e18 = 100%):
| Value | Rate |
|---|---|
100000000000000000 | 10% per epoch |
10000000000000000 | 1% per epoch |
1000000000000000 | 0.1% per epoch |
Draw Amount#
Role: ROLE_POOL_MANAGER
Function: LendingPoolManager.updateDesiredDrawAmount()
Sets the total desired loan amount. This represents the total owed amount including previously drawn capital and accrued interest.
If insufficient deposits are available, clearing will revert. The Pool Clearing Manager must override the draw amount within the available range.
Draw Recipient#
Role: ROLE_POOL_ADMIN
Function: LendingPoolManager.updateDrawRecipient()
Sets the address that receives drawn USDC during clearing Step 5.
Excess Liquidity#
Role: ROLE_POOL_MANAGER
| Function | Purpose |
|---|---|
updateTargetExcessLiquidityPercentage() | Target excess funds kept in the pool (must be >= minimum) |
updateMinimumExcessLiquidityPercentage() | Minimum excess funds that must remain (must be <= target) |
Both are percentages of the owed amount using FULL_PERCENT (100_00):
| Value | Percentage |
|---|---|
10 | 0.1% |
100 | 1% |
1000 | 10% |
The minimum excess liquidity percentage prevents LPs from withdrawing below a safety threshold. It does not affect the draw amount.
Deposit Limits#
Role: ROLE_POOL_MANAGER
| Function | Purpose |
|---|---|
updateMinimumDepositAmount() | Minimum USDC per deposit request per tranche |
updateMaximumDepositAmount() | Maximum USDC per deposit request per tranche |
Force Withdrawals#
Role: ROLE_POOL_MANAGER
| Function | Priority | Description |
|---|---|---|
batchForceWithdrawals() | Highest LP priority | Creates withdrawal requests that are processed first during the next clearing |
forceImmediateWithdrawal() | Immediate | Withdraws LP funds immediately from excess funds, bypassing clearing |
Before a force withdrawal, ensure the LP does not have conflicting pending requests. Use forceCancelWithdrawalRequest() or forceCancelDepositRequest() to clear them.