airswap-aips
airswap-aips copied to clipboard
AIP 21: Proportional Reward Payout System
Summary
This AIP proposes a simple proportional model which pays out rewards based on the user's points vs the total amount of points.
Rationale
The current claims system makes it difficult for stakers to calculate exactly how much returns can be expected from participating in governance. The current rewards system relies on when a user decides to claim vs when other users decide to claim, as well as other external factors (e.g. when the next vote will be called, when new LPs come online). This means that the claimed amount (or optimum time to claim) is not easy to predict, and some stakers may feel disgruntled if they claim too early / too late
Specification
Proportional payout based on a simple linear model
The payout system is to be kept simple. All voting wallets will be allocated their claimable amount based on their proportion of points vs the total number of points for a given claiming phase.
a = Points / Total_Points
To help smaller stakers defray gas fees for claiming, a fraction of the rewards pool can be set aside and split equally among all wallets. This fraction, the gas rebate (x
), can be set by a simple community vote, but should be within 0 to 10. I suggest that x = 1
to start (i.e. 1% of the rewards pool will be used for gas subsidies). If we are on a monthly voting cycle, it should generate around 180k USD per month. 1% of this (1800USD) when split amount 100 staking wallets gives each staker an extra 18 usd to cover gas fees (approx 15 usd at current)
To prevent sybil attacks on the system, we should require a minimum stake of 100AST to qualify for the gas rebate (since the gas subsidy should be barely enough to cover the claim fees, attackers will not gain but instead legitimate voters will be harmed)
b = (Balance * x/100) / N
, where N
is the number of eligible wallets for a given claiming phase.
The final payout (Y
) claimable by each wallet will thus be given by the formula
Y = a * Balance * (1 - x/100) + b
Unclaimed balances will be accumulated to the next cycle. Stakers have n
months to claim outstanding rewards, after which any unclaimed amount will be returned to the rewards pool. *the time period n
to claim outstanding rewards can be modified by the community
Examples
Assuming that the reward pool is 180,000 USD and there are 100 stakers claiming the rewards.
If gas rebate = 1%
1,800 USD will be set aside for subsidizing gas fees (i.e. 18 USD per wallet)
The remaining 178,200 USD will be split proportionally according to the number of points and released to be paid out at the end of the claiming phase. With a total of 10M sAST, the payout would be as follows (assuming after spending 18 USD on gas)
100 points - 19.78 USD (1.78 after gas) 1,000 points - 35.82 USD (17.82 after gas) 10,000 points - 196.2 USD (178.2 after gas) 100,000 points - 1,800 USD (1,782 after gas) 1,000,000 points - 17,838 USD (17,820 after gas)
The gas rebate amount can also be set to 0%
In this case,
100 points - 1.80 USD (-$16.20 after gas)
1,000 points - 18.00 USD ($0 after gas)
10,000 points - 180 USD ($162 after gas)
100,000 points - 1,800 USD ($1,782 after gas)
1,000,000 points - 18,000 USD ($17,982 after gas)
Removing gas rebates may disincentivize smaller stakers from participation in community governance.
Problems
Smaller wallets might try to accumulate their gas subsidies to get a larger payout. We could simply roll unused gas subsidies back into the rewards pool, which ensures that any gas subsidy would only be applied once per claim event.
e.g. if the 100 points wallet does not wish to claim at this time, 18 USD will be sent back to the rewards pool and 0.27 USD will be accumulated to the next claiming cycle.
Considerations
This AIP previously included these other proposals, which have since been carved out into their separate proposals for easier voting. The proposed specification above assumes that these AIPs have been voted in and implemented.
1. Snapshot and consolidation of tokens into a single pool. (Called to vote in <AIP 26>)
2. Regular voting and claiming cycles to ensure equal spread of fees (Called to vote in <AIP 27>)
Credits
Thanks to many people for their contributions to this AIP
Copyright — All proposals are public domain via CC0.
1 month later BeDreamin83 Apr 2
In my view the most important thing is to distribute the maximum amount of fees to sAST holders as possible. We want to minimise the amount that goes to third parties, and thus we want to reduce the amount spent on gas.
At the moment you can see that small stakers are rolling forward their claims. That is highlighted on the new Dune dashboard. This makes sense as they are subject to gas and small stakers have decided to wait until their claim is reasonable in comparison to the gas fee.
With this proposal there is no incentive to roll forward for small stakers as the gas is already paid for them. Therefore they will simply claim after every voting period. There is zero incentive for them to rollover, none.
Word will spread that gas fees are subsidised so even staking just 200 AST now becomes worth while. During turbulent times, larger stakers may wish to sell off some of their stack whereas small stakers are unlikely to do so due to the gas fees to unstake. Therefore the proportion of small stakers is likely to increase over time.
As volume through Airswap increases as does the potential gas fee allowance. These fees could have been paid to stakers, people who contributed to the success of the project but instead are just paid to third parties.
What are the benefits of the gas subsidiary, simply cashflow for small stakers. That’s it. Potentially tens of thousands of dollars paid to third parties just so someone can claim now rather than waiting a bit.
My view is, if you only stake a little you have to be prepared to wait longer to make your claim.
agrimony Apr 2
What are the benefits of the gas subsidiary, simply cashflow for small stakers
This is a potential issue. But in my opinion there is nothing wrong with making a 200 AST stake worthwhile. I do believe that smaller stakers should be incentivised to roll over as well, but we should also ensure that they should be able to claim in a reasonable amount of time. Time is also money.
There is zero incentive for them to rollover, none.
To address this, simply make the fee subsidies lower than gas fees. E.g subsidizing even just 50% of gas fees might make it feasible for smaller stakers to claim in a more timely fashion. With this model, we can control how long the smallest stakers would have to rollover before claiming makes sense.
Potentially tens of thousands of dollars paid to third parties just so someone can claim now rather than waiting a bit.
Yes, we will lose a portion of the rewards to 3rd party in terms of gas fees, but to me this is worth it we can encourage more people (not just those who can afford it) to be involved in the platform.
For this reason, the gas rebate fees are capped. In the given example, at most only 1% of the rewards pool will be “wasted” in this way. If the community so chooses, this can be set to 0%, but it will disincentivize smaller stakers.
BeDreamin83 Apr 3
This is a potential issue. But in my opinion there is nothing wrong with making a 200 AST stake worthwhile. I do believe that smaller stakers should be incentivised to roll over as well, but we should also ensure that they should be able to claim in a reasonable amount of time. Time is also money.
The fact that the only benefit “cashflow” is a potential issue, to me suggests that this isn’t a good idea. I get that an individual with 200AST should still be able to stake, and they can there is no de minimus, but unfortunately if you’re only risking losing $120 then you have to wait to claim your rewards.
Those with low staked amounts of AST can still be incentivised to stake and participate by coming up with AIPs etc and claiming rewards from the treasury. You can end up with 100s of individuals staking < 200AST and draining 1% of the pool while doing nothing in the community. I believe the fairest way to incentivise small stakers is encouraging them to seek rewards from contributing to the project.
Essentially this comes down to you believe that it’s fair to take $1000s from the pool so small stakers can claim the same rewards but literally just a bit earlier, and I believe they should wait and claim when they believe the gas fee is a reasonable proportion of their claim.
agrimony Apr 3
Essentially this comes down to you believe that it’s fair to take $1000s from the pool so small stakers can claim the same rewards but literally just a bit earlier, and I believe they should wait and claim
Yep I do understand where you are coming from, but we both have a different belief in what is the ideal state. I think it is best that we agree to disagree here and let the rest of the community decide on the way forward.
zzew12 Apr 3
I don’t think gas subsidies are necessarily part of the same issue as the proportional system proposed here which deals more with a reform of how rewards are claimed than whether the system supports smaller stakers; the primary benefit is to mitigate uncertainty rather than to incentivize smaller stakers. Someone might appreciate the efficiency of your linear system without finding it necessary to introduce subsidies. From what I can tell, the two issues have been coupled because gas fees to distribute rewards might exceed the rewards actually earned. But an alternative to subsidizing distribution might be to tweak the system slightly to allow an accumulation of rewards as a default. (Smaller stakers might take more time before receiving rewards but this is also the case in the current system; whether or not this should be addressed with subsidies should be discussed and voted on in a separate AIP.)
Linking points to the number of staked tokens makes sense and works well in the current system but the category becomes redundant in the proportional system outlined here as rewards would be immediately dispersed at the end of each voting cycle. Instead of doing away with the process of claiming rewards altogether, points could be used to indicate a share of rewards rather than the size of stake. For example, in a cycle with aggregated earnings of $250,000 and a total of 10,000,000 sAST voting, a voter with 1,000,000 sAST staked would receive 25,000 points (reflecting a 10% share of the pool) rather than 1,000,000 points (as would be the case now); a voter with 100,000 sAST would receive 2,500 points (1%), etc. If earnings increased to $350,000 in the next cycle but the number of votes remained the same, 1,000,000 sAST would instead receive 35,000 points; 100,000 sAST would receive 3,500 points, etc.: each point is equivalent to a claim of $1 not 1 sAST. As points refer to a constant unit of value, the size of a claim is not affected by when that claim is made and voters can optimize the timing of their claims based on personal preference, including rolling over points across cycles.
Additionally, this makes it easy to specify rewards for non-AIP activities by deducting these from the accumulated pool before it is divided amongst voters. In the above example, if $50,000 was spent on projects in the first cycle, voters would share the remaining $200,000 (= $250,000-$50,000) and 1,000,000 sAST would receive 20,000 points instead; if $30,000 was spent on projects in the second cycle, the same stake of 1,000,000 sAST would receive 32,000 points (10% of $320,000). The cost of projects can be evaluated more precisely this way than if points made a claim on earnings pools of fluctuating size as points will instead be pegged to a relatively stable unit of value.
VladislavW Apr 4
All AIP and non-AIP activities are rewarded from the treasury but not from the fees pool. But in general i find you thoughts interesting and there is some staff to analyze and improve current AIP.
zzew12 Apr 4
Yup, that is the case at the moment but there’s been some discussion on discord about rewarding points instead of using treasury AST (discussion begins here: https://discord.com/channels/590643190281928738/810811369615130644/827207707521450025 1). I think there were also some questions about how this would work if AIP 21 was adopted. I should have clarified: if we were to switch to using points, not only would this be possible in the linear payout system, it would probably also be more effective.
(Having said that, I would also add that I hope that this switch can be put off until the project is in a more mature stage. As I mentioned on discord: “Whereas the cost of rewarding AST is spread amongst all AST holders (by diluting the circulating supply), the cost of points is borne solely by stakers (by diluting earnings pools). I sort of see the benefit of rewarding from earnings, as it makes the project pay for itself based off its revenue, but right now, with <10% of AST staked, that’s a small subset bearing costs that benefits all holders. Perhaps switching to rewarding points could be deferred to a later stage (e.g. when >40% of AST is staked)?”)
candiceb Apr 8
Gas fee is the responsible of each stakers since it is not charged by Airswap but ETH as a withdraw or deposit - if you dont withdraw, you dont get charged. If you want to withdraw, you have to save more to cover it.
Like putting money in the bank, everyone has to pay monthly fee to maintain the account or if I want to withdraw and send it overseas, I have to pay the flat fee regardless of how much I send. I would not send $30 if the fee is $20 or $30 but if it is free, why not send $1 , $10 or so?
It might be reasonable to say that this proposal gives incentive for small stakers to stake and it is also give less incentive for large stakers to stake.
I guess disagreement is where voting is essential.
astholder Apr 8
thats an excellent idea. completely agree. sooner or later we should be switching to points for at least some of the rewards - potentially future Bounties and AIPs for example. but im with you 100% on costs born by holders vs stakers. I see a more as a phased in approach to rewarding in points as we get obtain other rewards mechanisms.
I would also add that I hope that this switch can be put off until the project is in a more mature stage. As I mentioned on discord: “Whereas the cost of rewarding AST is spread amongst all AST holders (by diluting the circulating supply), the cost of points is borne solely by stakers (by diluting earnings pools). I sort of see the benefit of rewarding from earnings, as it makes the project pay for itself based off its revenue, but right now, with <10% of AST staked, that’s a small subset bearing costs that benefits all holders. Perhaps switching to rewarding points could be deferred to a later stage (e.g. when >40% of AST is staked)?”)
astholder Apr 8
You could always sell the ‘junk pools’ - low value pools that no one claims - to cover the gas fees. alternatively, you could take the ‘junk pools’ and put it in a interest yielding account and have the interest from the junk cover gas fees… or to subsidize it…
astholder Apr 8
Agri - Are there two main points in the AIP?
First is to switch the rewards to a proportional system (a=points/total points)?
Second to implement a gas subsidy?
If so I recommend you split into two AIPs. These are two interesting ideas that don’t seem to be mutually dependent. I think they both warrant in-depth discussion.
a=points / total points I’d like to see a side-by-side comparison of how that changes the payouts for community members and the affects on the stability/growth of the pools. Hopefully we can try to model that - show that ‘as-is’ system vs the ‘to-be’ system and its affects over time.
Gas Rebate I think we need to have a larger ‘philosophical debate’ about if gas subsidies are needed. In the current system, you can roll over points indefinitely. As such, smaller stakers already have a mechanism to protect them from gas fees. It’s continuing to participate in AirSwap governance. The more governance/bounty participation the quicker you can accumulate enough points to claim.
Furthermore, does the gas fee problem become a non-issue with an eth layer 2 solution? If so, is gas price a big enough problem to implement a complex AIP for several months? I know thats optimistic assuming there is a eth layer 2 rollout coming soon that we can use - but it’s something to think about.
Our percentage staked is still increasing and the median stake value is relatively stable between 13,500 - 15,500. At least for now that indicates that the ‘average staker’ is getting about 1.45% of a pool - or roughly $700 from a $50,000 pool. Our smallest 10 stakers are getting 0.1% of a $50,000 pool or 50. Gas is roughly 60. There are 210 staked wallets at time of writing.
At this point in time the cost of gas is annoying - but is it really affecting many stakers? Of course as community population dynamics grow and change we may have reason to revisit this gas rebate idea.
…One final thought… As many of us experienced from the last voting cycle… if the trading volume is increasing then it appears the way to maximise monetary rewards is to delay claiming as long as possible - including rolling over points. The growth of the rewards pools has far surpassed the benefit of immediate claiming… so at least for the current growth cycle it seems to be that smaller stakers are actually better off delaying claiming as long as possible anyway.
agrimony Apr 11
Fair enough actually. With the changes coming through AIP 27, we could structure future votes as a basket of AIPs for people to vote on various aspects of the same topic.
That would make it easier for voters to deal with contentious topics such as this
mptl Feb 20
As discussed in discord introducing a maximum claiming period is beneficial longterm. This will avoid lost dollars in the reward pool due to people not claiming their tokens. This can happen if wallets are lost for example someone forgets the password to his wallet.
Setting an initial value of 9 months should also help in balancing gas fees.
VladislavW Feb 20
(to be decided - I suggest ETH as that has the lowest gas fees to transfer)
We have WETH in the pool so it has the same Gas Limit to send as any other token.
To help smaller stakers defray gas fees for claiming, a fraction of the rewards pool will be set aside and split equally among all wallets. This fraction ( x ) can be set by a simple community vote. I suggest that x = 10 to start (i.e. 10% of the rewards pool will be used for gas subsidies). To prevent sybil attacks on the system, we should require a minimum stake of 100AST to qualify for the gas rebate ( since the gas subsidy should be barely enough to cover the claim fees, attackers will not gain but instead legitimate voters will be harmed)
I do not find the idea that someone will have to pay for someone as a good one. So i propose the Contract to fix the amount that each staker can claim and let small stakers claim accumulated reward after few votes.
100 points - 30.27 USD
1,000 points - 32.7 USD
10,000 points - 57 USD
100,000 points - 300 USD
1,000,000 points - 2730 USD
Frankly to say, i don’t like the math i see here. I really don’t understand why bigger investors and contributors of the project (that are really have more risk because they invested more) have to cede part of one’s profits to the small investors. I don’ really see any fairness here.
I thought you would propose the real 1 : 1 reward system but this is something else. It looks like proposal to increase profitability for small investors at the expense of large ones. I do not think wallets with a balance of 100,000 AST will support this proposal
agrimony Feb 20
We have WETH in the pool so it has the same Gas Limit to send as any other token.
I’m not referring to wETH but actual ETH. ETH has a lower gas limit than ERC20s
Frankly to say, i don’t like the math i see here. I really don’t understand why bigger investors and contributors of the project (that are really have more risk because they invested more) have to cede part of one’s profits to the small investors. I don’ really see any fairness here.
Like it or not, gas fees are a tax on smaller stakers. This way, after paying for gas everyone will get a proportional payout. The “fairness” of any payout scheme can be debated. In any case, in the proposed system the value of x can be fixed. x can be set to 0, in which case there will be no gas subsidy.
schallacrypto Feb 27
Agree. Quite unfair for larger stakes. Considering whales have more voting power. This won’t pass
JBe Mar 2
I like this proposal. The question for me is where should the subsides come from? At this point I would like to incentivize the lower to middle of the curve. An $18 tax on someone with 100 points staked in the example represents 91% of their claim, whereas an address with 1M staked pays 0.1% of his claim on the subsidy. There is probably a better way to draw this curve vs. the same dollar amount charged on each account.
VladislavW Mar 2
I think we can accept gas subsidizing option but it must have the following restrictions:
Gas subsidizing option can be used only once a month
Total gas subsidizing never can be set above 1%, so it can be lower but technical MAX should be set to 1%
That should help to avoid sibyl attack.
agrimony Mar 2
The subsidies come directly from the reward pool. It will be taken as a fraction of the total rewards and spread equally among all wallets.
The gas fee is an unfair tax on smaller wallets as you have pointed out. To clarify, this is charged by the Ethereum network and not something we can remove. Exploring layer 2 solutions would help to lower this fee but not remove it.
For this reason, we are incentivising the smaller wallets by adding a fixed amount to offset the gas costs. This fixed amount can be changed based on the gas rebate percentage set,the total rewards in the pool and the total number of wallets claiming. At current numbers, 1% of the rewards is sufficient to subsidize the gas costs of claims from all wallets