Early Withdrawal Cost Calculation

Early Redemption of Freezer NFTs has a variable frETH fee and a 0.25% WETH penalty.

1 frETH is minted per 1 ETH-YEAR locked. Where for simplicity 1 Year always equals 365 Days. frETHm=amountdays/365frETH_m = amount * days/365 Upon deposit, immediate early withdrawal of a NFT costs 1.20x the frETH minted from that NFT's creation. This amount falls to 1x frETH minted over the first 67% of the lock duration. In the final 33% of the lock duration, it rapidly falls to 0 frETH on/after the maturity date. A 0.25% WETH penalty is assessed on all Freezer NFTs prior to maturity date. On/after maturity, this is 0%.

When an NFT is redeemed prior to 67% of its lock time, more frETH is required than was originally minted for the NFT. 50% of this amount above minted is given to FRZ stakers, the rest is burned. NFTs redeemed in the final 33% of their lock time have all the frETH fee burned (the 0.25% WETH penalty always goes to FRZ stakers). Example: Alice locks 90 WETH for 3 Years (1,095 days). She mints 270 frETH for doing this. Her Early Withdrawal Costs in frETH start high and drop to 0, i.e., her NFT becomes more valuable daily.

DateProgressfrETH FeeWETH Penalty

Day 1

0%

324 frETH (270 frETH * 1.20)

0.225 WETH (90 WETH * 0.25%)

Day 365

33%

297 frETH

0.225 WETH

Day 730

67%

270 frETH

0.225 WETH

Day 912

85%

135 frETH

0.225 WETH

Day 1095

100%

0 frETH

0.00 WETH

In Code form:

// Identifying Cost to Withdraw in frETH

# mint_amount = amount WETH deposited * (days locked / 365)
# time_locked = # days locked
# time_passed = current date - date locked (measured in days)

cost_to_withdraw = function(mint_amount, time_locked, time_passed){ 
 
 progress = time_passed / time_locked 

# On or after maturity date it is 0 frETH fee (and 0 WETH penalty)
# to redeem the NFT.

if(progress >= 1){ 
    return(0) 
    }
     
# Prior to the breakeven date frETH fee reduces 
# from 1.2x frETH minted to 1x frETH minted. 0.25% WETH penalty.

  if(progress < 0.67){ 
    return(
     mint_amount + (0.2 * mint_amount * ( 1 - progress / 0.67))
    ) 

# After the breakeven date (2/3rds of lock time)
# frETH fee rapidly falls from 1x frETH minted to 0 frETH.
# 0.25% WETH penalty applies until maturity date.

  } else {
    return ( 
    mint_amount * ( 
      1 -  ( (progress - 0.67)/0.33 ) 
      )
    )
    }
}

Last updated