Skip to content

Market Making

A Market Making campaign sets up a task for market makers to generate a specified amount of trading activity on a chosen trading pair (e.g., HMT/USDT) at a given exchange (e.g., MEXC).

The purpose of this campaign is to increase liquidity, improve order book depth, and enhance market visibility for the selected token pair — attracting organic traders and strengthening market confidence.


How it works#

In a Market Making campaign, participants execute trades on the specified pair to accumulate daily trading volume.

The campaign monitors the total traded volume (unweighted) to determine whether the daily volume target is met.

Once the target condition is evaluated, rewards are distributed based on participants’ scores, which are calculated using trade type weights.
This ensures that maker trades (which add liquidity) earn more than taker trades (which remove liquidity).

The system periodically retrieves trade data from the exchange API, aggregates the total daily trading volume, and computes a weighted score for each participant.

If the collective daily volume across all participants not reaching the daily volume target, the daily reward pool is reduced proportionally.


Example#

Suppose a campaign specifies:

  • Symbol (Trading Pair): HMT/USDT
  • Exchange: MEXC
  • Daily Volume Target: 100,000 USDT
  • Duration: 5 days

Participants’ total trading volume each day is used to check whether the campaign meets its daily volume target.
Rewards are then distributed based on individual scores, calculated using trade weights.


Trade Score Weights#

Each trade contributes to a participant’s score according to its type and side:

Trade Type Side Weight
Maker Buy/Sell 1.0
Taker Buy 0.42
Taker Sell 0.1

Reward Distribution#

Rewards in a Market Making campaign are distributed daily from the campaign’s escrow fund.

  • Daily Reward Pool = Total Campaign Fund ÷ Campaign Duration (in days)
  • Daily Volume Target: The collective unweighted trading volume threshold.

Distribution Logic#

  1. Check Target:

    • If total daily volume ≥ target → Full daily pool distributed.
    • If total daily volume < target → Pool reduced proportionally to achieved percentage.
  2. Distribute Rewards:

    • Rewards distributed among participants proportionally to their score, where Score = Σ (Trade Volume × Weight)

Example calculation#

  • Total Fund: 120 USDT
  • Campaign Duration: 2 days → Daily Reward Pool = 60 USDT
  • Daily Volume Target: 1000 USDT

Scenario 1: Target met (collective generated volume is 2100 USDT) and every participant made only Maker trades (which means that their score is equal to the provided volume)

  • Participant A generated 350 USDT (Score 350) → Reward = 60 × (350 ÷ 2000) = 10 USDT
  • Participant B generated 700 USDT (Score 700) → Reward = 60 × (700 ÷ 2000) = 20 USDT
  • Participant C generated 1050 USDT (Score 1050) → Reward = 60 × (1050 ÷ 2100) = 30 USDT

Scenario 2: Target not met (collective generated volume is 800 USDT) and every participant made only Maker trades (which means that their score is equal to the provided volume)

  • Daily pool reduced proportionally: 60 × (800 ÷ 1000) = 48 USDT
  • Participant A generated 100 USDT → Reward = 48 × (100 ÷ 800) = 6 USDT
  • Participant B generated 300 USDT → Reward = 48 × (300 ÷ 800) = 18 USDT
  • Participant C generated 400 USDT → Reward = 48 × (400 ÷ 800) = 24 USDT

Scenario 3: Target is met (1000 USDT) but participants made both Maker and Taker trades

  • Participant A:
Trade Type Volume Weight Score
Maker 250 1.0 250
Taker (buy) 0 0.42 0
Taker (sell) 250 0.1 25

Total score is 275.

  • Participant B:
Trade Type Volume Weight Score
Maker 200 1.0 200
Taker (buy) 50 0.42 21
Taker (sell) 250 0.1 25

Total score is 246.

  • Participant A got a 275 score → Reward = 60 × (275 ÷ 521) = ~31.67 USDT
  • Participant B got a 246 score → Reward = 60 × (246 ÷ 521) = ~28.33 USDT