A secure decentralized lending protocol enabling users to borrow against sBTC collateral with built-in liquidation mechanisms. This contract implements core DeFi lending primitives while maintaining safety through robust collateralization checks and administrative controls.
-
sBTC Collateralized Loans
- Deposit SIP-010 compliant sBTC as collateral
- Borrow stablecoins/assets against collateral
- Minimum 150% collateralization ratio
-
Risk Management
- Configurable liquidation threshold (70-95% LTV)
- 5% liquidation rewards with safety caps
- Real-time collateral health monitoring
-
Security First
- Pause functionality for emergency stops
- Owner-restricted parameter updates
- Safe arithmetic operations with overflow protection
-
Transparent Tracking
- Public view functions for positions
- Real-time protocol statistics
- Separate liquidation reward tracking
graph TD
A[User] -->|Deposit| B(sBTC Collateral)
A -->|Borrow| C(Loan Issuance)
B --> D[Collateral Vault]
C --> E[Debt Registry]
F[Liquidator] -->|Liquidate| G[Under-Collateralized Positions]
G --> H[Reward Distribution]
D -->|Withdraw| I[Repaid Loans]
E -->|Update| J[Protocol Statistics]
Deposit Collateral
(deposit-collateral token-contract amount)- Transfers sBTC from user to protocol
- Increases user's collateral balance
- Updates total protocol deposits
Requirements:
amount > 0- Protocol not paused
- Valid sBTC token contract
Borrow Funds
(borrow token-contract amount)- Checks collateralization ratio (≥150%)
- Updates user's debt position
- Increases total protocol borrows
Collateral Check:
Repay Loan
(repay token-contract amount)- Reduces user's debt balance
- Accepts partial repayments
- Updates total protocol borrows
Trigger Liquidation
(liquidate token-contract user amount)- Available when:
$$(collateral * 10000) / debt ≤ liquidation_threshold$$ - Liquidator receives:
$$reward = min(amount * 1.05, collateral * 0.5)$$ - Debt and collateral reduced proportionally
Claim Rewards
(claim-rewards token-contract)- Transfers accumulated liquidation rewards
- Resets liquidator's reward balance
| Parameter | Range | Default | Description |
|---|---|---|---|
MIN-COLLATERAL-RATIO |
150% | Fixed | Minimum collateralization ratio |
interest-rate |
1-100% | 5% | Annual interest rate (BPS) |
liquidation-threshold |
70-95% | 80% | LTV ratio for liquidation trigger |
| Protocol Fee | - | 0% | Currently not implemented |
Owner Restricted Functions:
(set-interest-rate new-rate)
(set-liquidation-threshold new-threshold)
(pause-protocol)
(unpause-protocol)Safety Constraints:
- Interest rate: 100-10,000 BPS (1%-100%)
- Liquidation threshold: 7,000-9,500 BPS (70%-95%)
- Protocol pausable by owner only
| Code | Error | Description |
|---|---|---|
| u100 | ERR-NOT-AUTHORIZED | Unauthorized access attempt |
| u101 | ERR-INSUFFICIENT-BALANCE | Insufficient token balance |
| u102 | ERR-INSUFFICIENT-COLLATERAL | Collateral below minimum ratio |
| u103 | ERR-INVALID-AMOUNT | Invalid input amount |
| u106 | ERR-LIQUIDATION-FAILED | Liquidation conditions not met |
Key Protections:
- Reentrancy prevention through CEI pattern
- All token transfers use SIP-010 standard
- Separate collateral and debt tracking
- Arithmetic operations with overflow checks
- Time-locked parameter changes (future upgrade)
Liquidation Safeguards:
- Maximum 50% collateral loss per liquidation
- 5% minimum incentive for liquidators
- Progressive debt reduction mechanism
User Position Check:
(get-user-deposits user-principal)
(get-user-borrows user-principal)Protocol Analytics:
(get-protocol-stats)Returns:
total-deposits: Total sBTC lockedtotal-borrows: Outstanding debtinterest-rate: Current rate in BPS
Testing Checklist:
- Collateral ratio boundary conditions
- Liquidation reward calculations
- Protocol pause state interactions
- Interest rate parameter validation
- Cross-user isolation testing
Dependencies:
- SIP-010 compliant token contract
- STX blockchain v2.1+
- Clarity version 2.0