FinancialsVoteDocsDAO GraphExplore
← All proposals
    ←Previous#94#96Next→

    #95 Protocol Fee Expansion: Vote 2

    executed

    Payment Status

    Description

    Protocol Fee Expansion: Vote 2

    Proposal Spec

    If this proposal passes, it will execute ten transactions:

    /// Enable fees on Soneium, XLayer, Celo, Woldchain, and Zora. For each chain:
    
    /// Set the owner of the V3 Factory to the V3OpenFeeAdapter
    V3_FACTORY.setOwner(address(v3OpenFeeAdapter));
    
    /// Set the recipient of V2 protocol fees to the TokenJar
    V2_FACTORY.setFeeTo(address(tokenJar));
    

    Because these transactions are crosschain, governance front ends may not decode them correctly. We recommend reviewing the Seatbelt simulation report to confirm their validity. Three other things to note:

    • Soneium and XLayer deployments are owned by DUNI's alias address on those chains. Celo, Worldchain, and Zora deployments are owned by CrossChainAccount contracts owned by DUNI. Standardizing ownership across chains will be addressed in a future governance proposal.
    • On Celo, Uniswap v2 and v3 admin roles are being transferred from Wormhole to a DUNI-owned CrossChainAccount in proposal 94, which will execute prior to this proposal if passed. Because this proposal uses that CrossChainAccount, simulations currently fail.
    • Tenderly, a dependency for these simulations, does not support Zora so those calls cannot be simulated.

    Relevant Addresses

    Soneium

    | Contract | Address | | --- | --- | | TokenJar | 0x85aeb792b94a9d79741002FC871423Ec5dAD29e9 | | Releaser (OptimismBridgedResourceFirepit) | 0xc9CC50A75cE2a5f88fa77B43e3b050480c731b6e | | V3OpenFeeAdapter | 0x47Cf920815344Fd684A48BBEFcbfbed9C7AE09CF | | UniswapV3Factory | 0x42aE7Ec7ff020412639d443E245D936429Fbe717 | | UniswapV2Factory | 0x97FeBbC2AdBD5644ba22736E962564B23F5828CE | | Mainnet Bridge | 0x88e529A6ccd302c948689Cd5156C83D4614FAE92 |

    XLayer

    | Contract | Address | | --- | --- | | TokenJar | 0x8Dd8B6D56e4a4A158EDbBfE7f2f703B8FFC1a754 | | Releaser (OptimismBridgedResourceFirepit) | 0xe122E231cb52aea99690963Fd73E91e33E97468f | | V3OpenFeeAdapter | 0x6A88EF2e6511CAFfE2D006e260e7A5d1E7D4d7D7 | | UniswapV3Factory | 0x4B2ab38DBF28D31D467aA8993f6c2585981D6804 | | UniswapV2Factory | 0xDf38F24fE153761634Be942F9d859f3DBA857E95 | | Mainnet Bridge | 0x64057ad1DdAc804d0D26A7275b193D9DACa19993 |

    Celo

    | Contract | Address | | --- | --- | | TokenJar | 0x190c22c5085640D1cB60CeC88a4F736Acb59bb6B | | Releaser (OptimismBridgedResourceFirepit) | 0x2758FbaA228D7d3c41dD139F47dab1a27bF9bc25 | | V3OpenFeeAdapter | 0xB9952C01830306ea2fAAe1505f6539BD260Bfc48 | | UniswapV3Factory | 0xAfE208a311B21f13EF87E33A90049fC17A7acDEc | | UniswapV2Factory | 0x79a530c8e2fA8748B7B40dd3629C0520c2cCf03f | | Mainnet Bridge | 0x1AC1181fc4e4F877963680587AEAa2C90D7EbB95 | | Celo CrossChainAccount | 0x044aAF330d7fD6AE683EEc5c1C1d1fFf5196B6b7 |

    Worldchain

    | Contract | Address | | --- | --- | | TokenJar | 0xbDb82c2dE7D8748A3e499e771604ef8ef8544918 | | Releaser (OptimismBridgedResourceFirepit) | 0xbDb82c2dE7D8748A3e499e771604ef8ef8544918 | | V3OpenFeeAdapter | 0x1CE9d4DfB474Ef9ea7dc0e804a333202e40d6201 | | UniswapV3Factory | 0x7a5028BDa40e7B173C278C5342087826455ea25a | | UniswapV2Factory | 0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f | | Mainnet Bridge | 0xf931a81D18B1766d15695ffc7c1920a62b7e710a | | CrossChainAccount | 0xcb2436774C3e191c85056d248EF4260ce5f27A9D |

    Zora

    | Contract | Address | | --- | --- | | TokenJar | 0x4753C137002D802f45302b118E265c41140e73C2 | | Releaser (OptimismBridgedResourceFirepit) | 0x2f98eD4D04e633169FbC941BFCc54E785853b143 | | V3OpenFeeAdapter | 0xbfc49b47637a4DC9b7B8dE8E71BF41E519103B95 | | UniswapV3Factory | 0x7145F8aeef1f6510E92164038E1B6F8cB2c42Cbb | | UniswapV2Factory | 0x0F797dC7efaEA995bB916f268D919d0a1950eE3C | | Mainnet Bridge | 0xdC40a14d9abd6F410226f1E6de71aE03441ca506 | | CrossChainAccount | 0x36eEC182D0B24Df3DC23115D64DB521A93D5154f |

    Proposal

    This is the first proposal to use the new governance process approved in UNIfication. The new process only applies to fee parameter updates, where proposals can bypass the RFC stage and go directly to a five-day Snapshot followed by an onchain vote. This allows for faster updates to protocol fees, while retaining the security of onchain governance.

    Snapshot vote here.

    Since UNIfication went live in late December we have been monitoring protocol fees, which were rolled out gradually to ensure protocol health. This started with v2 and select v3 pools on Ethereum mainnet. This rollout has gone well, with market-adjusted TVL up on Ethereum mainnet since December. The burn system is working as expected, permissionlessly converting fees in many different tokens into UNI burns.

    Now, we propose to:

    • Expand protocol fees on v2 and v3 to Arbitrum, Base, Celo, OP Mainnet, Soneium, X Layer, Worldchain, and Zora
    • Enable protocol fees on all v3 pools via a new tier-based v3OpenFeeAdapter on mainnet and the above L2s

    Implementation Details

    Expand protocol fees to L2s and burn UNI on mainnet

    This proposal introduces v2 and v3 protocol fees on eight chains. Fees on each chain will be routed to the TokenJar on that respective chain.

    UNI burned on L2s doesn't stay on L2s - it is bridged back to mainnet and sent to 0xdead. This uses the same infrastructure used for burning Unichain sequencer fees (OptimismBridgedResourceFirepit for OP Stack chains, and ArbitrumBridgedResourceFirepit for Arbitrum).

    Enable fees on all v3 pools

    The current v3FeeAdapter manages protocol fees pool by pool and governance maintains a list of individual pools and their fee levels. Today, those pools account for a significant majority of v3 volume on Ethereum mainnet.

    v3OpenFeeAdapter replaces this with a tier-based system. Protocol fees are set uniformly across all pools sharing the same LP fee tier. For example, all 1bps LP fee pools could have protocol fees set to 25%. Any pool automatically gets the default protocol fee for its tier, no governance action is needed. This means if this proposal passes, protocol fees will be active on every v3 pool. Governance retains the ability to override fees on individual pools.

    Governance Process

    Please note that because of GovernorBravo's limit of 10 actions per proposal, there will be two separate onchain votes posted in parallel. One proposal will include the change to mainnet's fee controller and turn on fees on Base, OP Mainnet, and Arbitrum, the other will turn on fees on Celo, Soneium, Worldchain, X Layer, and Zora.

    For77,831,696 100%
    Against10 0%
    Abstain0 0%
    Quorumreached

    Timeline

    1. Pending
    2. Active
       
      block 24,550,105 → 24,590,425
    3. Succeeded
       
    4. Queued
       
    5. Executed
       

    Votes (223)

    0x11dA…ECdCFor · 15,000,002 UNI
    0x465f…8aA3For · 14,986,077 UNI
    0x6d71…75C3For · 8,008,117 UNI
    0x1d8F…6452For · 8,000,000 UNI
    0x4421…448DFor · 5,311,814 UNI
    0x553F…2Ac2For · 5,008,963 UNI
    0x42f9…468cFor · 5,000,000 UNI
    0x683a…6C02For · 4,755,375 UNI
    0xA7F6…d555For · 2,891,294 UNI
    0x3FB1…4C8AFor · 2,504,196 UNI
    0xB933…8Dd1For · 2,500,191 UNI
    0x5C04…dC62For · 2,270,288 UNI
    0x8787…ea52For · 474,676 UNI
    0xAac3…0bcDFor · 407,327 UNI
    0x13BD…8548For · 355,455 UNI
    0x1B68…eeaDFor · 251,208 UNI
    0x0726…f14FFor · 43,497 UNI
    0x8587…4A58For · 10,836 UNI
    0x0579…CA09For · 8,148 UNI
    0xE67B…683cFor · 6,018 UNI
    0x1F3D…0591For · 5,833 UNI
    0xDbc8…4F28For · 5,407 UNI
    0x8ABf…441aFor · 5,000 UNI
    0x6f9B…8A1dFor · 4,962 UNI
    0x12b3…0832For · 2,576 UNI
    0x2343…C09EFor · 2,245 UNI
    0x9473…aA32For · 2,115 UNI
    0x0703…961bFor · 1,999 UNI
    0x6De8…5dFdFor · 1,200 UNI
    0xB792…89D7For · 1,040 UNI
    0x21b3…Fa75For · 1,023 UNI
    0x363c…af59For · 1,009 UNI
    0xc5cb…3397For · 1,001 UNI

    For

    0xc554…7759For · 1,001 UNI
    0x4053…4f15For · 500 UNI
    0x1106…9FdaFor · 402 UNI
    0xb290…E45DFor · 345 UNI
    0xE228…13b1For · 112 UNI
    0xa829…4153For · 77 UNI
    0x7065…dF2DFor · 59 UNI
    0x7Bb9…0418For · 43 UNI
    0xFffd…bf5dFor · 20 UNI
    0xa62D…47d9For · 20 UNI
    0xbC0F…ebb8For · 20 UNI
    0xF517…29e5For · 16 UNI
    0x3DDC…05B0For · 15 UNI
    0xb201…2241For · 15 UNI
    0xe2bc…F6dbFor · 14 UNI
    0x2CbD…2c43For · 10 UNI
    0x2F2F…f78AFor · 8 UNI

    Voting timeline

    Proposal actions

    Caller
    Timelock
    0x1a9C…35BC
    →
    depositTransaction→
    Optimism Portal
    0x88e5…AE92
    ⇢ impl
    OptimismPortal2
    0x97cE…609B
    ▶_value, _gasLimit, _isCreation
    _valueuint256
    0
    _gasLimituint64
    200000
    _isCreationbool
    false
    ↳setOwner→
    UniswapV3Factory
    0x42aE…e717
    _owner→
    V3OpenFeeAdapter
    0x47Cf…09CF
    depositTransaction→
    Optimism Portal
    0x88e5…AE92
    ⇢ impl
    OptimismPortal2
    0x97cE…609B
    ▶_value, _gasLimit, _isCreation
    _valueuint256
    0
    _gasLimituint64
    200000
    _isCreationbool
    false
    ↳setFeeTo→
    UniswapV2Factory
    0x97Fe…28CE
    _feeTo→
    TokenJar
    0x85ae…29e9
    depositTransaction→
    Proxy
    0x6405…9993
    ⇢ impl
    OptimismPortal2
    0xa0fE…4033
    ▶_value, _gasLimit, _isCreation
    _valueuint256
    0
    _gasLimituint64
    200000
    _isCreationbool
    false
    ↳setOwner→
    0x4B2a…6804
    →
    0x6A88…d7D7
    depositTransaction→
    Proxy
    0x6405…9993
    ⇢ impl
    OptimismPortal2
    0xa0fE…4033
    ▶_value, _gasLimit, _isCreation
    _valueuint256
    0
    _gasLimituint64
    200000
    _isCreationbool
    false
    ↳setFeeTo→
    0xDf38…7E95
    →
    0x8Dd8…a754
    sendMessage→
    ResolvedDelegateProxy
    0x1AC1…bB95
    ⇢ impl
    L1CrossDomainMessenger
    0xE45D…8A88
    _target→
    0x044a…B6b7
    ▶_minGasLimit
    _minGasLimituint32
    200000
    ↳setOwner→
    uniswapv3factory
    0xAfE2…cDEc
    _owner→
    V3OpenFeeAdapter
    0xB995…fc48
    sendMessage→
    ResolvedDelegateProxy
    0x1AC1…bB95
    ⇢ impl
    L1CrossDomainMessenger
    0xE45D…8A88
    _target→
    0x044a…B6b7
    ▶_minGasLimit
    _minGasLimituint32
    200000
    ↳forward→
    UniswapV2Factory
    0x79a5…f03f
    ↳setFeeTo→
    UniswapV2Factory
    0x79a5…f03f
    _feeTo→
    TokenJar
    0x190c…bb6B
    sendMessage→
    ResolvedDelegateProxy
    0xf931…710a
    ⇢ impl
    L1CrossDomainMessenger
    0xb686…9FE0
    _target→
    0xcb24…7A9D
    ▶_minGasLimit
    _minGasLimituint32
    200000
    ↳setOwner→
    UniswapV3Factory
    0x7a50…a25a
    _owner→
    V3OpenFeeAdapter
    0x1CE9…6201
    sendMessage→
    ResolvedDelegateProxy
    0xf931…710a
    ⇢ impl
    L1CrossDomainMessenger
    0xb686…9FE0
    _target→
    0xcb24…7A9D
    ▶_minGasLimit
    _minGasLimituint32
    200000
    ↳setFeeTo→
    UniswapV2Factory
    0x5C69…aA6f
    →
    TokenJar
    0xbDb8…4918
    sendMessage→
    L1CrossDomainMessenger Proxy
    0xdC40…a506
    ⇢ impl
    L1CrossDomainMessenger
    0xb686…9FE0
    _target→
    0x36eE…154f
    ▶_minGasLimit
    _minGasLimituint32
    200000
    ↳setOwner→
    UniswapV3Factory
    0x7145…2Cbb
    _owner→
    V3OpenFeeAdapter
    0xbfc4…3B95
    sendMessage→
    L1CrossDomainMessenger Proxy
    0xdC40…a506
    ⇢ impl
    L1CrossDomainMessenger
    0xb686…9FE0
    _target→
    0x36eE…154f
    ▶_minGasLimit
    _minGasLimituint32
    200000
    ↳setFeeTo→
    UniswapV2Factory
    0x0F79…eE3C
    _feeTo→
    TokenJar
    0x4753…73C2