RRC-XX Implementing a RARI Protocol Fee

Requesting Community Feedback

This post is meant to start a community discussion regarding directing Rarible Protocol fees to the treasury.

Below is a basic outline of what a protocol fee proposal would look like. This proposal will be updated to reflect community feedback once the specifics of the fee structure have been thoroughly discussed by the community.

Important questions to consider.

  1. What should the fee be?
  2. Currently a flat fee is proposed to test out the fee switch mechanism. SHould we eventually move to a tiered fee structure?
  3. How else can the DAO improve the fee system to create long-term sustainability of the DAO and improve user alignment of the RARI Protocol?

Abstract

This proposal suggests altering the Rarible protocol’s fee structure to create a protocol fee of 0.5%. The revenue generated from this fee would all go to the RARI DAO treasury. This will enhance the DAO’s financial resources and create more alignment between users and the DAO.

Motivation

Implementing a fee structure that directs fee revenue will help bolster the sustainibility of the RARI DAO. It will also create more autonomy for the RARI DAO as the DAO will not have to rely on external capital and will instead have more resources available to fund DAO initiatives. This will help with the progressive decentrilization of the DAO and make the DAO stronger for the future.

Rationale

The proposal aligns with RARI DAO’s mission of broadening the NFT use case horizon by creating a creator-centric and fully decentralized robust ecosystem. By channeling revenue to the DAO treasury, it enhances the financial stability and resilience of the protocol, enabling further development, community initiatives, and long-term sustainability. This helps to address the Long term sustainability of the DAO, which is one of the three core values of the RARI DAO.

Specifications

Since the protocol’s contracts are fully controlled by the DAO, the on-chain Tally proposal can automatically update the fee structure using Tally’s executable code feature.

The proposed fee would be 0.5%. 100% of the Protocol Fees will be sent to the RARI DAO treasury to help bolster the autonomy and long-term sustainability of the RARI DAO.

Steps to Implement

  • DAO discusses appropriate fee structures.
  • Tally proposal is created with executable code to update fee structure and direct revenue to the DAO automatically
  • Implement new order version with enabled protocol fees

Timeline

  • 1 week for the DAO to decide on fee structure and provide opinions on the proposal
  • 1 week for Tally vote
  • Time for the protocol team to implement new order version with enabled protocol fees
  • Upon the passing of the Tally vote, the contracts will automatically be upgraded to reflect the new fees and direct said fees to the DAO treasury

Overall Cost

There is no cost associated with this proposal.

5 Likes

Hey @Matt_StableLab, could you give more detail on what the protocol fee is and which part of the protocol it is derived from?

1 Like

@Matt_StableLab currently in Exchange contract there are 2 types of protocol fees: seller fee (will be taken from the seller) and buyer fee (buyer will pay more then).
These fees can be controlled separately, there are 2 fields which we can control.

So need to figure out how to configure 2 fees: should every part be 0.25% then?

More information is here: protocol-contracts/projects/transfer-manager/contracts/RaribleTransferManager.md at master · rarible/protocol-contracts · GitHub

3 Likes

Are there examples from other chains regarding protocol fees? Would be interested in their experiences. And is it just for NFT trades, or for transactions in general?

I do think 0.5% is manageable, and would rather support a flat fee, to stay simple. The Tally feature to directly implement the fees on-chain sounds cool.

Would the generated fees benefit the DAO treasury in general? Maybe the fee would be better accepted if there was a specific cause determined, e.g. the generated fees will be used to support builders on the chain or incentives for users.

1 Like

Update: Protocol fees are almost ready to be launched.
Several PRs already merged and released. 2 PRs left: for Exchange contract and SDK

Both PRs have a goal: introduce new order version (V3) which will pay protocol fees.
This is needed for backward compatibility for applications using the protocol.

Once the smart contract PR is accepted, contract code implementation can be deployed on-chain and proposal can be created on-chain

4 Likes

Protocol Exchange contract code is ready to be enabled on Ethereum mainnet - I just deployed it here:
0x1F90567f5f63eAB82a2c37414471b13e4896331b

To prepare transaction for the proposal we need to come up with these parameters:

  1. What will be seller and buyer protocol fee? Ideally it should be equal (as some application which use Exchange contract may not be ready for different values)
  2. Address of the Treasury which will gather protocol fees

After that I can prepare transactions for enabling fee.

Meanwhile this is the calldata and params for upgrading the contract code:

address: 0xb23BCD4F668365B1c9Ec4B4DF79915bF8c76C5b5
function: execute
params:
upgrade: 0xd22CD47808ae4b13D46Fa8FEFc08C91eb5790Bf8 (this is ProxyUpgradeAction which only purpose is to upgrade contracts)
upgradeCallData: 0xe17f52e900000000000000000000000080033c932904e077e55a6e43e5e9a796f34d25250000000000000000000000009757f2d2b135150bbeb65308d4a91804107cd8d60000000000000000000000001f90567f5f63eab82a2c37414471b13e4896331b (Here are encoded: proxy admin address, target upgradeable contract address and new implementation address: 0x80033c932904E077e55a6E43E5E9a796f34d2525, 0x9757F2d2b135150BBeb65308D4a91804107cd8D6, 0x1F90567f5f63eAB82a2c37414471b13e4896331b)

1 Like

Here’s the tenderly simulation for this transaction:

1 Like

Here is the call to change protocol fee and receiver.
The call sets protocol fee to 0.25% for each side

address: 0xb23BCD4F668365B1c9Ec4B4DF79915bF8c76C5b5
function: execute
params:
upgrade: 0xcaC1fE02cB051672D93eE390136B8E10301B6709
upgradeCallData: 0x828bd7fe0000000000000000000000007e9c956e3efa81ace71905ff0daef1a71f42cbc500000000000000000000000000000000000000000000000000000000000000190000000000000000000000000000000000000000000000000000000000000019

Here are encoded:
fee recipient (0x7e9c956e3EFA81Ace71905Ff0dAEf1A71f42CBC5),
protocol fee values (25 and 25)
You can check executable code here:
https://etherscan.io/address/0xcaC1fE02cB051672D93eE390136B8E10301B6709#code

Tenderly tx simulation is here:

2 Likes

So, in total there should be 2 calls:

  1. upgrade the contract
  2. set protocol fees
1 Like

Fully support this proposal and will be voting for, as 0.5% is a reasonable cumulative figure for protocol fees that will aid in sustaining Rari DAO’s treasury.

1 Like

This was executed and RARI protocol fees are gathered on DAO’s treasury.
https://etherscan.io/address/0x7e9c956e3efa81ace71905ff0daef1a71f42cbc5#internaltx

Part of these transactions are visible through internal txs on ethescan. Part of the profit is visible as ERC-20 transfers to RARI DAO treasury.

Probably, it’s possible to build a dashboard on dune for this, but not 100% sure it’s possible with current dune data.
Will check this

3 Likes