Risk parameters
Every live value, per market.
Per market#
Risk parameters are set per asset, ordered by how far each one realistically moves. Both loan types are tiered, and the fixed-term cap always sits below the variable one.
| Market | Max LTV | Liq. threshold | Fixed-term LTV | Leverage ceiling |
|---|---|---|---|---|
| Tesla | 45% | 50% | 30% | 1.82x |
| NVIDIA | 50% | 55% | 35% | 2.00x |
| Apple | 55% | 60% | 40% | 2.22x |
| Microsoft | 55% | 60% | 40% | 2.22x |
| S&P 500 ETF | 60% | 65% | 45% | 2.50x |
A diversified index does not move like a single volatile name, which is why the S&P market is the loosest and Tesla the tightest. The leverage ceiling is not a separate parameter: it falls out of max LTV as 1 / (1 - maxLTV).
The fixed-term cap can never exceed the variable one
Shared across all markets#
| Parameter | Value | Notes |
|---|---|---|
| Liquidation bonus | 5% | The liquidator's discount on seized collateral |
| Close factor | 50% | Most of a position's debt repayable in one liquidation |
| Reserve factor | 10% | Share of borrower interest retained by the protocol |
| Max oracle staleness | 24 hours | Price-dependent actions revert beyond this |
| Settlement delay | 7 days | Bounded on-chain between 1 and 30 days |
Fixed term#
| Parameter | Value |
|---|---|
| Rate | 8%/yr, simple interest |
| Terms offered | 1, 7, 14 or 30 days |
| Contract bounds | 1 to 30 days |
| Settlement bounty | 0.5% of seized collateral |
| Bounty ceiling | 2%, enforced on-chain |
| Loans per address | One at a time, per market |
The bounty ceiling sits far below the 5% liquidation bonus on purpose. A liquidator has to front the debt; a settler fronts only gas. Paying them alike would make settling the more profitable action.
Interest rate curve#
One kinked utilization curve is shared by every market. The curve is stateless, so sharing it costs nothing and keeps a single place to reason about rates.
| Point | Borrow rate |
|---|---|
| 0% utilization | 0%/yr |
| Up to the 80% kink | rising to 10%/yr |
| 100% utilization | up to 300%/yr |
The steep segment above the kink exists to protect lender withdrawals. When a pool approaches fully drained, borrowing becomes expensive enough that some borrowers repay and new lenders are drawn in.
Swap module#
| Parameter | Value |
|---|---|
| Fee | 0.30% |
| Fee ceiling | 5%, enforced on-chain |
| Pricing | Oracle-priced and halt-gated, with its own fixed 24-hour freshness check |
The swap module stands in for a DEX, since no real venue has liquidity for these mock tokens on testnet. It is what Multiply routes through.
Contract-level ceilings#
| Constant | Value | Why it exists |
|---|---|---|
| MAX_LEVERAGE | 5x | Hard cap in the zap, above any market's real ceiling |
| MAX_ITERATIONS | 10 | Gas bound on the multiply loop |
| MIN_FIXED_TERM | 1 day | Floor on fixed-term length |
| MAX_FIXED_TERM | 30 days | Ceiling on fixed-term length |
| MAX_SETTLEMENT_BOUNTY | 2% | Ceiling on the settler's cut |
| MAX_LIQUIDATION_BONUS | 20% | Ceiling on the liquidator's discount |
| MAX_RATE_PER_YEAR | 1000% | Ceiling on every leg of the rate curve |
| MIN_ORACLE_STALENESS | 1 hour | Stops the freshness window being set uselessly short |
| MAX_ORACLE_STALENESS | 7 days | Stops the market's freshness check being disabled |
| MAX_RESERVE_FACTOR | 50% | Ceiling on the protocol's cut of interest |
| MAX_FEE | 5% | Ceiling on the swap fee |
| MIN_SETTLEMENT_DELAY | 1 day | Stops governance making halts instantly settleable |
| MAX_SETTLEMENT_DELAY | 30 days | Stops governance restoring an indefinite lockup |
These are constants, not settings. Governance can move parameters within them but cannot change the ceilings themselves without deploying a new contract. Every governance-settable risk parameter has one; the last two gaps were closed in the September 2026 audit. See Governance.