AIP: Nova Fee Router Proposal (ArbOS 30)
Constitutional Proposal
Abstract / Motivation
Currently, the DAO receives transaction fees on Nova at an address accessible via the core governance system. This means that any time the DAO wishes to transfer these funds, it must pass a constitutional proposal. We propose instead a system in which these funds are “automatically” (permissionlessly) sent from Nova to the Arbitrum DAO Treasury on Arbitrum One. This gives the DAO faster, easier accessibility to these funds, and should make bookkeeping simpler.
Details
Currently, the portion of the Nova transaction fees that the DAO collects are sent via the fund distributor contracts to 0xf7951D92B0C345144506576eC13Ecf5103aC905a, the address alias of the core governance l1 timelock. This allows the DAO to spend the funds via a round-trip core proposal initiated from the core governor on Arbitrum One.
A system in which these funds were sent to the DAO Treasury without the DAO needing to take action is preferable for several reasons:
- Spending from the DAO treasury requires a lower quorum (3% vs. 5%)
- Spending from the DAO treasury is faster (doesn’t impose the additional ~ 2 weeks of delay
- Keeping all fees in a single location makes bookkeeping simpler and easier to reason about.
We propose an update in which all Nova fund distributors that distribute to the timelock alias are updated to instead distribute to a system of “fee routers”, via which permissionless transactions will allow the funds to be routed to the Arbitrum Treasury.
The lifecycle works as follows:
- A distributeRewards is called on a RewardDistributor contract, sending funds to a ChildToParentRouter contract.
- Either upon receiving funds or via a call to routeFunds, the ChildToParentRouter creates an L2-to-L1 message which sends the contract’s full Ether balance.
- The L2-to-L1 message is executed, transferring the Ether to a ParentToChildRouter contract on L1.
- routeFunds is called on ParentToChildRouter, creating a retryable ticket which transfers its full Ether balance to the DAO Treasury on Arbitrum One.
Implementation
- Fee Router contracts:
- Github link: fund-distribution-contracts/src/FeeRouter at 61f4f60384e2ecba8250287dfb2778ce30bd82b0 · OffchainLabs/fund-distribution-contracts · GitHub
- Deployments:
- Audit Link: fund-distribution-contracts/audits at cb9ef7b5a5730fb9eb4bfdd2f9bc1f716a6e9253 · OffchainLabs/fund-distribution-contracts · GitHub
- Upgrade Action contract:
Additional Action
Sometime after this proposal action, an additional proposal can be submitted to transfer the funds remaining in the timelock’s address alias to the fee router.
Timeline
If this vote passes on Snapshot, the tentative plan is to upgrade Arbitrum Sepolia to ArbOS 30 the week of June 10th.
If Arbitrum Sepolia upgrades to ArbOS 30, there will be an ecosystem-wide plan to ensure non-breaking compatibility of infrastructure and applications with Stylus, which will take several weeks or months. The ultimate goal is that the experience for EVM developers remains as unchanged as possible if ArbOS reaches mainnet. Once enough confidence is reached, there will be an onchain vote to upgrade Arbitrum One and Nova to ArbOS 30. The Arbitrum community will be informed of any significant updates as they arise.