JevmineJevmine
Scored on chain. The vault factory is on BNB Chain, and a full season ran end to end on BNB Chain testnet: sixteen answers, every one scored by the contract.
Eight published files of one round laid out as a grid of documents, with a chain running beneath them to the commitments on chain.manifestban listbox.binreveal.jsonanswerkey.jsonchain.jsonround.jsoncommit.jsonevery round publishes enough to recompute itevery pack's hash and key committed on chain before it opens
A handful of files per pack, and the contract's own record. Anyone can re-score every answer from them and check it against what the vault paid.

Every round publishes enough for a stranger to recompute it.

The scorer is the contract, and the files let anyone check it: the pack, the beacon that opened it, the labels, and every event the vault logged. The pack's hash and its key were committed on chain before it opened.

live

Leaderboard.

Four table rows framed for the leaderboard, filled from the published round files.filled from the published round filesevery row is a number anyone can recompute
This table fills from the published round files. It shows nothing it cannot recompute, and there is no sample data behind it.

The table fills from the published round files, and the numbers in it are the same numbers anyone else can recompute from those files.

per season and per pack

What a round publishes.

FileWhenWhat is in it
manifest.jsonBefore the seasonEvery public rule and parameter. Its hash is committed on chain with the season, so a changed manifest does not match.
banlist.jsonBefore the seasonThe wallets barred for the season, and the proof for each. Who is on it is the operator's choice; the chain does not limit it. A listed wallet proven on chain before the season's first round opens cannot answer that season.
pack-N/box.binMinutes before each packThe sealed pack. Its keccak hash is the one on chain; a rig checks it before the instant.
pack-N/reveal.jsonAt the beacon instantThe beacon signature that opens the pack, the same one the contract verified.
pack-N/answerkey.jsonAfter the windowThe labels. They rebuild the key the contract checked against its commitment, so anyone can re-score any answer.
pack-N/chain.jsonAfter the roundEvery event the vault logged for the pack: who answered, in which block, and what the contract scored.

you claim, nobody pays you

How you get paid.

Five steps in a row — answers opened on chain, scored by the contract, weighed by stake, divided when the round closes, final after the season and its objection window — then a claim paying the wallet.nobody pushes you anything, and nobody posts a scoreyour answersopened on chainthe contractscores them× your stakeyour weightthe round closesbudget dividedseason + 24 haward finalclaimRounds(from, to): the vault pays your share of each round to youeach wallet's award for each round is readable on chain, and it never expires
The contract scores your answers and weighs them by your stake. When the round closes, it fixes the round's budget and every weight. After the season and its objection window, you claim, and the contract pays your share times your season multiplier.

An earlier version of this design had the operator compute every wallet's amount off chain and publish one root for it. Flap's review turned that down, rightly: whatever the operator computes is simply what you get. Now nobody posts a score. A round can still be voided, and a void returns the round's budget to the pool: Flap's Guardian can void one until the season's awards are final, and the operator can void one by withholding a key, as the questions page sets out.

the other half of honesty

What is never published, and why.

The unused item pool
Only packs that ran are published, after their window. Publishing the whole labelled pool would be doing someone else's distillation homework for them.
The screening rule and the panel behind it
These are the defence. Published, they are a specification for beating the accuracy gate.

The uncomfortable one: whoever writes the questions holds the answers before anyone else, and no amount of cryptography removes that. What the chain does about it is on the questions page, stated as what it is.