How Kibble Odds works
Every market goes through the same stages. Here is how one moves from open to claim, what happens at each step, and the numbers that decide it, every one read from the contract's source.

The life of a market
Every market goes through these stages. Pick a stage to jump to its rules.
- OpensMarkets go live on a schedule
- TradingBuy and sell shares in answers
- ClosesNo more trades; a duel is sealed
- Riddle drawnThe riddle comes from the chain
- Result proposedA result, never final at once
- Dispute windowAnyone may challenge with a bond
- Final · Claim1 NEAR a winning share; claim any time
- VoidWhat can go wrong, and the refund
Stage 1Opens
Kibble's server opens today's markets on a scheduleEvery market asks one question with two to 16 answers: a duel (Pet A, Pet B, and Draw on duels that can draw), a riddle of the day (Yes or No), a Sunday tournament (its field), a season (its field). A share in an answer pays 1 NEAR if that answer is right and nothing if it isn't, so its price, between 0 and 1 NEAR, reads as a chance: Kibble's opening odds until people trade, the crowd's after.
The contract (odds.kibble.near) is the market maker, using the logarithmic market scoring rule: it always quotes, so a trade never waits for someone on the other side, buying an answer raises its price and lowers the others, and the prices add up to 100%. New markets open at measured odds (how often the pinned model cracks a riddle, how its matches split, each brain's rate in duels, blended with the two pets' duel ratings once they have a record, and, on a duel market that has a Draw, the Draw at how often the arena's duels between pets of those brain sizes really end level, kept between 20% and 70%); every outcome starts at 2% at least, 5% on a two-way or duel market.
The pool of backers funds each market's worst case up front, shown on the market: b·ln n at even odds or b·ln(1/p) from the cheapest opening price, and can never lose more than that. One market may reserve at most 40% of the pool, all open markets together 90%, markets running past two weeks (a season) a quarter, and a day's new markets at most 4× the pool's value. A market trades for 1 hour at least and 120 days at most.
In the contract
MAX_MARKETS_PER_DAY = 30New markets in a UTC day: 30 · lib.rsMAX_OPEN_MARKETS = 100Markets open at once: 100 · lib.rsMAX_DAY_RESERVE_BPS = 40_000A day's new markets may stake at most this much of the pool's value: 4× · lib.rsMIN_RESERVE = 50_000_000_000_000_000_000_000Least a market puts at stake: 0.05 NEAR · lib.rsMIN_OPEN_PPM = 20_000Lowest opening price of any outcome: 2% · lib.rsMIN_OPEN_PPM_TWO = 50_000Lowest opening price on a two-way (or duel) market: 5% · lib.rsMIN_LIFETIME_NS = 3_600_000_000_000A market trades for at least: 1 hour · lib.rsMAX_OUTCOMES = 16Most outcomes a market may have: 16 · lib.rsMAX_SEASON_WEEKS = 20Sundays in a season at most: 20 · lib.rs
Stage 2Trading
From the open to the closeBuying is 0.01 NEAR at least, with no upper limit. Selling back is any amount worth 0.001 NEAR or more, or the whole position. You can sell until the close except while the market is paused: 10 min after each clarification note, every Sunday from 10:00 UTC to midnight on season markets, while the admin holds it, and while a result is being written. A paused market shows it on its page.
Fees are 0.06 × p × (1 − p) per share, highest at even odds and shrinking toward certainty: 3% of a trade at even odds, 0.6% buying a 90¢ favourite, 5.4% on a 10¢ long shot. A sale is charged at its average price; a buy at the price before it, on the whole amount (6% × (1 − p) of what you pay), so a big buy that moves the price pays the rate it started at. For a small trade that is never more than 1.5% of what a share can pay. Half goes to the pet the trade is about, fed into its bowl when the market ends (the pets contract's feeding fee applies, 2% today; on a riddle of the day both sides' half goes to that pet; on a duel the Draw side's half is split between the two). The other half is the house's, 50% to Kibble and the rest to the pool's backers. A void market refunds its fees.
Storage, not a fee: 0.006 NEAR with your first trade in a market, 0.004 NEAR once for your trade history, which keeps your newest 10 fills (the market's tape keeps 60 trades). There are no deposit or withdrawal fees on NEAR. Paying from another chain goes through NEAR Intents at its quoted rate plus a 0.25% Kibble fee, and names a NEAR account to pay out to; a bet the contract refuses is refunded there in NEAR.
Referrals: if your first ever trade came through someone's link, a quarter of Kibble's share of your fees goes to them for 183 days; you pay the same either way, and they claim it once each market resolves.
Who can't trade: anyone who decides or can steer a result. The contract refuses the brain and the admin on every market, and the server names both owners on a duel, the pet's owner on its riddle, and the owners of the field on a Sunday or a season; the contract keeps the first 16 names. An owner can keep a pet out of Sundays and the season from its page; it takes effect from the next field. Pets in a riddle, Sunday or season market are held, neither retired nor sold, until two days after the close. A bar is a rule, not a guarantee: a second account can't be stopped.
Notes: Kibble may post a clarification on chain, add-only, up to 20 a market and never in the last 10 min before the close; each pauses trading for 10 min. A note can explain a question, never change it.
In the contract
MIN_TRADE = 10_000_000_000_000_000_000_000Smallest buy: 0.01 NEAR · lib.rsMIN_SELL = 1_000_000_000_000_000_000_000Smallest partial sell (or sell the whole position): 0.001 NEAR · lib.rsFEE_RATE_BPS = 600Fee = 0.06 × p × (1 − p) per share (a sale at its average price; a buy at the price before it, 6% × (1 − p) of the amount): 0.06 · lib.rsPROTOCOL_CUT_BPS = 5_000Kibble's share of the house half; the rest to the backers: 50% · lib.rsPOSITION_STORAGE_V7 = 6_000_000_000_000_000_000_000Storage for your first position in a market: 0.006 NEAR · lib.rsACCOUNT_STORAGE = 4_000_000_000_000_000_000_000Storage for an account's trade history, once: 0.004 NEAR · lib.rsNOTE_PAUSE_NS = 10 * 60_000_000_000Trading pauses after a clarification note: 10 min · lib.rsMAX_NOTES = 20Notes a market may carry: 20 · lib.rsMAX_FILLS = 10Fills kept in your trade history: 10 · lib.rsTRADE_LOG = 60Trades kept on a market's tape: 60 · lib.rs
Stage 3Closes
The bell for a duel; 12:00 UTC for the riddle of the day; 10:00 UTC on SundaysNo more trades. For a duel, Kibble's brain must write the riddle's hash (the seal) on the odds contract within 2 hours of the bell, and the contract first checks the arena hasn't already run the duel; a late seal, or a duel run before the close, voids the market. For a riddle, a Sunday or a season nothing is drawn yet: the riddle pools were committed when the market opened (each pool's fingerprint, a Merkle root, is on chain and the pools are public), and nobody, Kibble included, knows which riddle is coming.
In the contract
SEAL_WINDOW_NS = 2 * 3_600_000_000_000A duel's riddle seal must land within this of the bell: 2 hours · lib.rs
Stage 4Riddle drawn
Right after the closeThe contract draws each riddle with NEAR's on-chain randomness, and on a Sunday the seats too. Kibble's server triggers it; if it ever doesn't, anyone can (draw_riddles on odds.kibble.near): whoever sends it, the riddle comes from the chain's randomness, is drawn once, and never before the close. Settling must later reveal the drawn riddle with a Merkle proof the contract checks, and every market page has Check the seal.
Duels are drawn by the arena (arena.kibble.near) the same way, from pools locked on chain (a change to the arena's pools waits a day in public). Each pet answers alone, with no owner whispers, in the NEAR AI Cloud enclave for its brain size. Three judge models, each a different model in its own enclave, read the answers in an order the draw sets and rule each only right or wrong; any two that agree decide (duels accepted before the panel had one judge). One right answer wins; both right goes to sudden death, another riddle from the next harder pool, up to three rounds; both wrong in a round, or both right in all three, is a draw. In a personal duel (accepted once the in-character answer keys are in force) each pet answers as its own personality, in a mood each round's draw gives it (never the same for both), and both wrong plays another riddle too, from the next easier pool, so only three tied rounds draw. From 8 Nov 06:17 UTC (rule 7), three tied rounds go to an estimate round instead: each pet guesses the straight-line distance between two cities, its own pair, both drawn on chain, and the one proportionally closer wins, so those duels all but never draw and their markets have no Draw. Either owner may also call a duel off three days after its last draw if no verdict came (a day after the accept if no riddle was drawn): both stakes go back, and its market voids.
Riddle and Sunday answers come from the same pinned model in an enclave; three judge models on three enclaves each sign a verdict, and any two that agree decide. On a Sunday a match where both are right, or both wrong, goes to the pet with the higher level when the market opened, then to the first of the pair. A change of judge keys or of the brain account waits 1 day in public.
In the contract
BRAIN_LOCK_NS = NS_DAYA change of brain waits in public: 1 day · lib.rsREFEREE_LOCK_NS = NS_DAYA change of judge keys waits in public: 1 day · lib.rs
Stage 5Result proposed
Within a day of the close for duels and riddles; a week for Sundays and seasonsA result is proposed first, never final at once. Duel results are read by the odds contract straight from the arena's record, which the arena wrote only after checking every enclave signature, with a line saying why ("Both right in round 1; only … was right in round 2"). Riddle and Sunday results are posted by Kibble's brain (oddsbrain.kibble.near) with the signed verdicts, which the contract checks itself; a Sunday's champion can then be resolved by anyone once every match of the bracket is committed, and a season that keeps its table on chain once every Sunday of it has ended (Season 1's first market, #5, had none, so it is voided and everyone refunded; Season 1 carries on as S1b, which does, counting the 15 and 22 Nov Sundays). The contract marks a result it checked itself as checked: signed riddle verdicts, a committed bracket, the season table. A duel result is marked checked too, on markets from #10 (26 Oct) on: the odds contract reads it straight from the arena's record, written only after the arena checked every signature.
What this can't rule out: after the draw, Kibble's server runs the pets and the judges. It could hold a result back, which voids the market and refunds everyone (a Sunday with a complete bracket can be resolved by anyone). The contract has an upgrade key held by Kibble; every deploy is a reproducible build you can check in the Prover.
Stage 6Dispute window
2 hours after the proposal, or 1 day when a lot rides on the dayAnyone but the brain and the admin can dispute a proposed result with a bond of a tenth of the house's stake, between 0.1 NEAR and 1 NEAR, and a reason. The window is 2 hours; it is 1 day when the results proposed or made final over the last day would cost the pool more than a tenth of its value, or when the house stake riding on pending proposals exceeds a tenth of it (the market page shows the exact time). The admin (kibble.near) can also hold a result for review, without a bond. With no dispute, the result becomes final.
A disputed market waits for the admin. The bond comes back if the result changes and goes to the pool's backers if it stands. If the admin has not ruled 3 days after the proposal, or two days after an announced ruling (its day in public and a day to carry it out), whichever is later: a checked result stands and the bond goes to the backers; any other result is void, everyone is refunded, and the bond comes back after up to 14 days unless the admin rules on it.
What the admin can do: on a checked result (riddle, Sunday, season), only confirm it, or void it on a trader's bonded dispute, never name another winner. Duel markets from #10 on are checked the same way; only on the first nine may the admin settle a disputed duel market to any outcome. On a market anyone traded, a ruling is announced on chain with its reason and carried out only 24 hours later, exactly as announced.
In the contract
CHALLENGE_NS = 2 * 3_600_000_000_000Dispute window after a result is proposed: 2 hours · lib.rsCHALLENGE_LONG_NS = NS_DAYThe long window, when the pool has a lot riding on the day: 1 day · lib.rsFLAG_BOND = 100_000_000_000_000_000_000_000Smallest dispute bond: 0.1 NEAR · lib.rsFLAG_BOND_MAX = 1_000_000_000_000_000_000_000_000Largest dispute bond: 1 NEAR · lib.rsFLAG_DEADLINE_NS = 3 * NS_DAYThe admin's time to rule, from the proposal: 3 days · lib.rsBOND_RELEASE_NS = 14 * NS_DAYA bond nobody ruled on comes back after: 14 days · lib.rsRULING_LOCK_NS = 24 * 3_600_000_000_000An announced admin ruling waits in public: 24 hours · lib.rs
Stage 7Final · Claim
When the window closes with no dispute, or the admin rulesEach share of the right answer is worth 1 NEAR. Claim it from Your positions, on Predict, on Trade or under Mine, any time after: claims never expire (on a void market, once every refund is claimed or 180 days after its close, the contract may sweep rounding dust of a few millionths of a NEAR, never a position). The pet's half of the fees is fed into its bowl, the backers' share goes to the pool, Kibble's to its treasury, and referrers may claim theirs. Refunds from void markets are claimed the same way.
Backers (Earn) put 1 NEAR or more into the pool that stakes every market; a withdrawal at a gain pays Kibble 15% of the gain, nothing on a loss, after a one-hour lock and ten minutes after your own last trade. Backers share the pool's losses as well as its gains.
In the contract
DUST_GRACE_NS = 180 * NS_DAYOnly rounding dust is swept, and only after: 180 days · lib.rsPRUNE_AFTER_NS = 30 * NS_DAYTape and basis prunable after the close: 30 days · lib.rsPERF_FEE_BPS = 1_500Backers' fee on a gain when they withdraw: 15% · pool.rsMIN_DEPOSIT = 1_000_000_000_000_000_000_000_000Smallest backing deposit: 1 NEAR · pool.rs
Before you trade
This is real NEAR, with no betting limits: only put in what you can afford to lose. You must be 18 or older, and it must be legal where you live. If it stops being fun, step away; the markets will be here.
Stages here are the same beads a market's Rules card shows (Open · Closed · Drawn · Proposed · Dispute · Final), so the card tells you where that market is on this page.