Enzyme Protocol v2 - General Spec

Searchβ¦

Architecture

Fund Creation and Migration

External Interactions

Fee Formulas

Misc Topics

Governance

Tokenomics

Security

Management Fee

The current management fee implementation is making some approximations, which are not necessary. Instead, we can calculate the correct number based on the formulas below.

Some definitions

Management fee rate (annual, in percent):

`x`

Effective management fee rate (annual, in percent, after dilution):

`k`

Since management fee is not paid out (as a percentage of assets), but is allocated as newly minted shares in the fund, we need to use the effective management fee rate. This ensures that the manager receives the correct ratio of shares.

The two fee rates are related as follows:

β

$x = \frac{k}{1+k}$

βor, alternatively

β

$k = \frac{x}{1-x}$

βContinuous compounding

Management fee accrual happens at irregular and unknown intervals, so we have to resort to continuous compounding. The continuous management fee rate

`z`

is related to the annual effective management fee rate `k`

as follows:β

$e^{z} = 1 + k$

βor, alternatively

β

$z = ln(1+k)$

βSubstituting for the effective management fee rate

`k`

yields the relation between the continuous management fee rate and the annual management fee rate:β

$e^{z} = \frac{1}{1-x}$

βor, alternatively

β

$z=-ln(1-x)$

βManagement fee allocation

Whenever management fee is due after a time period

`t`

(expressed as a fraction of a year), the number of shares changes as followsβ

$S' = e^{z\cdot t} S$

β`S`

is the total supply of shares before the allocation of the management fee shares, and `S'`

is the total supply of shares after the allocation of the management fee shares.The share allocation to the manager is

`S_{manager} = S'-S`

, and it is calculated as follows:β

$S_{manager} = \left( \frac{1}{(1-x)^{t}} -1\right) S$

βor

β

$S_{manager} = \left( (1+k)^{t} -1\right) S$

βUsing

` t = \Delta t / N`

, we can rewrite this asβ

$S_{manager} = ( f^{\Delta t} -1) S$

βwhere

β

$f = (1+k)^{1/N}$

β`f`

is calculated off-chain when configuring the fee, and it is stored on-chain as `scaledPerSecondRate`

. The on-chain computation is then`sharesDue = (rpow(scaledPerSecondRate, numberOfSeconds, 10*27) - 10**27) * totalSupply / 10**27`

Last modified 10mo ago

Copy link