Incentive dev contributions

I would like to propose a grant mechanism for dev contributions to Serum in order to incentivise more external contributions. I think it’s important to have different tiers with objective criteria.

Below is a first attempt, feel free to disagree and comment so we can eventually come up with a tier system that is satisfactory :slight_smile:

Submission process

All submissions should be made through pull requests except for security vulnerabilities that should be disclosed responsibly. All submissions would go through a review process made by Serum contributors. Only once the pull request is accepted and merged should the author(s) receive the grant.

Smart contract

Tier 0:

This would be the tier for the most simple contributions e.g basic code refactoring, README and documentation improvement/translation.

Tier 1:

This would be the tier for contributions that improve the code execution. For example, any code optimisation that allows to save compute budget (like removing redundant serialization/deserialization) or more complex optimizations.

Tier 2:

This would be the tier for contributions that solves a problem faced by other ecosystem projects that integrate with Serum. For instance, a new instruction that solves a business problem faced by other protocols e.g an instruction that allows smart order routing between Serum markets.

Tier 3:

This tier would be for critical code vulnerability if disclosed responsibly. I think Uniswap has a good bug bounty that Serum could potentially get some inspiration from.

Front end

Tier 0:

This would be the tier for the most simple contributions e.g basic code refactoring, README and documentation improvement/translation.

Tier 1:

This would be the tier for general frontend code optimizations. For example, RPC requests optimisations, making components more reusable, lifecycle optimisations and more advanced code refactoring.

Some concrete examples for this:

  • RPC requests: Serum DEX UI and Sollet repos are quite inefficient in terms of RPC request, you can easily reduce the amount of requests made by using getMultipleAccountsInfo.
  • Code refactoring: Use proper types instead of any and switching everything that is in JS to TS.

Tier 3:

This would be the tier for significant improvement of the current Serum UI. For instance a full redesign, adding an on-chain trollbox, better way to visualize open order etc…

Tier 4:

This would be the tier for contributions that create new standalone apps reusable by others (in React or React native). The app needs to allow people who are reusing it to benefit from the referral fees for orders placed on Serum.

5 Likes

Really liking the direction this is going! Thank you for this. :pray:

Neophyte question here: are there any types of optimization problems (Tier 1) that some contributors may ‘feel’ are more difficult and more similar to a TIer 2 or higher issue? If there are such edge cases, will it be up to the Serum contributors?

Then the question becomes, who are the selected Serum contributors who do this review process? I’m personally keen on getting this sub-topic/answer going, either here or in another appropriate Forum thread.

I really like this thinking. Things that come to mind:

Who judges the tiering? I dont think its realistic to put it to the community each time, so there should be a panel of experts to cover off most if not all thingsd

A way to catalyse the future agreed upon framework could be a hackathon type event?

Will this cover retroactive Serum contributions? I think that would be nice to recognise historical contributors.

What are you thinking/imagining in terms of this hackathon type event?

Retroactive Serum contribution grants are super important, but I genuinely don’t know if it should be discussed here or on another topic. (I’m happy to kick off that topic separately).

I think deciding who the judges should be in this thread makes sense though!

  1. Regarding code review, I think there should a curated list of people who need to agree on the changes for the pull request to be accepted. However, this is all open source so anyone can help review and provide feedback. The curated list should grow overtime as we onboard more devs in the ecosystem.

  2. One of the challenge of having a tier system is to prevent contributors to have bad surprises when they receive the grant. So we need to have clear criteria to classify contributions in order to manage expectations.

A serum version of the Solana hackathon. Serum and Bonfida lead the event, a panel of judges, a prize pool, and the narrative overlay is the project should use the claaob and feed into the ecosystem.

It can be brand new projects, or discrete new functionality from existing