Reward Mechanics
Marina distributes transparent, on-chain campaign rewards to market makers based on measured on-chain liquidity performance.
Monarch works with each project to optimise and configure the reward scoring formula around the campaign's goals. Each campaign can tune its own parameters, but the core idea is consistent: reward makers who provide useful depth, quote tight spreads, stay two-sided, and generate genuine filled volume.
Unified Performance Score
At the end of each reward epoch, the market's incentive pool is distributed pro-rata to eligible market makers.
Each maker's share is based on:
| Component | Parameter | What it measures |
|---|---|---|
| Quote Score | W_quote | Sampled quoted depth, adjusted by spread quality |
| Fill Score | W_fill | Total eligible maker fills during the epoch |
Unified Score = (W_quote * Quote Score) + (W_fill * Fill Score)The weights are set per campaign. A campaign can emphasise deeper quoting, more filled volume, or a balance of both.
Quote Score
Quote Score rewards market makers for adding tradeable liquidity to the orderbook.
At regular intervals throughout the epoch, Marina samples each eligible maker's quoted depth and adjusts it by the spread multiplier:
interval_quote_score = quoted_depth * spread_multiplierThe maker's Quote Score is the sum of those interval scores across the epoch:
Quote Score = sum(interval_quote_score)This means Quote Score increases when a maker keeps more useful depth on the book, quotes closer to mid, and provides consistent liquidity.
Fill Score
Fill Score rewards liquidity that actually trades.
For each eligible maker, Marina totals that maker's filled maker volume across the epoch:
Fill Score = sum(eligible maker fills during the epoch)This prevents rewards from going only to passive depth that never interacts with the market. Makers whose quotes attract genuine taker flow increase their Fill Score.
Spread Multiplier
The depth side can be adjusted by a spread multiplier:
multiplier = max(0, (C - avg_spread_bps) / D) ^ 2C and D are set per campaign.
C is the spread cutoff where Quote Score contribution reaches zero.
D controls curve steepness; lower D creates a steeper reward curve for tighter quotes.
The examples below use the historical ZAMA and Paragon settings where C = 100.
| Average spread | C = 100, D = 32, ZAMA spot | C = 100, D = 40, Paragon HIP-3 perps |
|---|---|---|
| 20 bps | 6.3x | 4.0x |
| 40 bps | 3.5x | 2.25x |
| 60 bps | 1.6x | 1.0x |
| 80 bps | 0.4x | 0.25x |
| At or above C | 0 | 0 |
Anything at or above the campaign's C cutoff contributes nothing to Quote Score for that interval. Fill Score can still apply if the wallet passes the campaign's eligibility floors.
Eligibility Rules
Campaigns define their own floors. Common checks include:
- Hourly depth floor: the wallet must provide at least the campaign's minimum average depth within the eligible band.
- Two-sided quoting: bid-only or ask-only hours are excluded.
- Wallet eligibility: campaign whitelists or market scopes must be respected.
- Behaviour checks: wash trading, self-dealing, and manipulative quoting can be excluded.
Claim Wallets
Rewards can be attributed to both a master account and their underlying subaccounts. If the whitelist contains a master or sub account, eligible main or sub activity can be attributed back to that master.
This lets market makers operate through sub-accounts without losing correct reward attribution.
Claiming Rewards
Rewards are claimable on-chain at app.monarch.fast/marina. Connect your wallet and check eligibility after each epoch.
