Skip to content

design-doc: revenue sharing #309

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from
Draft

design-doc: revenue sharing #309

wants to merge 1 commit into from

Conversation

tynes
Copy link
Contributor

@tynes tynes commented Jul 28, 2025

Description

Puts together an initial design doc for revenue sharing by enshrining
the fee split predeploy in the OP Stack.

Puts together an initial design doc for revenue sharing by enshrining
the fee split predeploy in the OP Stack.
Copy link
Contributor

@Joxess Joxess left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a great proposal, right now I'm curious on the value of having the math calculations to be generalizable or not in this phase


#### `FeeSplitter`

All of the `FeeVault` implementations need to have their `RECIPIENT` set to the `FeeSplitter`. This means that all fees that are accumulated in the system will be sent through the `FeeSplitter`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should the math also be enshrined in the contract, or something that whoever is the owner might customize?

For example, when operatorFee is enabled, how does that impact the current calculation?


- Add Operator Fee Vault support
- Make `OPTIMISM_WALLET` and `L1_WALLET` modifiable by L2 `ProxyAdmin.owner()`
- Replace `L1_WALLET` with sending to an L2 account similar to the Unichain architecture so that the design is more flexible. The L2 account that Unichain sends to is called `L1Splitter` ([link](https://github.com/Uniswap/unichain-contracts/blob/main/src/FeeSplitter/L1Splitter.sol)) and withdraws to L1. This architecture will make it more flexible for custom gas token chains or architectures where fees want to be collected on the L2 directly.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1 on enabling CGT support

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants