How it works
Every trade pays a 1% fee. Half of it is the income of the builder the market is about, paid out after each epoch; a progressive tax on that income funds a season pool for builders whose progress traders confirmed.
Where the money goes
The builder's share is collected after each epoch; anyone can send the payout (the keeper does it automatically). A progressive tax on it goes to the season pool, 1% of the rest pays for the caretaker that watches milestones, and the rest goes to the builder's payout address.
If a market is voided, the agent's held share goes to whoever successfully challenged its answer, otherwise to the season pool. Common markets (the 5-minute rounds) keep their own split: 30% creator, 20% agent, 50% Registrai. A deactivated builder's income can't be paid out; the Safe can move it, untaxed, to the season pool.
Show the full tax table
Marginal, like income tax, on a builder's income per epoch: each rate applies only to the slice inside its bracket, so earning more never lowers take-home. E.g. $800 → $0; $60,000 → $0 + $900 + $8,000 + $3,000 = $11,900.
The Safe (GOVERNOR) sets a new schedule; it takes effect two epochs later, and an epoch's schedule is fixed once that epoch is next. Bounds enforced on-chain: up to 8 brackets, thresholds strictly increasing, rates non-decreasing, none above 40%, and the first bracket 0% up to at least $100.
Exactly the contract's math: each rate applies only to its slice, floored per slice to the millionth of a dollar (USDC's 6 decimals); the fee is 1% of what is left after tax, floored; the net takes the rest.
The shared pool: it receives the tax, frozen income swept from deactivated builders, and the agent escrow of voided markets nobody successfully challenged. The Safe publishes seasons as merkle roots over (season, builder, amount), allocating at most the unallocated balance; builders, or anyone for them, claim with a proof, paid to the builder's payout address. One claim per builder per season, at most 20% of the season total per builder (enforced on-chain); after the deadline the Safe may return the unclaimed rest to the pool.
Published seasons and how they are shared
Distribution rule v2: building progress traders confirmed
- Eligible: builders verified with a non-lapsed badge at the season's end.
- Points: √(counted volume in USD), once per builder, over its milestone markets that resolved YES during the season with at least $500 counted each. Only positions held at least 24 hours count (a buy sold back sooner counts nothing; sells never count), and volume by the builder's own wallet, the market creator and the agent does not count.
- Allocation: pro rata by points, at most 20% per builder, the excess re-spread over the uncapped; amounts floored to the 6-decimal unit, the dust stays in the pool.
- Anyone can re-derive a season's root from chain data with
frontend/scripts/season-rewards.ts; the rule can evolve per season (published with each root), the on-chain caps cannot be bypassed.
- A builder can split into several builder identities to stay in low brackets. Each needs its own verified projects and markets, and wide brackets keep the saving small. The admin site flags it.
- Wash trading on one's own markets recycles about 80% of the fee to oneself (the builder and creator legs), but it raises taxable income and earns no season points: own volume is excluded, so season points need other people's money.
- Season distribution is Safe-published: a trusted computation, verifiable by re-running the script.
The fine print
Markets are settled by the protocol's bonded milestone agent (the caretaker operator) on the first valid attestation after expiry. Every buy and sell pays a 1% trading fee, 30% to the market creator, 20% to the bonded agent (held until the market settles), 50% to the builder the market is about; nothing is charged at settlement. The builder's 50% is its income for the epoch: once the epoch ends, anyone can claim it for the builder, which pays a progressive tax to the season pool, 1% of the rest to Registrai (the caretaker's monitoring fee) and the net to the builder (see above). An incorrect attestation can be challenged and its bond slashed; a market that can't be settled voids, every trader gets their net cost back (what they put in after fees, minus what they took out), and the agent's held 20% goes to a successful challenger, otherwise the season pool. GitHub releases and tags are keeper-detected in this MVP.