Parameters

All current markets (enUSD, enCHF) share the same CDP parameters.

CDP

ParameterValueDescription
MAX_LTV_BPS8,500 (85%)Maximum loan-to-value for borrowing and withdrawing
LIQ_LTV_BPS8,800 (88%)LTV threshold that triggers liquidation
MIN_DEBT400 unitsMinimum debt per position (e.g. 400 enUSD, 400 enCHF)
DONATION_BPS300 (3%)Percentage of seized collateral donated to vault during liquidation
ORACLE_MAX_AGE24 hoursMaximum acceptable oracle price age

Buyout Premiums

LTV RangePremium
Below 60%9%
60% to 84.99%6%
85% to 87.99%4%

Direct Swap (enUSD)

ParameterValueDescription
Mint fee0%No fee on minting enUSD from USDC/USDT
REDEEM_FEE_BPS50 (0.5%)Fee on enUSD redemption
Fee destinationENNI VaultRedeem fees are donated to the vault and distributed to ENNI stakers

Redemption liquidity depends on the USDC and USDT reserves held by the contract. There is no mint cap — enUSD can be minted 1:1 without limit.

Direct Swap Generic (enCHF)

ParameterValueDescription
Mint fee0%No fee on minting enCHF from ZCHF
REDEEM_FEE_BPS50 (0.5%)Fee on enCHF redemption, burned
Scale1e12Decimal conversion factor (ZCHF 18 dec → enCHF 6 dec)
Mint capConfigurableOwner-set cap on total enCHF minted via this contract

The mint cap limits total enCHF issuance through DirectMintGeneric. remainingMintCap() returns how much can still be minted. Redeeming does not restore mint cap — it only returns ZCHF reserves from the contract.

Savings

ParameterValueDescription
ANNUAL_RATE_BPS500 (5%)Fixed annual percentage rate, accrued per second
CLAIM_COOLDOWN1 hoursMinimum time between last deposit and claim/compound
Supply capNoneNo limit on total staked

Cooldown Behavior

  • Every new deposit resets the 1-hour claim cooldown timer.
  • Compounding does not reset the cooldown — users can compound without affecting their timer.
  • Withdrawals are always instant and unaffected by cooldown.
  • Rewards accrue continuously per second regardless of cooldown status.

Zap Routing

Both savings pools support depositing non-native assets via the EnniRouter:

PoolNative AssetZap Assets
enUSD SavingsenUSDUSDC, USDT
enCHF SavingsenCHFZCHF

When depositing a zap asset, the Router mints the native stablecoin 1:1 via DirectMint and deposits it into Savings in a single transaction. Approval is granted to the Router, not the Savings contract directly.

Oracle

ParameterValueDescription
STALE_CHAINLINK6 hoursChainlink ETH/USD rejected if older than this
STALE_REDSTONE24 hoursRedStone ETH/USD rejected if older than this
STALE_TRANSLATOR24 hoursTranslator feed (CHF/USD) rejected if older than this
ORACLE_MAX_AGE24 hoursMaximum acceptable price age for CDP operations
Price scale18 decimalsAll prices normalized to 1e18

Dual-Oracle Design

EnniOracle uses two independent ETH/USD price sources (Chainlink and RedStone) and takes the lower of the two. This protects the protocol against a single oracle reporting an inflated price.

CHF Market Oracle

The enCHF oracle derives ETH/CHF by combining the ETH/USD price with a CHF/USD translator feed. If any of the three feeds (Chainlink ETH/USD, RedStone ETH/USD, CHF/USD translator) is stale beyond its threshold, the oracle reverts and CDP operations are blocked until fresh prices are available.

Token

ENNIenUSDenCHF
Decimals1866
Max supply21,000,000UnlimitedUnlimited
Minter slots333

ENNI Supply Breakdown

AllocationAmountSource
Farming emissions20,000,000MasterChef (over 30 years)
Premint1,000,000Minted at deployment
Total21,000,000

ENNI uses a minter-role system with a maximum of 3 minter slots. Each minter has a hard cap on how much it can mint. The MasterChef contract holds one slot with a 20M budget. enUSD and enCHF are mintable by CDPs, DirectMint contracts, and any other authorized minters with no global supply cap.

Minter Configuration

TokenMinter 1Minter 2Minter 3
ENNIMasterChefDead addressDead address
enUSDCDP (enUSD)DirectMintSavings (enUSD)
enCHFCDP (enCHF)DirectMintGenericSavings (enCHF)

ENNI has two dead-address slots, meaning MasterChef is the only contract that will ever mint ENNI. This is enforced on-chain and cannot be changed without redeploying the token.

MasterChef

ParameterValueDescription
MAX_POOLS8Maximum number of farming pools
MAX_CHEF_MINT20,000,000 ENNITotal mintable by MasterChef over the full schedule
Emission duration30 yearsUses 365-day years for calculation
ACC_PRECISION1e12Accumulator scaling factor for reward math

Emission Schedule

PeriodYearsENNI / YearTotal for Period
Phase 11–22,000,0004,000,000
Phase 23–101,000,0008,000,000
Phase 311–30400,0008,000,000
Total20,000,000

Emissions are distributed across pools proportionally by allocPoint. A pool with allocPoint = 300 out of a totalAllocPoint = 1000 receives 30% of global emissions. Pool allocations can be changed by the owner at any time — allocPoint is a plain integer with no decimals, only the ratio matters.

Once mintedByChef reaches MAX_CHEF_MINT, all farming rewards stop permanently.

Rewards Vault

ParameterValueDescription
Reward tokens3ENNI, WETH, enUSD
Share ratio1:1Shares equal ENNI deposited

The vault receives redeem fees from EnniDirectMint (enUSD) and distributes them proportionally to ENNI stakers. Reward tokens accumulate passively — stakers can claim at any time. The vault does not have a lock period; ENNI can be deposited and withdrawn freely.