Note: On February 23, 2024, the Uniswap Foundation issued a new proposal to allocate protocol fees to pledged UNI token holders. Affected by this news, the price of UNI rose from US$7 to US$12 in a short period of time. , an increase of more than 70%. Cryptofee data shows that Uniswap’s protocol fee income reached US$2.14 million on February 22, and the seven-day average income was US$2.05 million. As of today in February, Uniswap’s protocol fee income has reached nearly US$46 million. Uniswap’s protocol fee revenue in January 2024 reached $58 million.
So, what does the proposal say? Let’s take a detailed look at the Uniswap Foundation’s latest proposal.
Abstract
The Uniswap Foundation proposes a massive upgrade to Uniswap protocol governance to incentivize activity, participation, and thoughtful consideration authorization. Specifically, we propose upgrading the protocol so that its fee mechanism rewards UNI token holders for delegating and staking their tokens.
The proposal describes the motivation for this change and details the technical changes and logistics required to implement the change.
Multiple appendices provide additional context.
Assuming no major obstruction occurs, snapshot voting for the proposal will be released on March 1, 2024, and on-chain voting will be released on March 8, 2024.
Introduction: Activating Uniswap Governance
This proposal aims to pass Incentivize active, engaged, and thoughtful delegation to revitalize and strengthen Uniswap’s governance system. Specifically, we propose upgrading the protocol so that its fee mechanism rewards UNI token holders for delegating and staking their tokens.
The Uniswap Foundation team is often asked what successful governance of Uniswap looks like. Quite simply, governance success equates to the long-term sustainability and continued growth of the protocol. Governance controls the Uniswap treasury and core parameters related to the long-term sustainability of the protocol (such as fees). In 5, 10, 20 years, Uniswap’s continued success — and whether it truly becomes the liquidity layer of the internet — will be the result of its representatives and their decisions.
Over the past year, the Uniswap Foundation has prioritized improving the delegation experience. We give delegates the opportunity to launch a platform (Delegated Delegate Competition) and provide them with the information they need to make the right decisions. Next week, we will launch GovSwap at ETHDenver, the first in a series of in-person gatherings designed to generate good governance outcomes by defining shared goals. Subsequent GovSwaps will be conducted on ETHcc and Devcon. For principals, we funded and launched Agora30, a platform that allows principals to find representatives who best represent their interests.
As a result of these efforts, delegation activity has increased, as evidenced by the growing number of community-driven governance initiatives. For example, in the last three months:
The upcoming vote successfully piloted a program to incentivize the adoption of Uniswap V3 on non-mainnet chains ( There are 16 non-mainnet deployments).
The 10 million tokens in the protocol vault have been delegated across 7 different delegates.
Representative-run governance calls begin taking place on the second Tuesday of the month.
However, there is much more that can be done. Free-riding and apathy remain existential risks to the sustainability of the Uniswap protocol. Less than 10% of circulating UNI is used to vote on a given proposal. Furthermore, a significant portion of existing authorizations are “archaic.” As of February 1, 2024, 14 of the top 30 representatives by voting power have not voted on the past 10 proposals, and only 7 of them have ever created a proposal.
We are excited to incentivize governance by tying delegation to protocol fees—incentivizing not just delegation, but thoughtful and active delegation. Specifically, we believe that UNI token holders will be incentivized to select representatives and that their votes and participation in the protocol will lead to its growth and success. If this proposal is successful, we believe we will see an influx of new delegations. And since existing delegators will need to re-delegate to stake their tokens, we will see “stale” existing delegations move to delegates who have proven their commitment to supporting the protocol. Furthermore, the mechanism can operate on its own in the future - continuing to incentivize participation without the need for any additional facilitation.
Summary of Proposed Technical Changes
The Uniswap Foundation funds research and development of the various components required to implement the proposal. Specifically, we funded two new smart contracts designed to be deployed into and interact with the existing ecosystem of Uniswap contracts running on-chain. If this governance proposal is implemented, they will:
1. Upgrade Uniswap protocol governance to implement permissionless, programmatic protocol fee collection
2. Proportionally vote for pledged and delegated votes UNI token holders allocate protocol fees
3. Allow governance to continue to control core parameters: which pools charge fees, and the size of the fees
Below we briefly outline these two New contract. More technical details can be found in the appendix.
The two new contracts are V3FactoryOwner.sol and UniStaker.sol.
1. V3FactoryOwner.sol allows programmatic, permissionless charging of protocol fees and includes a mechanism to incentivize the conversion of these fees into universal ERC20 for distribution to UNI deposited into Unisaker.sol of pledgers. In order for this contract to function, it needs to be the owner of UniswapV3Factory.
2. UniStaker.sol manages delegation and fee allocation. Participants who respond to the mechanism in V3FactoryOwner.sol deposit ERC20 into UniStaker.sol for distribution to stakers. UniStaker.sol is modeled after Synthetix's tried-and-true StakeRewards.sol, but extends the functionality of that contract in two key ways: 1) it requires staking accounts to stake their tokens, 2) it allows (but does not require) The staking account distributes staking rewards to any other accounts.
Next steps
If governance supports this move, we will move forward with this vote. Specifically, a successful on-chain vote will update the mainnet UniswapV3Factory owner to deploy V3FactoryOwner.sol, enabling the programmatic charging mechanism described above.
Next steps are:
1. February 23: Per governance processes, this post will remain open for conversation for at least 7 days.
2. February 23: The Code4rena audit competition begins and will last for 10 days.
3. Next Friday, March 1st: After the Code4rena competition ends, the Uniswap Foundation will release a snapshot, which includes the options "Yes, upgrade the owner of UniswapV3Factory", "No, do not upgrade all owners of UniswapV3Factory" ” and “abstain”. Any mitigations, instances of V3FactoryOwner and UniStaker will be deployed and verified on Etherscan.
4. March 7: Assuming the snapshot is successful, the Uniswap Foundation will issue an on-chain vote, and its successful execution will call the setOwner function of UniswapV3Factory and pass the v3FactoryOwner address to it.
5. The Immunefi bug bounty will take effect before the successful on-chain voting ends. Details of this bounty, including a link, will be provided prior to the proposal being voted on-chain.
These dates may change based on review results and community dialogue.
Assuming the on-chain vote is successful, the community will have the option to charge fees. To this end, Gauntlet is preparing a proposed rollout process and will publish it on the forum. Only upon completion of that separate governance process will fees be collected and allocated under the contract adopted in this proposal.
Appendix A: Uniswap Protocol Fee Technical Overview
A detailed description of the currently existing protocol fee mechanism can be found on the Uniswap Foundation Blog. A brief description is as follows:
1. The protocol fee is expressed as a part of the LP fee (which ranges from 1 to 100 basis points). The specific score can be adjusted through governance and can be 0, 1/4, 1/5, 1/6, 1/7, 1/8, 1/9 or 1/10. They are currently set to 0.
2. The protocol fees are set according to the pool, and the fees are accumulated among the two tokens that make up the pool.
3. UniswapV3Factory is the core contract of Uniswap V3; it starts a separate pool contract to which users can add liquidity and exchange back and forth. The factory owner is the only contract that can enable fees in the pool and collect fees when enabled. Currently, the owner is Uniswap Governance’s Timelock3 contract.
The proposed vote will change the owner of UniswapV3Factory to the deployment of V3FactoryOwner.sol.
Appendix B: New Contract Description and Parameters
The smart contract part of our proposed solution consists of two custom contracts, designed and written by Scopelift. This appendix discusses each of them.
V3FactoryOwner.sol
This contract allows programmatic, permissionless collection of protocol fees from the pool, while maintaining Uniswap governance control over whether fees are turned on and at what level.
The fee mechanism sets up a constant "race" in which outside parties (we assume this will include MEV bots, arbitrageurs, etc.) compete to claim each pool as it becomes profitable Fees incurred by the pool. External parties requesting a fee will need to deposit (in our proposed implementation) 10 WETH into the deployment of UniStaker.sol (details below). In other words, once the value of the accrued fees exceeds 10 WETH (plus Gas), rational actors will be incentivized to convert the accrued fees into 10 WETH and send them directly to the UniStaker.sol contract.
In addition, the V3FactoryOwner is configured to pass function calls from Uniswap Governance that are required to open and adjust protocol fees in any pool deployed from the Uniswap V3 Factory contract. These adjustments still require governance votes.
In order for this contract to function, it needs to be the owner of UniswapV3Factory. The first vote (i.e. the upgrade vote) will update the owner of UniswapV3Factory to the address of the deployed instance of V3FactoryOwner.sol.
V3FactoryOwner has four parameters that are configured during contract deployment.
Appendix C: Protocol Fee Allocation Logic
The ratio of accrued protocol fees to UNI stakers and the size of staker rewards are determined by multiple variables. Specifically:
1. Reward tokens (set on UniStaker and V3FactoryOwner). This is the denomination of rewards allocated to UNI stakers.
2. Reward amount (set on V3FactoryOwner). This is the total reward amount distributed among stakeholders for each deposit. A higher incentive amount means that, all other factors remaining constant, fees will be claimed and allocated to stakeholders less frequently than with a lower incentive amount.
3. Reward duration (set on UniStaker). The length of time a given reward amount is distributed after it is deposited into UniStaker. A longer reward period incentivizes stakers to stake and thus delegate over a longer period of time to receive the same amount of fees, all other factors remaining constant.
4. The staker’s share of the total UNI pledge: The protocol fees are proportionally distributed to the stakers on a given block. If a staker represents a larger proportion of the total amount of UNI staked in a given block, they will be rewarded with relatively more fees, all other factors remaining constant.
5. Transaction volume. All other factors being equal, higher transaction volume means fees are collected and distributed to stakeholders more frequently than lower transaction volumes.
Please note that the bonus period "clock" resets every time a deposit occurs. All outstanding bonus amounts will be added to newly deposited bonus amounts and this amount will be distributed over subsequent bonus periods.
To illustrate these allocation mechanisms using an example, assume that we have defined the contract variables as follows:
< p>Every time more than 10 WETH are generated in fees in the pool, a third party is incentivized to collect these fees and allocate 10 WETH into UniStaker. From then on, they will be distributed proportionally to stakers within 30 days.
Example 1: Simple case
Suppose Alice has deposited 10 UNI into UniStaker, and she is the only person to do so. Her stake represents 100% of UNI's total shares.
On the first day of her staking, the reward (10 WETH) is deposited into UniStaker.
The reward amount is approximately 0.33 WETH per day (10 WETH divided by the reward period of 30 days).
Alice earns ~0.33 WETH every day for 30 days
Example 2: New reward distribution
Assume that Alice Deposited 10 UNI into UniStaker and she is the only one to do so. Her stake represents 100% of UNI's total shares.
On the first day of her staking, the reward (10 WETH) is deposited into UniStaker.
Alice earns ~0.33 WETH per day.
The new reward allocation of 10 WETH will arrive on Day 3. At this point, the rewards paid will reset to include this new deposit. On Day 3, there is approximately 9 WETH outstanding in Reward 1. Now, there is a total of approximately 19 WETH to be paid out during the subsequent 30-day bonus period.
Now, Alice receives a reward rate of about 0.633 WETH per day (about 19 WETH divided by 30 days)
Example 3: New staker
Suppose Alice receives approximately 0.633 WETH every day.
The new staker Bob pledged 10 UNI. Alice and Bob each account for 50% of the total UNI pledge. Alice and Bob will now share 0.633 WETH prorated for the period (0.3165 per day), or until new deposits arrive.