Pools & Tranches

Lending pools are the core unit of the Kasu system. Each pool accepts USDC deposits from KYC'd Liquidity Providers, deploys capital to off-chain borrowers via a Pool Funds Manager, and processes repayments and withdrawals through epoch-based clearing.

Lending Pool

A lending pool is both a ledger and an ERC-20 token. The pool's token supply represents its total balance relative to USDC. The pool balance equals:

Pool Balance = Sum of all tranche balances + First Loss Capital

Liquidity Providers do not interact with the lending pool directly. All interactions go through the LendingPoolManager contract, which routes deposits to the corresponding Pending Pool and manages clearing.

Pending Pool

Each lending pool has a Pending Pool (ERC-721 contract) that holds deposit and withdrawal requests. When a Liquidity Provider submits a request:

  • Deposit: The Pending Pool receives the USDC and mints a non-transferable D-NFT as receipt

  • Withdrawal: The Pending Pool receives tranche shares and mints a non-transferable W-NFT as receipt

Requests accumulate during the epoch and are processed during the clearing period. D-NFTs and W-NFTs are burned when requests are fully accepted. Partially accepted requests update the NFT with the remaining amount.

If a Liquidity Provider submits another deposit request in the same epoch, the existing D-NFT is reused and the amount is increased.

Tranches

Each lending pool can have 1 to 3 tranches, representing different risk-return profiles:

Tranche
Risk
Return
Loss Priority

Junior

Highest

Highest

First to absorb losses (after First Loss Capital)

Mezzanine

Medium

Medium

Second to absorb losses

Senior

Lowest

Lowest

Last to absorb losses

Tranches are ERC-4626 vaults. When a deposit is accepted during clearing, the tranche mints non-transferable tranche shares 1:1 with USDC deposited. USDC-IOUs are minted within the tranche to track the accounting value (principal + interest).

Pools with a single tranche do not use the "tranche" terminology in the UI — the pool itself represents the single investment offer.

Tranche Allocation & Overflow

At clearing time, if a tranche is oversubscribed, excess deposits overflow to the next tranche with lower risk:

  1. Fill Junior tranche to capacity

  2. Overflow to Mezzanine (if exists)

  3. Overflow to Senior (if exists)

  4. Reject remaining deposits

Within each tranche, deposits are processed by loyalty level (highest first). Overflow deposits retain their loyalty level priority in the next tranche.

Excess funds accepted into the lending pool (above the draw amount) are allocated to the Senior tranche.

Example

Tranche
Capacity
Requested
Accepted

Junior

$20,000

$70,000

$20,000

Mezzanine

$30,000

$20,000

$30,000 (including $10K overflow from Junior)

Senior

$50,000

$40,000

$50,000 (including overflow)

Remaining $30,000 in deposit requests are rejected and returned to Liquidity Providers.

Last updated