If this proposal passes, it will execute three actions, each of which has multiple inner calls.
On BNB Chain and Polygon, the actions will execute the following transactions:
/// Set the recipient of V2 protocol fees to the TokenJar
V2_FACTORY.setFeeTo(address(tokenJar));
/// Set the owner of the V3 Factory to the V3OpenFeeAdapter
V3_FACTORY.setOwner(address(v3OpenFeeAdapter));
On Celo, the action will execute the following transactions:
/// Set the recipient of V2 protocol fees to the TokenJar
V2_FACTORY.setFeeTo(address(tokenJar));
/// Transfer feeToSetter role from Wormhole to the CrossChainAccount
V2_FACTORY.setFeeToSetter(address(crossChainAccount));
/// Set the owner of the V3 Factory to the V3OpenFeeAdapter
V3_FACTORY.setOwner(address(v3OpenFeeAdapter));
/// Transfer ownership of the V4 PoolManager to the CrossChainAccount
POOL_MANAGER.transferOwnership(address(crossChainAccount));
Celo
| Contract | Network | Address |
|---|---|---|
| TokenJar | Celo | 0x190c22c5085640D1cB60CeC88a4F736Acb59bb6B |
| V3OpenFeeAdapter | Celo | 0xB9952C01830306ea2fAAe1505f6539BD260Bfc48 |
| UniswapV3Factory | Celo | 0xAfE208a311B21f13EF87E33A90049fC17A7acDEc |
| UniswapV2Factory | Celo | 0x114A43DF6C5f54EBB8A9d70Cd1951D3dD68004c7 |
| PoolManager | Celo | 0x288dc841A52FCA2707c6947B3A777c5E56cd87BC |
| UniswapWormholeMessageReceiver | Celo | 0x0Eb863541278308c3A64F8E908BC646e27BFD071 |
| Celo CrossChainAccount | Celo | 0x044aAF330d7fD6AE683EEc5c1C1d1fFf5196B6b7 |
| Wormhole Sender | Ethereum | 0xf5F4496219F31CDCBa6130B5402873624585615a |
BNB Chain
| Contract | Network | Address |
|---|---|---|
| TokenJar | BNB Chain | 0xc6Ae6373CEcc9e595A6C8b9fe581925a8c84f70A |
| V3OpenFeeAdapter | BNB Chain | 0x3F07F08b45912dCd6691C5B9412975D5113B2910 |
| UniswapV3Factory | BNB Chain | 0xdB1d10011AD0Ff90774D0C6Bb92e5C5c8b4461F7 |
| UniswapV2Factory | BNB Chain | 0x8909Dc15e40173Ff4699343b6eB8132c65e18eC6 |
| UniswapWormholeMessageReceiver | BNB Chain | 0x341c1511141022cf8eE20824Ae0fFA3491F1302b |
| Wormhole Sender | Ethereum | 0xf5F4496219F31CDCBa6130B5402873624585615a |
Polygon
| Contract | Network | Address |
|---|---|---|
| TokenJar | Polygon | 0xc6Ae6373CEcc9e595A6C8b9fe581925a8c84f70A |
| V3OpenFeeAdapter | Polygon | 0x3F07F08b45912dCd6691C5B9412975D5113B2910 |
| UniswapV3Factory | Polygon | 0x1F98431c8aD98523631AE4a59f267346ea31F984 |
| UniswapV2Factory | Polygon | 0x9e5A52f57b3038F1B8EeE45F28b3C1967e22799C |
| Ethereum Proxy | Polygon | 0x8a1B966aC46F42275860f905dbC75EfBfDC12374 |
| Polygon Fx Root | Ethereum | 0xfe5e5D361b2ad62c541bAb87C45a0B9B018389a2 |
This proposal continues the protocol fee rollout, following proposals #93, #94, and #95. It uses the expedited governance process approved in UNIfication, where fee parameter update proposals can bypass the RFC stage and go directly to a five-day Snapshot followed by an onchain vote.
Since protocol fees went live on Ethereum mainnet in late December, the rollout has extended to 73 additional chains (Arbitrum, Base, OP Mainnet, Soneium, X Layer, Worldchain, and Zora). The burn system is working as designed, with fees accumulating in TokenJars across chains. From there, searchers claim them in exchange for burning UNI by bridging it back to mainnet and sending it to the burn address.
This proposal:
Fees on each chain will be routed to the TokenJar on that respective chain. UNI burned on these chains is bridged back to Ethereum mainnet and sent to the burn address.
Celo uses the same architecture as other OP-stack chains. On BNB and Polygon, we make use of Wormhole’s Native Token Transfer (NTT) mechanism for multichain token management. Details on our implementation can be found here.
Protocol fee levels are the same on all other chains where fees are live, see breakdown here.