This page lists all configurable protocol parameters with their default values and allowed ranges.
Some parameters may differ between Polygon and BSC deployments. Values shown are protocol defaults.
LTV Configuration
Tier Defaults
| Tier | Default LTV | Description |
|---|
| Conservative | 80% (0.8e18 WAD) | High liquidity, established markets |
| Moderate | 65% (0.65e18 WAD) | Standard liquidity, active trading |
| Risk | 50% (0.5e18 WAD) | Lower liquidity, higher volatility |
LTV Rules
- Override direction: Per-position overrides can only reduce LTV, never increase
- Constraint:
conservative ≥ moderate ≥ risk (tier ordering enforced)
- Max: 100% (1e18 WAD)
Oracle Parameters
Timing
| Parameter | Default | Min | Max | Description |
|---|
maxStaleness | 15 minutes | 1 minute | 1 day | Price age before considered stale |
liquidationGracePeriod | 5 minutes | 0 | 1 hour | Block liquidation after oracle recovery |
defaultEarlyClosureWindow | 7 days | 0 | 90 days | Deposit block + LTV decay window |
Liquidity
| Parameter | Value | Description |
|---|
MIN_LIQUIDITY | $10,000 | Minimum orderbook depth for valid collateral |
Price Calculation
conservativePrice = min(spotPrice, twapPrice)
Both spotPrice and twapPrice are 8 decimals (1e8 = $1.00).
Liquidation Parameters
Global Configuration
| Parameter | Default | Description |
|---|
targetHealthFactor | 1.05 (1.05e18 WAD) | Target HF after partial liquidation |
healthFactorForMaxBonus | 0.8 (0.8e18 WAD) | HF at which max bonus is reached |
liquidationBonusFactorBps | 3333 (33.33%) | Ratio of minBonus to maxBonus |
dustThreshold | $10 | Min remaining debt after partial liquidation |
collateralDustThreshold | $10 | Min remaining collateral value after seizure |
Tier Liquidation Config (Defaults)
| Tier | Max Bonus | Protocol Fee |
|---|
| Conservative | 15% (1500 BPS) | 10% (1000 BPS) |
| Moderate | 15% (1500 BPS) | 10% (1000 BPS) |
| Risk | 15% (1500 BPS) | 10% (1000 BPS) |
Bonus Calculation
minBonus = maxBonus × liquidationBonusFactorBps / 10000
With defaults: minBonus = 15% × 33.33% = 5%
Bonus scales linearly from minBonus (at HF ~1.0) to maxBonus (at HF ≤ 0.8).
Bad Debt
| Parameter | Value | Description |
|---|
BAD_DEBT_DISCOUNT_BPS | 500 (5%) | Discount on collateral value for bad debt liquidation |
Core Parameters
Borrow Constraints
| Parameter | Value | Description |
|---|
MIN_BORROW | 10 units | Minimum borrow amount (10 USDC on Polygon, 10 USDT on BSC) |
MIN_BORROW_DURATION | 1 minute | Anti-flashloan repay delay |
LIQUIDATION_THRESHOLD | 1.0 (1e18 WAD) | HF below this is liquidatable |
Position Limits
| Parameter | Default | Min | Max | Description |
|---|
maxPositions | 20 | 1 | 100 | Max distinct positions per user |
Pool Parameters
Reserve
| Parameter | Value | Description |
|---|
RESERVE_FEE_BPS | 1000 (10%) | Portion of borrower interest sent to reserve |
Caps (Governance-Configurable)
| Parameter | Default | Description |
|---|
depositCap | 0 (uncapped) | Max total LP deposits |
borrowCap | 0 (uncapped) | Max total outstanding borrows |
Interest Rate Strategy
Default Parameters
| Parameter | Default | Description |
|---|
optimalUsageRatio | 8000 (80%) | Kink point |
baseVariableBorrowRate | 200 (2%) | Base APR at 0% utilization |
variableRateSlope1 | 750 (7.5%) | Slope below kink |
variableRateSlope2 | 10000 (100%) | Slope above kink |
Bounds
| Parameter | Min | Max |
|---|
optimalUsageRatio | 1% (100 BPS) | 99% (9900 BPS) |
maxBorrowRate | — | 1000% (100000 BPS) |
Below kink (utilization ≤ optimal):
borrowRate = baseRate + slope1 × (utilization / optimalRatio)
Above kink (utilization > optimal):
borrowRate = baseRate + slope1 + slope2 × ((utilization - optimal) / (1 - optimal))
Precision Constants
| Constant | Value | Usage |
|---|
WAD | 1e18 | Percentage precision (1.0 = 1e18) |
RAY | 1e27 | Interest rate precision |
BPS | 10000 | Basis points (100% = 10000) |
PRICE_DECIMALS | 8 | Oracle price precision (1e8 = $1.00) |
Reading Parameters On-Chain
Use the SDK to read current parameter values:
import * as views from "@varla/sdk/views";
// LTV config
const ltv = await views.readTieredLtvConfig({ core });
// { tier0: 0.8e18, tier1: 0.65e18, tier2: 0.5e18 }
// Liquidation config
const liq = await views.readLiquidationConfig({ core });
// { targetHealthFactor, healthFactorForMaxBonus, ... }
// Oracle timing
const oracle = await views.readOracleTiming({ oracle });
// { maxStaleness, liquidationGracePeriod }
// Pool rates
const rates = await views.readPoolRates({ pool });
// { utilizationWad, borrowRateRay, supplyApyRay }
See SDK Reads for the full list of view helpers.