Learn
How It Works

Resolution & Trust

Who decides which answer was right, what stops that decision being abused, and the parts you still have to take on trust. This page is written to be uncomfortable rather than reassuring.

Every prediction game has to answer one awkward question: who says what happened? Here the answer depends on the market, and we would rather set it out in full than let you find out afterwards.

Three kinds of settlement

Read from a feed
Price Prediction rounds using published prices. The deciding numbers are submitted to the contract and stored on chain. You can check them against public exchange data yourself.
Read from a chain oracle
Some Price Prediction pairs read a price feed directly from the chain, with no operator anywhere in the path.
Decided by the operator
Event Prediction — a match, a series, a launch. The operator submits the winning answer against the event's published rule. The contract does not independently verify the real-world result.
Say the quiet part first
Events are resolved by us. That is a real trust assumption and no amount of blockchain removes it. What the contract does is make the decision narrow, permanent and expensive to abuse — the rest of this page is exactly how.

The wording cannot change

Words on a card come from a database, and a database can be edited. So the question and every one of its answers are hashed when the event is created. That fingerprint is stored on chain as EventHash and can be checked with ComputeEventHash.

The exact text is fingerprinted at creation. Every entry recomputes it and the contract compares — so a market whose wording drifted by one character stops taking money rather than quietly meaning something else.

This is checked on your transaction, not on ours. If somebody changed a question after people had bet on it, the next entry would revert and the mismatch would be visible immediately. A market cannot be reworded once it is live, and it cannot be reworded after the result is known.

The window that is deliberately sealed

The dangerous power in a prediction game is not picking the wrong winner — that is visible and disputable. It is cancelling. An operator who could void a market after the result was public would hold a free option: settle the ones that make money, void the ones that cost it, and players would see nothing but an unlucky run of cancellations.

Cancelling is reachable before the lock and again after the refund window opens — never in between. The stretch where the result is known but the market is unsettled is the one the contract closes.
  • Before the lock — cancelling is allowed. A postponed match caught in time is voided and everybody is refunded in full.
  • Between lock and the refund window — cancellation is blocked. Once the seven-day window opens, an unresolved event can be cancelled again, with the same stake refund players can already request.
  • A resolved market — can never be cancelled. The power to undo a result does not exist.

If we simply never resolve

The remaining worry is silence: a market locked and then abandoned, with everyone's money stuck inside it. The contract answers that without needing us.

Seven days, and it is yours again
If a market has not been resolved seven days after its lock, the refund window opens and every player takes their own stake back with their own transaction. The window is a fixed constant — REFUND_TIMEOUT — compiled into the contract. It cannot be extended, shortened or waived by anybody, including us.

Once that window has opened, the market can no longer be resolved at all. It refunds, and the house takes nothing. Delay is not a strategy that pays: waiting costs us the fee and returns the players their money.

What we cannot reach

Protected funds are recorded player obligations within one shared contract balance. Operator withdrawals are limited to the balance above those obligations; house seed is not itself protected player money.

While an event is unsettled, protected funds include actual player stakes. At resolution, those stakes are replaced by the unpaid winner payouts calculated after the reward rate. Cancelled or timed-out events keep their unpaid stake refunds protected. Claims and refunds reduce the recorded amount. House seed is never added to it.

Events share a contract balance rather than separate reserves for every house seed. The operator must fund that balance sufficiently for payouts. If recorded obligations exceed the balance, free collateral is zero. An unfunded claim reverts without consuming the player's entitlement and can be retried when enough funds are available.

What is still a trust assumption

An honest page has to end here rather than at the last reassurance.

  • Event results. We submit the winning answer after checking the result. The rule is public and the wording is fixed, but the judgement is ours.
  • Which markets exist. We choose the questions, the answers offered and the seed behind them.
  • The published prices. For pairs that use an off-chain feed, we publish the lock and close prices to the contract, with a proof of the reading stored alongside.
  • The operator key. Resolution runs from a key we hold. Its powers are limited to what is listed above, but they are not zero.
  • House funding. The operator maintains the shared balance needed to pay winning stakes. Protected-funds accounting does not create a separate reserve for every possible event payout.
  • The site itself. The interface is a convenience. The contract is the product, and it can be read and called without us.
How to check any of this
Markets are numbered from 1 with no gaps, and the contract publishes how many exist. You can walk the whole book from the chain, read each market's pools, times, seed and fingerprint, and verify a settlement against public data — without asking us for anything, and without using this site at all.
Ethereum
Binance Smart Chain
Base
Arbitrum