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