# Changing formula for MNGO rewards in Liquidity Mining

I like the idea, but it seems a bit complex. There’s a lot of value in having something simple and easy to understand while still achieving our goals. Do you think it provides sufficient improvement over @iwillnotsaveyou’s idea?

Really hard to say without trying it out honestly. I do think it will benefit the book over what we currently have so in my opinion the only issue I have is if it can be abused or not. I do think the restrictions on the side are crucial such as a max time limit for this bucket of rewards to avoid farming for hours or days.

Edit: In general I think the first step is to try changing the way the function is done to (50, ^4) or whatever you had in mind and seeing the effect it has then adding this if that still does not work.

Rewards release schedule for RBG model - Three token rewards with power to the half PI rewards on a scale of 1461 days (4 years) from daily 0.01% to 314% compounded (end of year 4) here distributed in the chunks of division of 7 R, 77 G, 777 B

``````import numpy as np
import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = (10,10)

max_days = np.pi * 465
total_number_of_tokens = 21000000000 #21 Billion
total_number_of_rewards = 0.43 #43% for rewards
total_hft_rewards = total_number_of_tokens*total_number_of_rewards

def power_half_of_PI_reward(vesting_days, power_risk_curve=np.pi/2,
min_profit=0.0101, max_profit=np.pi * 100,  # (0.01% - 314%)
min_days=1, max_days=np.pi * 465):
y = [min_profit, max_profit]  # two given datapoints to which the exponential function with power pw should fit
x = [min_days, max_days]
pw = power_risk_curve
A = np.exp(np.log(y / y) / pw)
a = (x - x * A) / (A - 1)
b = y / (x + a) ** pw

return round(((vesting_days + a) ** power_risk_curve) * b, 7)

def power_half_of_PI_reward2(vesting_days, power_risk_curve=np.pi/2,
min_profit=0.0101, max_profit=np.pi * 100,  # (0.01% - 314%)
min_days=1, max_days=np.pi * 465):
y = [min_profit, max_profit]  # two given datapoints to which the exponential function with power pw should fit
x = [min_days, max_days]
pw = power_risk_curve
A = np.exp(np.log(y / y) / pw)
a = (x - x * A) / (A - 1)
b = y / (x + a) ** pw

return round(((vesting_days + a) ** power_risk_curve) * b, 7)

number_of_days = np.pi * 465
days = np.arange(0, number_of_days, 1)
curve = np.array([power_half_of_PI_reward2(day) for day in days])
infl = np.array([power_half_of_PI_reward2(day) for day in days])
#plt.show()

i = 1
rewards_budget = total_hft_rewards
rewards_budget_1 = total_hft_rewards
rewards_budget_2 = total_hft_rewards
rewards_budget_3 = total_hft_rewards
avg_rewards_per_days = total_hft_rewards/number_of_days

reward_plot = []
budget_inflation_1 = []
budget_inflation_2 = []
budget_inflation_3 = []

for c in curve:
#print
reward_emission_1 = rewards_budget_1 * i / (number_of_days-i)/7
reward_emission_2 = rewards_budget_2 * i / (number_of_days-i)/77
reward_emission_3 = rewards_budget_3 * i / (number_of_days-i)/777

rewards_budget_1 = rewards_budget_1 - reward_emission_1
rewards_budget_2 = rewards_budget_2 - reward_emission_2
rewards_budget_3 = rewards_budget_3 - reward_emission_3

budget_inflation_1.append(reward_emission_1)
budget_inflation_2.append(reward_emission_2)
budget_inflation_3.append(reward_emission_3)
reward_plot.append(rewards_budget)

'''
print("Day " +str(i) + " Reward: " + str(c)  + " Governance Token issued: " + str(round(i/max_days*100,4)))
print("reward budget " + str(round(rewards_budget,4)))
print("reward emission " + str(round(reward_emission,4)))
'''
i = i + 1

'''
plt.annotate("1 day - daily inflation " + str(budget_inflation)+ " CHFT " +str(round(1/max_days*100,4)) +" Voting power Available", (1, budget_inflation))
plt.annotate("**** 3.9 year -  daily inflation " + str(budget_inflation)+ " CHFT " +str(round(1390/max_days*100,4))+" Voting power Available", (1, budget_inflation))
'''

fig, ax1 = plt.subplots()

color = 'tab:red'
ax1.set_xlabel('Vested days - maximum 4 years = 1461 days')
ax1.set_ylabel('release schedule rewards')
ax1.plot(days, budget_inflation_1, color=color)
ax1.plot(days, budget_inflation_2, color='tab:green')
ax1.plot(days, budget_inflation_3, color='tab:blue')

ax1.tick_params(axis='y', labelcolor=color)

ax2 = ax1.twinx()  # instantiate a second axes that shares the same x-axis

color = 'tab:purple'
ax2.set_ylabel('Purp (purple) - locked voting power to half PI based on RGB pool vesting', color=color)  # we already handled the x-label with ax1
ax2.plot(days, curve, color='tab:purple')
ax2.tick_params(axis='y', labelcolor=color)

fig.tight_layout()  # otherwise the right y-label is slightly clipped
plt.show()

'''
#plt.plot(days, curve)
fig, ax_left = plt.subplots()
ax_right = ax_left.twinx()

plt.xlabel('Vested days - maximum 4 years = 1461 days')
ax_right.label('Daily reward emissions')
plt.title('daily distribution schedule for total supply of 9 Billion R1/G1/B1 for liquidity mining \n collateral rewards (lending) for 43% of R1 token (ratio 35% vesting rewards / 8% buy G1 token) \n  orderbook liquidity rewards for 43% of G1 token (ratio 35% vesting rewards / 8% buy B1 token  \n vested power rewards for 43% of B1 token (ratio 35% vesting rewards / 8% buy R1 token) ')

plt.plot(days, budget_inflation_1, 'r')
plt.plot(days, budget_inflation_2, 'g')
plt.plot(days, budget_inflation_3, 'b')
#plt.plot(days, reward_plot, 'b')
#plt.plot(days, c, 'g') # plotting t, c separately
plt.show()
'''

``````

How much does FTX, Binance, etc. spend on market making?

Obviously they have more users so at a certain point the market can make itself to a certain extent, but presumably they still have some deals in place.

We tried (50, ^4) and it wasn’t good enough because most of the risk was being taken by those at the top of the book, but vast majority (90%) of MNGO rewards were going to quoters quoting wide with very large size. We also are now trying (0, ^1) but it’s not going to work well unless there are competent full time market makers focusing on building systems for it. The `rate` param is moving around wildly and Mango `blocks` are taking much longer/shorter than the targeted 1 hour.

I’m working on building Top Size LM which essentially rewards the top N contracts quoted on the book. It’s a little bit hairy to make these changes while contract is already deployed. But I think it’s possible and I think it can be done in a week. But until then, we need to decide on what to do about liquidity mining.

## Proposal 1

Reduce LM rewards to 0; Change fees to -4/5bps to reward MMs. And turn on LM again once Top Size is implemented

## Proposal 2

Keep LM rewarsd but change it to something more reasonable like (20, ^4) or (20, ^8) until Top Size is implemented.

We also need to decide on some key design factors of Top Size, but maybe those technical decisions are better had in discord. We discuss them in the #governance channel.