Economics & Fees
Fee Structure & Referral Program
4% escrowed per market, 30% of it to the referrer, and why the escrow matters.
Fees are the only revenue in the protocol, and they are deliberately boring: 4% of every stake, taken at the moment of the bet, never touched again until the market settles.
| Platform fee | 4.00% of gross stake (400 bps) |
| Referral share | 30% of the fee (3000 bps) = 1.20% of stake |
| Platform keeps | 2.80% of stake |
| Charged on | bet() only ā seeds pay no fee, refunds return the fee |
| Released by | settle() only |
Why escrow instead of instant revenue
If the rake were booked as profit immediately, a cancelled market would have to claw it back from the platform or from other markets. Escrowing per market makes the refund path arithmetically trivial: the money never left, so the refund is exact, and no other market's accounting is disturbed.
open market : fee escrowed, withdrawAdminFees() reverts (NothingToWithdraw)
settle() : pool.rakeAdmin -> accumulatedAdminFees, then withdrawable
cancelPool() : escrow zeroed, refunds pay stake + fee back to bettors
KOL cut : poolReferral[poolId][kol], claimable only after settleReferral mechanics
- Pass ?ref=0x⦠in the URL; the app forwards it as the referrer argument
- The cut is escrowed per market and claimed with withdrawReferralFees(poolId)
- Self-referral (referrer == bettor), the arena itself, and the fee vault are all neutralised to zero
- A cancelled market releases no referral money ā it is refunded to bettors along with the fee
Open question: referral whitelisting
Referrers are not whitelisted, so any wallet can route the 1.2% to a second address it controls, making the effective rake 2.8% instead of 4%. That is a known economic leak, not a security hole, and a whitelist is the obvious fix if the program needs to be revenue-accurate.
Solvency accounting
The three buckets ā pool principal, escrowed rake, released platform profit ā are tracked separately and reconciled by the invariant documented in the Hardened Contract Spec. On a fork with 10 mixed-state markets the contract held 473.040002 USDC against 473.040000 USDC owed: a 2 wei surplus created by floor division.