Skip to content

QPI-02 - Maker-Taker incentive changes #2

@quocble

Description

@quocble

Motivation

We need to introduce a maker-taker "market fee" system to incentivize market maker coming into the platform. The maker typically get a lower fee, or rebate compared to the taker. This added incentivize drives them to place more orders in the system, facilitating liquidity in the system.

Approach

The general approach is to introduce a number of parameters in the genesis.json which will be allowed to voted upon by DPOS.

Fees are deducted from the receiving asset. Suppose a transaction of:

Buyer A buys 1 BTC for 4000 USD and Seller B sells 1 BTC for 4000 USD

Additionally, assume the buyer is the taker, and seller is the maker.

The fee to buyer A pay is in BTC, and the fee to seller B is paid in USD

Fees configuration

market_fee - Asset's market fee is already set by the asset issuer, will assumed for taker fee.

maker_rebate_percent_of_fee - ranges from 0, to 100% for full rebate, or > 100% for transfer from the taker fee. Maximum is 200%

Taker fee is calculated as, market_fee - (market_fee * maker_rebate_percent_of_fee). Negative number reflects, fees coming from taker.

referrer_rebate_percent_of_fee - ranges from 0 to 100% of the total available fees where remaining fees >= 0

Total available fees = market_fee (taker) + (market_fee - (market_fee * maker_rebate_percent_of_fee))

Remaining fees = total_available_fees - referral_fees goes back to the issuer.

High volume market maker

Parameters:
hv_market_makers - a list of high volume market maker to be voted in by the committee

hv_market_maker_rebate_percent_of_fee - gets rebate for x (maximum 100%) from the fee pool. total_rebate = maker_rebate_percent_of_fee + hv_market_maker_rebate_percent_of_fee

Flow of Fees

[ Taker ] ---> pays ---> [ Fee Pool A]

[ Maker ] ---> discounted (up to 100%) ---pays ---> [ Fee Pool B]

Pay Rebates

[ Fee pool A ] --> pays rebate (over 100%) --> [ Maker ]

[ Fee pool A ] --> pays rebate --> [ Referrer ]

Testing

./chain_test -t fee_tests/asset_claim_fees_test

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions