Interest Rates

DUSD borrowing involves stability fees (interest rates) that adjust dynamically based on market conditions, system utilization, and collateral risk to maintain protocol stability and incentivize proper behavior.

Interest Rate Model

Base Rate Calculation

contract InterestRateModel {
    uint256 public baseRate = 2e16; // 2% base rate
    uint256 public multiplier = 5e16; // 5% multiplier
    uint256 public jumpMultiplier = 109e16; // 109% jump multiplier
    uint256 public kink = 8e17; // 80% utilization kink
    
    function getBorrowRate(uint256 cash, uint256 borrows, uint256 reserves) 
        external view returns (uint256) {
        uint256 util = utilizationRate(cash, borrows, reserves);
        
        if (util <= kink) {
            return baseRate + (util * multiplier / 1e18);
        } else {
            uint256 normalRate = baseRate + (kink * multiplier / 1e18);
            uint256 excessUtil = util - kink;
            return normalRate + (excessUtil * jumpMultiplier / 1e18);
        }
    }
    
    function utilizationRate(uint256 cash, uint256 borrows, uint256 reserves) 
        public pure returns (uint256) {
        if (borrows == 0) return 0;
        return borrows * 1e18 / (cash + borrows - reserves);
    }
}

Rate Components

Collateral-Specific Rates

Risk-Based Pricing

Collateral
Base Rate
Risk Premium
Current Rate
Max Rate

USDC

0.5%

0%

0.5%

5%

ETH

2%

1%

3%

15%

WBTC

2%

1%

3%

15%

DI

1%

2%

3%

20%

Rate Calculation by Asset

Dynamic Rate Adjustments

Market-Responsive Rates

Utilization-Based Adjustments

Interest Accrual

Compound Interest Calculation

User Interest Calculation

Interest Payment

Automatic Accrual

Interest accrues automatically on every interaction:

Manual Interest Payment

Rate Monitoring

Real-time Rate Tracking

Interest Rate Dashboard

Rate Optimization

Borrowing Strategy

Rate Arbitrage

Integration Examples

Interest Calculator

Last updated