KSU Locking & Loyalty
The KSU token (ERC-20, symbol: KSU, supply: 1B) is the native token of the Kasu ecosystem. Locking KSU tokens grants rKSU (non-transferable receipt tokens), which determine loyalty level, fee share, and bonus APY. KSU locking does not require KYC.
Locking Mechanics
Anyone holding KSU tokens can lock them via KSULocking.lock() or KSULocking.lockWithPermit() for a predefined duration. Upon locking:
Bonus KSU tokens are added to the position (from the Bonus Locking Program supply)
rKSU tokens are minted based on the total locked amount and duration
Upon expiration, the user calls KSULocking.unlock() to retrieve their KSU (including bonus tokens).
rKSU Multipliers
30 days
0.05x (5%)
180 days
0.25x (25%)
360 days
0.50x (50%)
720 days
1.00x (100%)
Example: Locking 100 KSU for 360 days mints 50 rKSU.
Bonus KSU Multipliers
A portion of the KSU supply is allocated to the Bonus Locking Program. Bonus tokens are locked alongside the user's position:
30 days
0.00x (0%)
180 days
0.10x (10%)
360 days
0.25x (25%)
720 days
0.70x (70%)
Example: Locking 1,000 KSU for 360 days adds 250 bonus KSU, resulting in 1,250 KSU locked. The rKSU minted is 1,250 * 0.50 = 625 rKSU.
Loyalty Levels
A Liquidity Provider's loyalty level determines their priority during clearing. The level is derived from the ratio of rKSU value to total deposits:
Level 0
Default (no locking required)
Level 1
lockingLendingRatio >= 1% and < 5%
Level 2
lockingLendingRatio >= 5%
The system supports up to 10 configurable loyalty levels. Thresholds are set via SystemVariables.setLoyaltyThresholds().
Loyalty levels are recalculated each epoch before clearing by calling UserManager.batchCalculateUserLoyaltyLevels().
Special cases:
Withdrawal requests outstanding for 5+ epochs automatically receive Loyalty Level 2
Force Withdrawals receive a non-public priority level above Level 2
Fee Distribution
KSU lockers receive a pro-rata share of Ecosystem Fees based on their rKSU balance. Anyone can call KSULocking.emitFees() to distribute accrued fees, and lockers claim their share via KSULocking.claimFees().
Fees are only distributed to lockers who have KSU locked at the time of repayment.
Bonus APY
Liquidity Providers with active KSU locks receive additional APY on their lending positions, paid in KSU tokens:
Level 1
0.1% of active USDC
Level 2
0.2% of active USDC
Emergency Withdraw
The Kasu Admin can call KSULocking.emergencyWithdraw() to forcibly unlock all users' KSU positions. This is a safety mechanism for critical exploit scenarios.
Last updated