Links

Yield Bearing Synths

THORFi Savings - Single sided asset exposure using Synthetics

Overview

Users can gain yield with single sided asset exposure using Synthetics. See the PR here which supersedes the previous design.
Synthetics is a feature that significantly increases the capital-efficiency of the network, while also allowing for faster and more efficient arbitrage. These synths, while contributing to the pool depths, are NOT yield-bearing. Any yield generated by the synth's ownership of the pool is passed on to the liquidity provider (LP).

Single Sided Yield

Synths can be locked up and generate yield. A part of the yield generated by synth collateral can be paid to the locked synth. Since synths are singled-asset exposed it is not subject to impermanent loss therefore and yield generated excludes impermanent loss losses.

Using LUVI

LUVI is used to measure growth within the pool and determine the yield to be paid. LUVI is an equation that helps determine the yield of a pool, irrespective of pool depth, asset price, and LPs. The equation is:
R = rune depth
A = asset depth
units = lp units
LUVI = sqrt(R*A)/units
To calculate the yield between T1 and T2, calculate the LUVI at each point (T), then the difference between them (as a percentage).

Synth Yield Algorithm

As locked synth holders take on significantly less risk than an LP, yield should be reflected. At most, a synth in the vault can earn 50% (SynthYieldBasisPoints) of the yield generated by the synth collateral, e.g. the same as if they would get had they provided both asset and rune. At a minimum, the yield may be zero and cannot be negative.
An incentive pendulum is created between two points (0-50) basis points based on the amount of RUNE the reserve has contributed to the pool (aka POL). The more POL in the pool, the less yield is passed to synth holders.
  • P = total rune in pool
  • R = rune in pool owned by PoL
  • m = maximum yield (ie 5000 basis points)
yieldPts=((PR)/Pm)yieldPts = ((P-R)/P * m)
LUVI scores are collected over time and compared to each other to determine any increase in the size of the pool, thus any yield earned. LUVI scores are taken every few blocks (set by SynthYieldCycle) and yield is calculated and paid on that iteration.
LUVIPoint1 = sqrt(R1*A1)/units1 // Previous LP Units
LUVI2Point2 = sqrt(R2*A2)/units2 // Current LP Units
The raw synth yield is worked out based on the previous LUVI score and the current one. ​
rawSynthYield=synthSupplyOfVault/(LUVIPoint1/LUVIPoint2)rawSynthYield = synthSupplyOfVault / (LUVIPoint1 / LUVIPoint2)
The actual synth yield paid is determined by the amount of RUNE added by the Reserve (POL) to allow greater synth minting.
actualSynthYield=rawSynthYield/(yieldPts/10000)actualSynthYield = rawSynthYield / (yieldPts / 10000)
At most, the actual Synth Yield will be 50%, the rest will go to liquidity providers. Yield is paid in the form of minting synth into the vault which is shared proportionally.

Resources:

Yield Bearing Synths and POL - GrassRoots Cryoto