Adjacent to Orderly Network’s trading rewards, the market making rewards program is designed to incentivize market makers that play an integral role in the liquidity of the DeFi protocol. 10% of the total $ORDER token supply (100,000,000 $ORDER) is allocated to market makers who support the liquidity of the Orderly Network’s trading infrastructure.

Epoch distribution

Market making rewards will be distributed linearly on an epoch basis over 200 epochs incorporating a Provide Liquidity-to-Earn model capped within each epoch performance.

500,000 $ORDER is allocated for each epoch for all qualified Orderly market makers. From epoch 7 onwards, the market maker rewards will be distributed as escrowed $ORDER instead of liquid $ORDER tokens in epochs 1-6. Any further adjustment of the distribution mechanism will be formally assessed and communicated to market makers in advance.

Allocation Mechanism

For every epoch, market making rewards are allocated among Orderly’s listed markets. Each market’s allocation will be based on the following formulas:

PoolWeightmarket=PoolMultipliermarketactiveDaysInEpochtotalEpochDaysPoolWeight_{market}=PoolMultiplier_{market}*\dfrac{activeDaysInEpoch}{totalEpochDays}

RewardPoolmarket=PoolWeightmarketTotalWeightRewardPool_{market}=\dfrac{PoolWeight_{market}}{TotalWeight}

  • The pool weight takes account of new listing/delisting of markets with the number of active days in an epoch, prorating the pool multiplier effect.

  • Each market’s pool multiplier will be maintained and periodically updated here by Orderly based on market conditions and other factors.

  • The amount of market making rewards allocated to each market is determined proportionally based on the ratio across the total weight against all markets.

TermDefinition
PoolWeightThe reward pool weightage of a market
PoolMultiplierThe amount of pool multiplier of a market
activeDaysInEpochThe number of days a market is active for trading in an epoch
totalEpochDaysTotal number of days in the epoch
TotalWeightThe sum of pool weights of every market
RewardPoolThe amount of rewards allocated to a specific market

Distribution Formula

For each market, QfinalQ_{final} is calculated at the end of every epoch for eligible market makers and is determined by four main factors:

  1. Quality of Liquidity (Bid Depth and Spread from each market maker’s mid-market price),

  2. Liquidity Uptime

  3. Staked Balance ($ORDER/esORDER)

  4. Maker Volume

Market making performance is monitored and calculated on a minute-by-minute basis (using randomized sampling) and aggregated into a QminQ_{min} for each market. Orders below a certain minimum depth size and/or over a certain maximum spread from each market maker’s mid-market price will be excluded from the computation of QfinalQ_{final}. Refer here for the updated values.

Qfinal=N=1totalEpochMinutes{Qmin(N)=[BidDepth1Spread1+BidDepth2Spread2....,AskDepth1Spread1+AskDepth2Spread2...]}0.35[N=1totalEpochMinutesCount(Qmin(N)>0)totalEpochMinutes]5[max(10,stakedORDER)]0.15[MakerVolume]0.45 Q_{final}=\sum_{N=1}^{totalEpochMinutes} \{Q_{min(N)}=[\dfrac{BidDepth_1}{Spread_1}+\dfrac{BidDepth_2}{Spread_2}...., \dfrac{AskDepth_1}{Spread_1}+\dfrac{AskDepth_2}{Spread_2}...]\}^{0.35} *[\dfrac{\sum_{N=1}^{totalEpochMinutes}Count(Q_{min(N)}>0)}{totalEpochMinutes}]^5 * [max(10,stakedORDER)]^{0.15} * [MakerVolume]^{0.45}

rmarket=RewardPoolMarketQfinalQtotalr_{market} = RewardPool_{Market} * \dfrac{Q_{final}}{Q_{total}}

The amount of market making rewards a market maker earns from a market rmarketr_{market}, is proportional to their QfinalQ_{final} against the QtotalQ_{total} in that epoch.

rwallet=markets(rmarket)r_{wallet} = \sum^{markets} (r_{market})

The total rewards a market maker earns in an epoch is the sum of all the rewards per market. The rewards are consolidated across the multi-wallet linking and are only viewable/claimable by the designated rewards wallet.

TermDefinition
Qmin(N)Q_{min(N)}A MIN function of QbidQ_{bid} and QaskQ_{ask}, ensuring 2-sided liquidity is provided. Every market maker will have a QminQ_{min} for every minute in the epoch.
Qbid=[BidDepth1Spread1+BidDepth2Spread2...]Q_{bid}=[ \dfrac{BidDepth_1}{Spread_1}+\dfrac{BidDepth_2}{Spread_2}...]This component considers all the open orders placed by all the linked wallets.

Assume a market maker has multiple open bid orders in the BTCUSDC order book with the market maker having a mid-market price of $30,000. Given that the MinDepth is $5000 and MaxSpread is $200.
- 1 BTC at $29,900
- 5 BTC at $29,850
- 10 BTC at $29,500
Qbid=(1($29900$100/30000))+(5($29850$150/30000))Q_{bid}=(1*(\dfrac{\$29900}{\$100/30000}))+(5*(\dfrac{\$29850}{\$150/30000}))
*A sample is randomly taken once every minute
*Every order is viewed individually even if orders have the same order price
Qask=[AskDepth1Spread1+AskDepth2Spread2...]Q_{ask}=[ \dfrac{AskDepth_1}{Spread_1}+\dfrac{AskDepth_2}{Spread_2}...]This component considers all the open orders placed by all the linked wallets.

Assume a market maker has multiple open ask orders in the BTCUSDC order book with the market maker having a mid-market price of $30,000. Given that the MinDepth is $5000 and MaxSpread is $200.
- 0.01 BTC at $30,100
- 5 BTC at $30,150
- 10 BTC at $30,175
Qask=(5($30150$150/30000))+(10($30175$175/30000))Q_{ask}=(5*(\dfrac{\$30150}{\$150/30000}))+(10*(\dfrac{\$30175}{\$175/30000}))
*A sample is randomly taken once every minute
*Every order is viewed individually even if orders have the same order price
[N=1totalEpochMinutesCount(Qmin(N)>0)totalEpochMinutes][\dfrac {\sum_{N=1}^{totalEpochMinutes}Count(Q_{min(N)}>0)}{totalEpochMinutes}]This tracks the uptime of a market maker at a given minute. Count = 1 if the QminQ_{min} for a given in a minute is greater than 0.

This component measures and considers the total overlapped uptime of a market maker across the linked wallets.
max(10,stakedORDER)max(10,stakedORDER)stakedORDER refers to the average staked balance of a market maker.
- The average staked balance is calculated by the sum of the daily staked balance divided by the number of days in an epoch.
- For a market maker with multi-wallet linking, the individual linked wallet’s average stake balance will be summed into a single market maker’s average staked balance.
- A snapshot is randomly taken daily to determine the market maker’s daily staked balance.
Note that staking esORDER is equivalent to staking $ORDER.
Maker VolumeThe total maker volume the market maker has traded during the epoch.

This component considers all total maker volume done by all the linked wallets.
QtotalQ_{total}The sum of all QfinalQ_{final} by all eligible market makers of a market during the epoch.
rmarketr_{market}The amount of market making rewards earned by the market maker from a market in an epoch.
rwalletr_{wallet}The total market making rewards a market maker earns in an epoch across markets.