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 price | Fee per share | Fee for 100 shares |
|---|---|---|
| 1 cent | 0.0198 cents | 0.0198 collateral |
| 50 cents | 0.5 cents | 0.5 collateral |
| 99 cents | 0.0198 cents | 0.0198 collateral |
Worked examples#
| Fill | Gross quote | Trading fee | Taker settlement |
|---|---|---|---|
| Buy 100 YES at 64 cents | 64.00 | 0.4608 | Total cost 64.4608 |
| Sell 100 YES at 64 cents | 64.00 | 0.4608 | Net proceeds 63.5392 |
| Buy 100 NO at 36 cents | 36.00 | 0.4608 | Total cost 36.4608 |
| Sell 100 NO at 36 cents | 36.00 | 0.4608 | Net 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#
| Recipient | Share | Credited to |
|---|---|---|
| Maker rebate | 40% | The filled order's maker. |
| Protocol | 30% | The current protocol treasury. |
| Market creator | 15% | The market's immutable creator. |
| Template creator | 10% | The immutable creator reported by the state implementation. |
| Resolver reserve | 5% | 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.