Fees
How value flows out of a finalized market.
Two fees are deducted from the total pool at finalization. Neither fee is taken on voided markets.
The two fees
- Creator fee. Set per market at creation via
creatorFeeBps(0–500, i.e. 0%–5%). Routes tocreatorFeeRecipient, which should default to the creator wallet in the SDK surface. - Platform fee. Set globally on the factory via
setFeeConfig(recipient, bps)(0–500). Routes to the factory's configured platform recipient. Reflected on each market at creation time — changing the factory's platform fee doesn't retroactively change fees on already‑created markets.
Combined cap: 1,000 bps (10%). The factory reverts on createMarket if the sum exceeds this.
When fees are taken
Fees are deducted inside finalizeMarket() — not at creation, buy‑in, or resolution. Before
finalization, the full pool sits in the contract. After finalization, fees are transferred and
the remainder becomes the payout pool.
payoutPool = totalPool × (10000 - creatorFeeBps - platformFeeBps) / 10000
creatorCut = totalPool × creatorFeeBps / 10000
platformCut = totalPool × platformFeeBps / 10000FeesPaid(creatorFeeAmount, platformFeeAmount, creatorFeeRecipient, platformFeeRecipient) is
emitted alongside MarketFinalized.
Voided markets pay nothing
If the market voids via dispute majority, no fees are taken. Every participant's refund()
returns their exact stake in USDC. The creator and platform recipients earn nothing on a void.
This is a design choice, not a bug: fees compensate hosts for running legitimate markets. If the market is invalid enough to void, there's nothing to compensate.
Picking fee levels
A few practical considerations:
- 0%–1% feels free. Participants don't notice and it barely changes expected value.
- 2%–5% is standard. Most prediction market platforms cluster here.
- Above 5% gets noticeable quickly on short‑horizon markets. The cap on creator fee (500 bps) plus platform fee (up to 500 bps more) gives a hard ceiling of 10% combined.
Fees compound with time‑value: on a week‑long market with a 5% total fee, expected annualized drag is meaningful. Communicate fees clearly in your UI — participants will discover them either way, but surprise discoveries are the ones that burn trust.