In NOYA , there are 3 types of fees.

Withdrawal fee:

It's a percentage of user's withdrawal (currently is 0%). It occurs in the "executeWithdraw" function of the accountingManager contract.

Management fee:

The manager simply mint x% of the total shares * (time_elapsed_from_last_fee / seconds_in_year) to the feeReceiver periodically (at most every 10 days). The manager will call the "collectManagementFees" function of the accountingManager contract to redeem this fee.

Performance fee:

If the noya vault makes any profit, the strategy manager will get a percentage of that profit. To ensure that this is actually the profit and the manager is not manipulating the vault, there is a 2 step process to get this fee. 1. First the strategy manager calls the “recordProfitForFee “ function to calculate the shares of the fees and store the fee amount in “preformanceFeeSharesWaitingForDistribution “ variable. 2. It has to wait for at least 12 hours. During this 12 hours, if the profit of noya goes lower than the profit amount at the end of step 1, anyone can call the function "checkIfTVLHasDroped" and the fees that were recorded in the step 1 will be put to 0. To get the fees again, the manager has to do the first step again and wait for 12 hours. If the profit doesn’t drop within 12 hours, it means that there was no manipulation. Then it can call "collectPerformanceFees" function of the accountingManager and get the performance fee.

Also to prevent the compounding effect on the fees (taking fees from the previous fees), the fee receiver is a contract that can only burn or withdraw shares(can't transfer) and we reduce the balance of this account from all shares to not count it in the fee calculation

Last updated