An upgrade for UNI liquidity mining distributions system

I want to suggest a new system for UNI liquidity mining distributions.

It is essentially an upgrade of the current system. It allows us both to replicate the incentives as they are now, and to create new liquidity mining incentives in a much smoother way.

But first, let’s take a look at the present one.

==

The problem.

As you know from the Introducing UNI article, there are currently four pools participating in the program with the same allocations per pool.

This type of distribution creates an economic incentive that equalizes the liquidity between the pairs.

If four pairs were to be the same, the liquidity for these pairs would be nearly identical. Liquidities being not equal means that more money wants to stay in one pool and less in another despite the incentive.

Another property of the current distribution system is that it effectively creates benchmarks for liquidity. This makes the introduction of new pairs to the program problematic.

Spoiler: Liquidity benchmarks concept

To illustrate the benchmark concept, let’s imagine that liquidity is the following: WBTC 600 mil, USDT 500, USDC 500, DAI 400. And the UNI APY is 30% for the USDT & USDC pairs: that’s what the market finds reasonable.

500 mil is the average liquidity between the four pairs, and this is the benchmark.

Now let’s imagine that after the current liquidity mining program ends, the community votes for its continuation + adding UNI pool on the same terms. If the starting point of UNI liquidity is 50 mil, the benchmark is 10x away from it. It results in higher displayed APY for UNI, which encourages a short-lived speculative rush until the pool gets closer to the benchmark .

It stimulates people to buy an asset they would otherwise not in hopes of getting the rewards they’re not going to get .

==

Fundamental questions.

  1. Is it essential that we have an even amount of liquidity among participating pools?

My answer: it is not.

We can still incentivize the pools effectively without creating benchmarks for liquidity.

People can have whatever amount of money they’re willing to have in the pair, and nothing will get broken from it.

UNI distributions can still incentivize less popular pools to the same extent they do other pools. And in addition to that, there is always volume/liquidity based incentive from the liquidity provision itself.

  1. What is the purpose of the liquidity mining program?

My immediate answer to that is community building.

Long-term liquidity provision incentives encourage people to commit to protocol development while having skin in the game and while being network functionality providers.

My secondary answer is raising liquidity for the pairs we choose, but it is quite a nuanced subject.

  1. What should the scale of the effect be of the liquidity mining program?

I think the effect should be:

  • Strong enough that people who already have their assets in respective tokens would be willing to join the liquidity provision pool
  • Weak enough that it doesn’t create a significant incentive for people who don’t have the tokens to buy them.

Meeting these conditions, in my opinion, would mean that we are primarily incentivizing liquidity provision and not other things.

I need to remark that I think it is good to incentivize people to buy coins with the store-of-value property. It makes portfolios more solid. It does have a social function in a highly speculative environment.

==

The solution

My suggestion is the following one.

If we want to incentivize the pairs equally, we create one pool that distributes UNI on a dollar pooled basis .

Meaning that 1 dollar gets the same amount of UNI no matter what pair it belongs to.

This way, adding a new pair to the pool would not create a speculative rush, and overall the APYs would become more predictable.

Also, the distribution would get equal between the major pairs.

Now, it is also reasonable to incentivize the pairs non-equally.

And this is the area where we could fine-tune the liquidity provision part.

Let’s imagine that we’re considering adding a pair that could get an enormous amount of liquidity, which would noticeably reduce UNI distributions for other pairs.

We could give this pair a small multiplier like 0.25x.

This would mean that 1 dollar would get a 0.25x amount of UNI compared to the major pairs.
It would also be reasonable to give small multipliers to the pairs where we would like to boost the liquidity, but wouldn’t want to endorse people buying into them.

Small multipliers create an opportunity for the LP program to be less binary.

It allows us to enlarge liquidity slightly, to fine-tune incentives, and to stay competitive and flexible.

==

Overall I think it is a good thing - to make the distribution rates more stable.

And when it comes to equal and unequal distributions of UNI rewards, I think it’s better when they’re set deliberately by the community.

==

Thanks for reading. Please feel free to comment and ask questions if something is not clear. If you have different answers to the fundamental questions I’ve asked, I’d be interested in reading those.

Cheers.

Vote: Do you approve of the suggested system?

  • I approve
  • I disapprove
  • I’m neutral
  • I’m not sure

0 voters

1 Like

Hey there!

So I like the discussion, but there are a few points I disagree with. First of all:

I had a similar idea, but unfortunately, I don’t believe volume should be used in UNI reward calculation. This is because volume is very manipulable through readily-available flash loans. There are probably other ways to manipulate volume too. This is why I believe it is potentially dangerous to incentivize smaller pools through volume.

Now later in your post you state the effect of our liquidity mining incentive program should be…

But then follow it up with

We are currently already incentivizing the biggest store of value in crypto; BTC through wBTC. I’m not sure if you want to incentivize people to buy tokens or not, and if so, which tokens?

Furthermore, your solution to incentivize on a per-dollar basis is actually pretty interesting! I’m not 100% on whether I agree or disagree with it- reason being we’re throwing away our ability to incentivize liquidity in pairs that need it.

I do believe that, with some further development, this could lead to a pretty neat discussion. Though, I disagree with your point here:

I believe that if we distributed on a per-dollar value basis, there would be no incentive to equalize the pairs, if people feel safer holding USDC over DAI, they will. In fact, I’d lean more towards this causing an imbalance. Whether or not that imbalance is good or bad is beyond me, though.

I’m not sure about different multipliers on pools, I’ll have to think more about that one. Definitely an interesting idea!

However, when you mention…

I think you mean incentivizing but only slightly. Honestly I believe it might be wise to set up a concrete system as to what pairs we should or should not incentivize as a DAO. I don’t think the goal should not be to twist the ecosystem to our favor. Keep in mind that where there is volume, there will be liquidity due to the trading fees.

UNI incentives, in my eyes, should be aimed at furthering the DeFi ecosystem as a whole. Deep liquidity where it’s needed most is absolutely essential. Maybe there is a way to implement a sort of pool like you mentioned.

Perhaps we ought to think about automatically adjusting UNI distributions through a smart contract to incentivize liquidity in pools that need it and reward those who provide that much-needed liquidity. I do indeed believe that we might have just a smidge too much liquidity in the major pairs.

Anyway, my rambling’s done haha! I love seeing discussions like this, let’s keep it going and see what we come up with!

Hey @Zer0dot, thanks for your response.

I’m afraid I’ve been too abstract in my original message, and your comment helps me to make the message clearer.

The first thing I’d like to address is that what I’m proposing is essentially an upgrade to the present system, I really can’t think of significant a trade-off we’d have to accept in order to adopt it.
If anyone can, please let me know.

==

By no means did I imply that!
Distribution of UNI based on the volume is exactly the opposite of what I’m proposing here.
It would make distributions more market-dependent, manipulable, and less even.
The upgrade to the system I’m proposing makes the distributions less market-dependent.

Just like the present system, the new system incentivizes liquidity and NOT volume.

In the message you quoted, I’ve said: “there is always volume/liquidity based incentive from the liquidity provision itself”.
What I meant is that volume/liquidity incentives are already built into Uniswap protocol from day 1. The bigger the volume and the lesser the liquidity, the more fees do liquidity providers generate.
So there’s no need to further incentivize the volume.

==
To the other part of the quote: “UNI distributions can still incentivize less popular pools to the same extent they do other pools”. This was a poor phrasing by me.

I meant that if we were to distribute UNI equally between the participating pools, LPs of a less liquid pool would get the same APY in UNI rewards as the more liquid pools.

But the thing is, we don’t have to distribute rewards equally.

The current distribution is not an equal distribution, and this inequality is being decided by the market forces. The new distribution can be both equal and unequal, and the inequality is being decided by the Uniswap community vote.

Let’s imagine that the current APYs are 28% for WBTC pair, 30% of USDC/USDT, and 32% for DAI while the liquidity is 600, 500/500, and 400 mil respectively.
If it is pivotal for us that this liquidity distribution stays the same, we can replicate those UNI APY ratios. We can also make it equal. If for some reason we want to further increase the DAI/ETH pair liquidity, we can further incentivize it and bring it to 34% APY instead of 32%.

==

Now, when it comes to the original thought of incentivization without liquidity benchmarks.
If a pool has 40m liquidity in it and we add a 5% UNI APY incentive, the liquidity for this pair will rise no matter what. To what extent the liquidity would rise would be decided by the market forces.
And it wouldn’t matter that other incentivized pools receive 30% UNI APY incentives.

And as we have one pool instead of many, the APYs would get more stable and would change proportionally when the overall liquidity of the pairs participating in the program increases.

I get it now! My mistake! Thanks for clarifying. :slight_smile:

I get what you mean now! It could definitely be interesting to have more input on this. As it stands, we’re incentivizing the four major pools equally, this might or might not be the best course of action! Interesting idea.

Although, I don’t believe we should interfere too much with market forces. I’m a little concerned with the idea of adjusting APY’s based on community votes, this seems like a tough and expensive process to do often.

I’m not quite sure I understand this fully. Do you mean the APY would be reduced as more liquidity is added to the system? If so, that’s not too dissimilar from what the current system accomplishes.

There are a lot of moving parts in your idea, I’m not sure how it’d all work out. I am, however, very interested in the discussion!

Thanks for starting it! :slight_smile:

Well, it depends on how you look at it, and this is another point I haven’t made clear enough in my original message.

Yes, the present system (the even split system) does incentivize all the pools equally in a way that every pool gets the same amount of UNI.

Then the market forces decide:
a) the UNI APYs for LPs of the respective pools individually, and that in turn is interconnected with
b) the liquidity for each pair.

The fact that the pools are being rewarded individually means that if we think in terms of value put into pools, the UNI distribution is not equal.

1 Dollar gets more UNI from DAI/ETH pool than from USDT/ETH pool.

So with an even split system, we can set neither liquidity nor the distribution ratios per pool.
With per dollar pooled system, we can set the distribution ratios and still can’t set liquidity.

So 1 Dollar gets the same number of UNI from DAI/ETH and USDT/ETH pool.

In both systems, of course, we do incentivize liquidity.

==

Now, let’s think about the long-term implications and the necessity to make more decisions.

If the community decides that we should incentivize all the dollars put into liquidity mining programs equally, the new system is a no-brainer. As you just set it and forget it.
While with the old system, it would be impossible to do so: you’d have to continually adjust the amount of UNI in each pool to achieve that.

==

Now let’s roll back to our previous point in the discussion when you say:

When I was talking about the scale of effect in the original article, I’ve made a somewhat confusing statement. I’ll try to make it less confusing now.

#1 If we want to incentivize just the liquidity of a pair, the incentive we create should be weak enough it would not make people buy the asset in the pair. This is the type of incentivization when we’re just looking to make the liquidity for the pair bigger.

It is not apparent at this point that this type of incentive is needed. I mean, you need a reason to introduce that. The primary reason I could think of is competition, if someone is ‘stealing’ the liquidity from us and we worry about it, or if we, for some reason, want to get more liquidity on the chosen pair.

My take on that is that there are no real competitors now, but there might be in the future. And it’s better to have mechanisms intact to be able to adjust quickly to keep the lead.

The new system would allow us to make these adjustments easily:

’add X/ETH pair to LP pool at 0.05x dollar pooled value’

This could be a standard contract proposal.

The person who creates this proposal would just need to adjust a couple of numbers.
And the voters wouldn’t have to argue about the duration or the amount of UNI devoted to this newly created pool.
And when the time comes, the command "remove X/ETH pair from LP pool’ could be cast as easily.

==

#2A I think that the initial UNI distribution’s primary purpose is to create community-building incentives, when it comes to both the airdrop and the liquidity mining program.

If our main goal is to build a strong community, why should we reward WBTC holders less than DAI holders for putting their money into the pool?
WBTC/ETH pair is the only one that serves for the needs of crypto maximalists, and I think this is the group we definitely want to welcome to our community.

Another pair that would make sense to me regarding community building is a USD/USD pair. It would target the other end of the spectrum - people who are afraid to hold BTC or ETH because of volatility or for other reasons, people who are new to crypto and want to make returns on their dollars that are better than what their bank offers.
Some of those people could become Uniswap activists at the end of the day too.
But USD/USD is a dangerous pair to introduce, especially in the new system, so I’d be giving it a very small multiplier for starters.

#2B So, when we create incentives to build a community, I think it is ok if incentives are strong enough that it makes people buy the respective tokens/coins. But it is only ok if these coins have a store-of-value property to them. All the coins in the present pools do have this property. So it’s not a bad thing to incentivize their purchase.
But if we were to introduce on the same terms any other of the 7000+ coins that exist at this point time, I think it would be bad for the community.

A side note: I think at this point, even introducing UNI/ETH pair to the existing system would be a mediocre decision:

  1. the speculative rush argument
  2. a well incentivized UNI/ETH pair would be compromising the governance. UNI locked in LPs can’t vote, and there’s no UNI incentive to vote.

==

Again, thanks for your involvement, @Zer0dot. It’s hard to create a clear message on your own when it comes to complex topics, so having a peer review helps immensely.

I probably should rewrite the original message in a more clear and eloquent way.
It might be a hard thing to do though, given the amount of text I’ve already written. :slight_smile:

My question here is that, is there any good outcome for adding liquidity with new pairs?

Thank you for your committed involvement too @Mr_Po! It’s definitely an interesting and important conversation to have.

As the UNI governance system matures, I’m sure we’ll see more and more discussion in regards to this. As it stands, I am struggling to find the correct path, we need some more community and team input.

It is worth noting, too, that we’re actually not going to be incentivizing liquidity at this rate forever, the current mining program won’t last too much longer. (Something like 40ish days)

In addition, with the current 1% minimum, pushing these changes in time would be pretty difficult. I think it might be wise to focus on aligning UNI holders’ financial incentives with the greater success of the protocol and DeFi in general.

Looking forward to this conversation’s development!

Wow that’s a lot of reading material.

Since there are not that many other people participating (yet ?), I’d allow myself some thoughts.

Some primary questions that to me should be answered first :

  1. Do we want UNI distribution to be governance-controlled at all ?
  2. If yes, what behavior do we want to incentivize ? Currently it seems to be about (a) maximizing liquidity of 4 of the 6 main swap tokens (ETH, USDC, USDT, DAI) + (b) capturing/boostraping WBTC liquidity. I believe (a) lowers the overall slippage on the platform, which should have a positive effect on the platform as those pools are “pivot” pools. Not sure about (b) but @Mr_Po gives some clue on that.

For a governance-controlled distribution system, it becomes extremely difficult to design a system that is fair, as the defintion of “fair” will be subjective :

  • Would it be fair that a USDC/DAI pool would get as much UNI as the ETH/DAI pool ? Potential deviation loss means it is less risky for me to go for the former.
  • In the case of a “rewards switch” for each pool, would it be fair that SNX/ETH gets activated for reward while UMA/ETH doesn’t ?
  • In the case where every single pool would accrue UNI token, I can create a new ERC20 coin and add liquidity to it. I would accrue UNI tokens for that pool.

Thus, trying to design an objectively fair system is probably impossible.

Some source of inspiration from other projects :

  • Compound : As far as I understand, governance token distribution is automatically set depending on borrowing demand is each market.
    –> Compound is an example of a non-controlled distribution model.
    https://compound.finance/governance/comp

  • Balancer : Uses a whitelist system. This whitelist is decided by the community, as well as a certain number of ratio/factors that are also decided by the community, and different for each pool. I think decisions are made off-chain (but tbh I am not familiar with balancer).
    –> Balancer is an example of a governance-controlled distribution model that tries to make the distribution fair, by continuously trying to come up with new variables and adjustments so no pool gets a too big portion of the cake.
    https://docs.balancer.finance/protocol/bal-liquidity-mining

  • Curve : Uses a Gauge system where governance token holders assign their governance tokens to the different pools, on-chain. The more governance token are assigned to a pool (weight), the more the pool is collecting rewards overall. This works pretty well, as pools that have the most liquidity also tend to have also the most weight.
    –> Curve is an example of a governance-controlled distribution model that adopts a simple model where token holders can constantly change the reward weight of each pool.
    https://resources.curve.fi/base-features/understanding-gauges

The Compound system aligns governance token distribution to the actual usage of the platform (and not the other way around).
The Balancer system seems to be very organic and probably very interesting to learn from (what works, what doesn’t), but the tradeoff is probably complexity.
The Curve system is relatively simple and democratic in the sense of the token holders voting for the pool they want to accrue the most of the governance token inflation. The tradeoff is that a whale (or vault controller) with enough voting power can unbalance the system but putting a lots of weight in the pool of their choice.

1 Like

Thanks for a very well thought out post, @neozaru.

Here’s my understanding in regards to the points you’ve made.

It seems to me that UNI distribution is already governance-controlled from day 1. If it is correct, to change that, we’d have to vote to revoke this right. But it looks like you meant a different thing here: whether or not we want UNI distribution to be decided by continuous/periodic voting.

Or, as an alternative, if we’d like to set up a system in place that will do this for us automatically.

Given the Uniswap protocol’s nature, I can’t imagine this type of system that would work well.

  • Inclusivity is the main feature of a decentralized swapping protocol. Anyone can create a pair.
  • Liquidity is manipulable.
  • Volume is manupulable.

So my answer to the first question is: yes, I want UNI distribution to be governance-controlled, and also strategic and proactive.

==

To the second question, as you mentioned, we want to maximize liquidity, as it lowers the slippage. Reducing the slippage increases the volume of participating pairs, which is the ultimate goal of an exchange.

But even though I view liquidity incentivization as a good thing overall, it can do more harm than good if it’s not done gently. And that’s why I’m proposing a system that will allow for gentle incentives.

  • So far, we agree that every single pool shouldn’t automatically get UNI rewards.

Here’s my example. I could create two tokens (that I own 100% of supply) and create a pair. I would effectively set the price of these tokens, the liquidity, and the volume. It would become quite an easy equation for me of whether or not UNI mining is profitable or not for me then. And the situation only gets worse as Ethereum scalability improves.

  • As for the reward switch, I’ve always assumed that it would get activated on all pairs. I can’t imagine UNI holders voting to get less money.

  • I also do agree that stablecoin/stablecoin pairs should not get the same rewards as non-stablecoin pairs.

What you say about risks of deviation loss also means that non-stablecoin pairs would earn less on average.

From the community-building perspective, I’m not sure what USDT-USDC pair would achieve. At the very least, it’s a costly and ineffective way to build a community.

Introducing USD/USD pairs on even terms with other pairs in the proposed system is a recipe for disaster.

Compared to BTC and ETH, there’s almost an endless supply of USD in the world. Introducing a riskless USD pair on even terms:

  • dilutes the UNI value that other pairs get by a significant margin.
  • brings governance rights to big funds that own a lot of USD
  • introduces risk-free UNI farming.

So we should treat USD/USD like any other pair. And then it just comes to how much liquidity we want to incentivize on it. But there needs to be a strong reason to do that in the first place.

==

If we try to apply other existing systems to Uniswap, the Compound model doesn’t look viable due to the reasons above.

Initially, I imagined the proposed distribution system closer to what you’ve described as the Balancer model.

The Curve model certainly has some elegancy to it. And we also could merge both approaches.

We could adopt a Curve-like distribution model towards whitelisted pairs .

But for now, let’s try to imagine how the Curve model would work on Uniswap in its pure form.

What behavior does it stimulate? What outcomes are realistic? Do they do any good?

If you participate in a pool with significant liquidity and own a coin with smaller liquidity, is it unequivocally better to vote for the smaller coin? Will you get more UNI this way? If so, to what extent?

Let’s say X coin holders own 1.5% of UNI supply and vote for UNI mining through X/ETH pair. If they all vote for it, their actual voting power is much more than that. Like, if 50% of UNI holders cast their votes towards liquidity mining pools, they now own 3% of UNI liquidity mining distributions.

This probably creates a situation where the UNI distribution rates per dollar pooled are better for X/ETH pair than for other pools. The question is, to what extent.

Does it incentivize newcomers to buy X coins to participate in the pool?

Does it encourage speculative behavior overall?

Can someone potentially use this system to take advantage of this speculative behavior?

I think yes, I can imagine that.

As a UNI whale, you buy a random coin Y. You create ‘big UNI APY’ on it with your voting power. People buy it to participate in the UNI distribution pool. You sell your Y coins. You revoke your voting power towards a new coin.

==

So at this point, I would vote against Curve-like and Compound-like distribution model.

I’m not sure if continuous voting is any better than a periodic vote where you set up ratios. So I’m generally neutral but would stick with the Balancer model over the Balancer-Curve model.

The key points I’d like to make within your framework are:

  • UNI liquidity distribution should be governance-controlled
  • The pairs should be whitelisted
1 Like

Agree, pairs should most definitely be whitelisted to prevent someone from as you said creating two tokens to make their own pair which theyd have full control over and could then use to potentially extort Uni tokens.

Now that I think of the merged models, it seems that there might be an interesting option here.

As I’ve said before, I recognize two distinguishable goals of liquidity mining program:
a) community-building
b) liquidity incentivization.

So we could create two pools that pursue different goals and operate by different rules.

One pool could consist of the whitelisted pairs for community-building that are distributed with even APYs. Or alternatively, we could replicate the current system with multiple pools, even split and non-even APY.

The second pool would account for liquidity incentivization.

And this is where, on a smaller scale, we could explore how liquidity incentivization actually works. Like, whether or not it makes sense to incentivize liquidity with UNI distributions from a business standpoint.

Curve-like distribution maybe could also make more sense in the environment of the second pool, but it’s early to say.

But what we could do easily with the second pool is the following.

  1. We select the whitelist of pairs we’d like to incentivize liquidity on and notice what the liquidity and volume are on them before incentivization.
  2. We create a UNI pool for them
  3. At the end of the program, we assess the results: before + during + after the program + comparing it to average platform performance.

If the fee switch is activated and UNI captures the value of volume that is being traded on Uniswap, we could have an equation here that would tell us if we’ve made a good or bad business decision.