This proposal is part of the protocol fee rollout, following proposals #93, #94, #95, #96, #99, and #100. 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 last year, the rollout has extended to eleven additional chains: Arbitrum, Base, OP Mainnet, Worldchain, X Layer, Soneium, Zora, Celo, BNB Chain, Polygon, and Robinhood Chain. 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.
Arc is a Layer 1 built by Circle for the world's financial markets, real-time money movement, and agentic economic activity, with mainnet going live September 16, 2026. Uniswap was live on Arc from launch, with v2, v3, v4, and UniswapX all deployed.
This proposal:
Governance path. Cross-chain governance messages are sent from the protocol's Timelock to the UniswapWormholeMessageSender on Ethereum and executed on Arc by UniswapWormholeMessageReceiver. As is the case on Polygon and BNB Chain, the UniswapWormholeMessageReceiver holds the feeToSetter role on the Uniswapv2Factory and the owner role on Uniswapv3Factory and v4's PoolManager prior to turning on fees.
Burn path. UNI on Arc is a synthetic token under Wormhole's Native Token Transfer system (NTT). This is a 'lock, mint, and burn' system where canonical UNI is locked on Ethereum so a synthetic UNI can be minted on a foreign chain using Wormhole's NTT infrastructure. More details can be found in the spec here.
Protocol fees generated on Arc burn UNI on mainnet using the Tokenjar and Releaser smart contracts. As on other chains, a searcher pays synthetic UNI on Arc to claim the TokenJar's accumulated fees. The releaser, WormholeReleaser, sends that synthetic UNI to be burned by the NttManager on Arc, which emits a Wormhole message. The message is forwarded to the NttManager on Ethereum, which sends the corresponding canonical UNI to the burn address. This is the same releaser and the same path already in production on Polygon and BNB Chain.
The AMM, governance message passing, and protocol fee infrastructure contracts have been deployed and are detailed in the table below.
Implementation details for the v4 fee system are in the v4 fee activation temp check. v2 and v3 protocol fee levels are the same as on all other chains where fees are live. See a breakdown here.
If passed, the Arc Fee Activation proposal will execute two sets of calls on Ethereum.
The first registers Arc with the existing mainnet NTT system, setting Arc's WormholeTransceiver and NttManager as peers of their Ethereum counterparts. On Polygon and BNB Chain this step was permissionless, because the mainnet NTT contracts were being deployed at the same time and had not yet been handed to the Timelock. Those contracts now exist and are governance owned, so registering a new chain against them requires an onchain vote.
WORMHOLE_TRANSCEIVER.setWormholePeer(ARC_WORMHOLE_CHAIN_ID, ARC_WORMHOLE_TRANSCEIVER)
NTT_MANAGER.setPeer(ARC_WORMHOLE_CHAIN_ID, ARC_NTT_MANAGER, 18, 0)
Note that WORMHOLE_CHAIN_ID is a parameter specific to Wormhole, not to be confused with EVM Chain IDs. More details here.
The second call sends the fee activation calls to Arc:
WORMHOLE_SENDER.sendMessage(targets, values, datas, UNISWAP_WORMHOLE_RECEIVER, ARC_WORMHOLE_CHAIN_ID)
encoding:
V2_FACTORY.setFeeTo(TOKEN_JAR)
V3_FACTORY.setOwner(V3_OPEN_FEE_ADAPTER)
V4_POOL_MANAGER.setProtocolFeeController(V4_FEE_ADAPTER)
Once executed on Arc, these set the fee collector of UniswapV2Factory to TokenJar, transfer ownership of UniswapV3Factory to V3OpenFeeAdapter, and set the v4 PoolManager's protocol fee controller to V4FeeAdapter.
RELEVANT ADDRESSES: