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. 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.
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