A new mechanism for distributing UNI rewards - inspired by The Graph

Inspired by The Graph’s curation model and Curve gauges.

The Problem

UNI rewards can build deep liquidity for pools but the method for choosing the right pool to reward is not formalised.

While governors can vote to incentivise certain pools, I expect that it will be hard to expand beyond the handful of pools that the community can agree on as being “essential”.

For example, there may be a coin that some expect will have enormous volume but the majority have never heard of it. Rendering it impossible to incentivise the pool even if those governors were confident enough to “put their money where their mouth is”.


The Goal

If we can accurately incentivise pools ahead of time we can have liquidity ready to provide low slippage, creating a better experience for users while reducing the inefficiency of providing a large amount of liquidity to pools that are not traded - or not enough liquidity to pools that are heavily traded.

While the pool fees should act as a good way to motivate LPs, LPs would benefit from signals from the community as to what pools should receive liquidity.


The Solution

UNI could have an additional mechanism that allows it to be staked on a bonding curve for each pool.

The more UNI staked for a pool, the more UNI from the rewards are distributed to the LPs for that pool.

Staked UNI will also receive a % of the UNI distributed as rewards.

In a similar way to GRT in The Graph, early stakes will receive an advantageous return, motivating users to discover new pools.

If the pool is never traded, there will be no UNI rewards paid to the LPs and therefore none to the staker. There is a strong motivation for stakers to stake in actively traded pools, or in pools that the staker believes will be actively traded.

The logic for distribution would be a discussion in itself. And mitigating the ability for projects to game the system would need to be thought through.

However this suggestion could do a few things:

  • increase efficiency of liquidity distribution across Uniswap pairs - not just to the ones governors reach consensus upon.
  • provide added value to UNI - a large LP for say, ETH-YFI, would want to stake more UNI on this pool to boost their rewards.
  • increase efficiency of UNI distribution - distributing not too much or too little UNI to different pools and expanding the long tail of UNI rewards in an optimal way.

I’m aware that there are questions and issues that would need ironing out. For instance, UNI rewards would quickly dilute across an enormous number of pools.

But very interested to hear the community’s thoughts on this approach.

7 Likes

This is an interesting idea! One drawback is that staked UNI wouldn’t be able to participate in governance, so we’d almost be incentivizing against vote participation. Any thoughts on how this could be addressed?

2 Likes

Great idea!

We might be able to use the voting infrastructure of uniswap governance. We just need a weighted poll based on the amount of UNI for every pair.

Is that already possible?

2 Likes

Would it not be possible for staked UNI to issue a wrapped token that was accepted by the governance contract?

Similar to how UNI-ETH LP tokens could be used in governance. Requires significant work though!

2 Likes

My general approach to liquidity mining incentivization is that it should be gentle. It shouldn’t motivate people to buy or sell coins they don’t own.
So we address people who already own the coins and incentivize them to keep these coins in an LP pool instead of their wallets.
I do not find the proposed mechanism as a gentle liquidity incentivization.

I view it more as a game.

If I understand correctly, in this game, the winner is the one who staked UNI first to a pool that becomes popular later.

And the losers are:

  • the ones who staked last, and
  • the LPs and stakers of other pools.

I can’t find why we want to introduce a game with winners and losers into the liquidity mining program.

The mechanism of rewarding the early LPs based on liquidity and volume is already set in the default Uniswap design.
I see no reason to duplicate and enhance it with UNI distributions - and create a highly speculative environment around the program.

Last but not least, there are ways to cheat in this game.
Liquidity is manipulable.
Volume is manipulable - and will become much more manipulable in Uniswap V3.

What I am suggesting is that UNI rewards are a function of:

UNI staked, liquidity and volume.

Consider the very simple hypothetical formula:

rewards = UNI staked * liquidity * volume

If no stake, no rewards. If no liquidity, no rewards. If no volume, no rewards.

Someone looking to game this system would have to manipulate all three variables at a significant cost to themselves. Adjusting the formula to make manipulation more costly than the gain is important; I would be very interested for any mathematical brains out there to chime in on this.

UNI staked also earns rewards to incentivise users to allocate correctly. (You wouldn’t stake to a pool that had no volume or was unlikely to have any liquidity). This would be a great signal for pools that are valuable to Uniswap.

It’s also not about rewarding early LPs. It’s about rewarding early signallers. You mention there are ways to cheat this game but provide no extra details.

The alternative that is currently being used is a “top down” approach to UNI distribution. One that I fear will not work at all well in a distributed system like Uniswap.

I’ll quote myself from a similar topic:

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.

This, plus I would get an extra bonus for being an early signaller on my own pair.
So incentivizing early signallers only makes things worse in an already broken system.

If we add volume as part of the equation, we inevitably invite a ton of fake volume in the race to get more UNI. So we clog the Ethereum blockchain for no real reason.

There could be an upgrade that allows staked UNI tokens to participate in governance.

Easily solved by using one or more of the lists from https://tokenlists.org/

It was an exaggerated example.
The token lists don’t solve the fact that liquidity and volume are easily manipulable.

And to bring my exaggerated example closer to reality, the supply of most tokens traded on Uniswap is extremely centralized.

The more realistic example would be where I already own a decent percentage of the supply of a coin on the list you’ve mentioned.

And now I’m incentivized to:

  1. withdraw my liquidity
  2. stake the maximum amount of UNI
  3. add my liquidity and add volume
  4. see how volume, liquidity & price of my token grow further because of UNI rewards
  5. rip the maximum benefits at the expense of the people who came later

It is an equation, and it is easily solved. And it is a game that is rigged in favor of the whales getting advantage of retail investors.

You keep mentioning “adding volume”. You don’t just add volume. You make large trades that cost gas and eat 0.03% of every trade. The equation would simply ensure that the cost of “faking” volume (you’re not faking it, you’re creating it) is greater than the reward.

With the approach I’m suggesting, you signal pools that will require volume/liquidity. The incentives are structured in a way that if you signal incorrectly (i.e. stake UNI to a pool that doesn’t get volume or liquidity) you will be rewarded less than if you signalled honestly.

Let’s look at the scenario you’re talking about:

  1. Stake UNI on KNC/SUSD
  2. Add liquidity to KNC/SUSD
  3. Oh no, no one is trading KNC/SUSD
  4. Create lots of volume yourself at 0.03% a pop
  5. Find that you have to spend literally hundreds of thousands to compete against honest staking where volume is drawn organically (ETH/WBTC, ETH/DAI etc)
  6. Lose your money and waste your stake

This isn’t a centralised exchange or TRON where you can fake volume for free. Real value has to be spent on the pool you stake for it to generate UNI rewards. Distribution will simply make it uneconomic to act dishonestly.

Regarding your point 5: the curve can be somewhat flat, rewarding early users very slightly over later users. Or it can be steep. Whatever governance decides.

The Graph has an incredible approach to this. See the “Curators” heading:

Let’s take a closer look at your example.
Both the liquidity and trading volume for KNC/SUSD is 0
You stake your UNI there, provide liquidity, and make the trades.
In this scenario, the only fees you pay are the Ethereum network fees. Ethereum fees will be significantly cheaper in Uniswap V3.

All the Uniswap fees you pay to yourself, as you’re the only liquidity provider.
How are you losing money on this trade?
Maybe once the fee switch is activated, there will actually be a cost of 0.05%.

That is is not a complete example, of course. And it can’t be.

We can guesstimate some numbers compared to the status quo in a frozen system.

You stake X amount of UNI, provide Y liquidity and Z volume. You pay M for Ethereum fees, and liquidity goes to N due to the pool being profitable to mine UNI, etc.

You can make one calculation to see if it’s worth it for you or not.

Under no circumstances the UNI distribution rewards should outweigh the Ethereum gas fees needed to do the sequence.

So this leaves us with a very limited capacity to reward in the first place.

The question is if it will be negligible or not. Let’s say it’s not negligible, and we’ve got ourselves a system to incentivize liquidity pools.

In a frozen system, this could make sense. But the problem is the system is not frozen.

Once you incentivize the volume, the volume goes up everywhere.

It is currently anti-ecological to incentivize volume in any shape or form, especially on the top1 app on Ethereum. It struggles with the throughput as is.

These are just the fundamentals. You can’t incentivize the volume with high efficiency. It will either be negligible or contribute to the network’s clogging.

==

My general thesis is that it makes no sense for a UNI holder to incentivize liquidity pools before the fee switch is activated. There needs to be a benefit of increased liquidity and volume.

It is also reasonable to activate the fee switch once Uniswap V3 is out, making the rewards distribution process much more manageable.

It seems to me that the proposed model would not work without the fee switch at the very least.

And even if we imagine granting ourselves with V3 and fee switch, I’m still unsure if volume incentivization is a good idea.

But at the very least, the fee switch creates a calculation of UNI holders about whether the UNI distribution program brings them value or not.

See point about using tokenlists.org

I’m not following. You don’t provide Z volume; others provide Z volume. You are predicting future Z and future Y by staking X.

Where did I say this?

The weighting of Z can be balanced accordingly.

The benefit comes in the efficient allocation of UNI rewards based on individual predictions about where UNI should be directed.

The alternative is to continue a top down approach to allocation that is a slow and blunt.