Technical Considerations

System assumptions and constants, the Solidity compiler configuration, the known limitations of the design, and where to read the source.

System Assumptions#

  • The system uses USDC with 6 decimals as the base asset on all networks
  • All lending pool interactions go through the LendingPoolManager contract — users never interact with lending pools, tranches, or pending pools directly
  • All contracts are upgradeable via TransparentUpgradeableProxy (per-proxy ProxyAdmin)

Constants#

ConstantValueDescription
FULL_PERCENT100_00100% with 2 decimal places (used for ratios, fees)
INTEREST_RATE_FULL_PERCENT1e18100% with 16 decimal places (used for interest rates)
KSU_PRICE_MULTIPLIER1e18Multiplier for KSU price oracle values
Epoch duration7 daysSystem-wide, cannot be customized per pool
Clearing period48 hoursFinal portion of each epoch
Interest rate change delay4 epochs (default)Configurable by Kasu Admin
Max tranches per pool3Junior, Mezzanine, Senior
Min tranches per pool1Single investment offer
Max loyalty levels10Configurable thresholds

Solidity Configuration#

SettingValue
Solidity version0.8.23
Optimizer runs (Foundry)200
Optimizer runs (Hardhat)800 (200 for PendingPool)
OpenZeppelinv5.0.2

Limitations#

USDC Only#

Kasu currently only accepts USDC from Liquidity Providers. Multi-asset support is not available.

Uniform Epochs#

All lending pools share the same system-wide epoch timing. Custom per-pool epochs are not supported. This simplifies the system but means Pool Creators cannot configure lending pools with independent epoch schedules.

Unrealized Loss Token Supply#

In theory, if a lending pool reports losses so many times that the total supply of tranche share tokens would exceed 2^256, the tranche can no longer accept new deposits. In practice, this should not occur.

Block Gas Limits#

Clearing Steps 2 and 4 loop over user requests and may exceed block gas limits for large pools. The batch size parameters allow splitting these steps across multiple transactions.

Source Code#

The Kasu smart contracts source code is available at github.com/Kasu-Finance.