DUNI
ProposalsVotersInfo
©

2026 Agora, the onchain governance company

/
Twitter
/
Github
/
About
Standard Proposal by 0x92...959c

Protocol Fee Expansion: Arc

Proposal Visualization
Proposed Actions
Action 1
View contract
Signature
Decoding transaction...
Expand all actions (3)

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:

  • Extends the infrastructure for collecting and burning protocol fees to Arc
  • Enables v2, v3, and v4 protocol fees on Arc

Implementation Details

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.

Proposal Spec

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:

NameNetworkAddressDescription
V2_FACTORYArc0x89e5DB8B5aA49aA85AC63f691524311AEB649ebaUniswap V2 Factory
V3_FACTORYArc0xf0db7b58379503491d857dB50AC9ece64c653918Uniswap V3 Factory
V4_POOL_MANAGERArc0x8366a39CC670B4001A1121B8F6A443A643e40951Uniswap V4 Pool Manager
UNISWAP_WORMHOLE_RECEIVERArc0xbCA30b5429935205037069cF5b8A165F55d05a75Governance owned Wormhole receiver
TOKEN_JARArc0xfd39ac616e630e9db03EFB2c9a4Fe63eDB949233Fee Collector
V3_OPEN_FEE_ADAPTERArc0xa59FfbB55D91Fc32b44A06F0b9cc6036a4afbcE2Uniswap V3 Fee Adapter
V4_FEE_ADAPTERArc0x2f2bd3F43880b9644211f16d861b0672aaB23782Uniswap V4 Fee Adapter
V4_FEE_POLICYArc0x9671B518dA771c5c73d8115b3800FA7653a72015Uniswap V4 Fee Policy
RELEASERArc0xe1Adf3f130Abf616a7aB04AEeBf8D0470F6B6a16WormholeReleaser
NTT_MANAGERArc0xC8271548CC9c2F9BE3e926b99a588E211B1A0417Wormhole NTT Manager
WORMHOLE_TRANSCEIVERArc0x0B359a34f94c9371d43560448d6765d508771fFcWormhole Transceiver
SYNTHETIC_NTT_UNIArc0x0ff2262B299D2a7784Cfb29f944FbAB239Ad1df6Synthetic UNI
WORMHOLE_SENDEREthereum0xf5F4496219F31CDCBa6130B5402873624585615aWormhole Sender
NTT_MANAGEREthereum0x6569925Aac77D6B8Bb085F31F9828ff80D5a0c44Wormhole NTT Manager
WORMHOLE_TRANSCEIVEREthereum0x7597C40Fd3df66b750C14ad4D90524e247499011Wormhole Transceiver
FOR - 0
AGAINST - 0
Starts 11:56 am Sep 27, 2026
Voters
Hasn't voted
Loading...