Docs/Market mechanics/Fees and incentives

Fees and incentives

Calculate taker fees exactly, understand fee allocation, and claim maker, creator, template-owner, or resolver earnings.

Taker fee curve#

Makers keep their exact limit price. The taker pays the price-sensitive fee separately.

For each individual fill, quoteTakerFee(amount, price) calculates amount * takerFeeRateBps * price * (1e18 - price) / (10,000 * 1e18 * 1e18). Solidity integer division rounds down to collateral precision, so a sub-unit fee is zero. The API uses the same operation order and integer arithmetic.

Share priceFee per shareFee for 100 shares
1 cent0.0198 cents0.0198 collateral
50 cents0.5 cents0.5 collateral
99 cents0.0198 cents0.0198 collateral

Worked examples#

FillGross quoteTrading feeTaker settlement
Buy 100 YES at 64 cents64.000.4608Total cost 64.4608
Sell 100 YES at 64 cents64.000.4608Net proceeds 63.5392
Buy 100 NO at 36 cents36.000.4608Total cost 36.4608
Sell 100 NO at 36 cents36.000.4608Net proceeds 35.5392

A taker buying shares approves gross quote plus fee. A taker selling shares approves the outcome token and receives gross quote minus fee. The maker always receives shares or gross quote at the exact order price, then receives the rebate as claimable vault earnings.

Fee allocation#

RecipientShareCredited to
Maker rebate40%The filled order's maker.
Protocol30%The current protocol treasury.
Market creator15%The market's immutable creator.
Template creator10%The immutable creator reported by the state implementation.
Resolver reserve5%Held per market until successful settlement.

Each component is rounded down independently. Any integer-division remainder is assigned to protocol treasury.

Creation bond and resolution#

  • Creation transfers the market's configured bond from the creator to FeeVault.
  • The Experimental Phase bond is 0.01 Mock USD on Base or 0.01 Mock USDG on Robinhood Chain.
  • Successful YES or NO settlement credits 0.009 units of that market's collateral back to the creator.
  • The successful resolver receives a 0.001-unit collateral bounty plus the market's accumulated resolver reserve.
  • The same split applies when the creator resolves their own market.
  • A failed or false pre-deadline check receives nothing.
  • finalizeResolvedMarket(market) is permissionless and safe to retry; duplicate calls do not credit rewards twice.

Claims#

FeeVault.earnings(account) returns maker, protocol, creator, template-owner, and resolver balances.claimable(account) returns their sum, and claim() withdraws all categories in one collateral transfer. Fills only update accounting, avoiding multiple token transfers in the matching path.

Governance and snapshots#

  • The factory validates a fee coefficient no greater than 500 bps.
  • The five allocation shares must total exactly 10,000 bps.
  • The resolver bounty cannot exceed the creation bond.
  • Every market snapshots the complete configuration. Default changes affect only markets created afterward.
  • The protocol owner may update defaults, registry, and current treasury immediately; no timelock is built in.
  • A treasury change affects future protocol credits. Previously accrued balances remain claimable by the prior address.
Experimental Phase onRobinhood Chain