OddMaki
Configuration

Fee Structure

Understand OddMaki's four-layer taker-only fee model — venue fee, creator fee, protocol fee, and match operator fee.

Every trade on OddMaki splits fees four ways. Two layers you configure, one is set by the protocol owner, and one is fixed. All fees are charged to takers only.

Taker-Only Fees

OddMaki charges takers only. The resting maker pays nothing — all fees come out of the crossing order. This applies to every settlement path:

  • Normal Fill — the crossing side (buyer or seller) pays
  • Mint-to-Fill — both crossing buyers pay, carved from the surplus collateral
  • Merge-to-Fill — both crossing sellers pay, carved from the shortfall

This means market makers providing liquidity earn the spread without paying fees, and takers see a single aggregated fee stack on every fill.

Fee Layers

LayerRateWho Sets ItWho Receives It
Protocol fee0–200 bps (configurable)Protocol ownerProtocol treasury
Venue fee1–200 bpsVenue operatorVenue fee recipient
Creator fee0 – venue feeVenue operatorMarket creator
Operator fee10 bps (0.10%)Fixedmsg.sender of matchOrders

The creator fee is a sub-split of the venue fee, not additive. A taker's total fee is protocolFeeBps + venueFeeBps + operatorFeeBps. With a 50 bps protocol fee and a 100 bps venue fee, the taker pays 160 bps (1.60%) on the fill.

Setting Your Venue Fee

You set venueFeeBps and creatorFeeBps at venue creation. Both can be updated at any time — changes take effect on all subsequent trades.

const hash = await client.venue.updateFees({
  venueId: 1n,
  venueFeeBps: 150,    // 1.50%
  creatorFeeBps: 50,   // 0.50% (carved from venue fee)
});

Constraints:

  • venueFeeBps must be between 1 and 200
  • creatorFeeBps must be ≤ venueFeeBps

Fee tiers are snapshotted per market at creation time. Updating venue fees only affects markets created after the update — existing markets keep their original fee schedule.

Creator Fee

The creator fee incentivizes quality market creation. Anyone who creates a popular market earns a share of every trade on that market. The fee is carved out of the venue fee — it does not increase the total fee paid by takers.

If your venue fee is 100 bps and your creator fee is 25 bps, you receive 75 bps and the market creator receives 25 bps per fill.

Protocol Fee

Set by the protocol owner between 0 and 200 bps. Goes to the protocol treasury. Venue operators cannot change this. Any rounding remainder from fee calculation is added to the protocol's share.

Query the current value:

const bps = await client.venue.getProtocolFeeBps();

Match Operator Fee

Fixed at 10 bps (0.10%). Paid to msg.sender — whoever submits the matchOrders transaction. This incentivizes independent keepers to run matching bots; anyone can earn it by running one.

Fee Calculation Example

A venue with venueFeeBps = 100 and creatorFeeBps = 25, protocol fee at 50 bps. A taker fills a $50 USDC BUY against a resting ask:

ComponentBPSAmount
Protocol500.25 USDC
Creator250.125 USDC
Venue (net)750.375 USDC
Operator100.05 USDC
Taker pays1600.80 USDC

The maker (the resting seller) receives the full ask price × quantity with no fee deduction.

Market Creation Fee

A separate upfront fee charged when a market is created. Split 50/50 between the protocol treasury and the venue. Set at venue creation and immutable afterward.

ConstraintValue
Minimum5 USDC
MaximumNone
Split50% protocol, 50% venue
Updatable after creationNo

What's Next