⚖️ Official Rules

Scoring & Tiebreaker Rules

Deterministic and auditable. No judgment calls, no manual overrides. Every rank and payout is computed from these rules alone.

1 Scoring

Each tournament has a fixed number of rounds. Points are awarded per correct pick, scaled by round:

  • R1 Round 1 (Group stage / Round of 32) — 1 point per correct team advancing.
  • R2 Round 2 (Round of 16 / Sweet 16) — 2 points per correct pick.
  • R3 Round 3 (Quarterfinals / Elite 8) — 4 points per correct pick.
  • R4 Round 4 (Semifinals / Final 4) — 8 points per correct pick.
  • R5 Round 5 (Final / Championship) — 16 points per correct pick.

Scores are recalculated automatically as results are confirmed. Leaderboard updates within 60 seconds of each result.

2 Ranking & Prize Distribution

Brackets are ranked by score descending. Prize pool (99% of all entry fees) is distributed to the top finishers using the split configured for each tournament (default: 60% / 25% / 10% / 4%).

The platform retains 1% as an operational fee. No other deductions.

3 Tiebreaker Rules

If two or more brackets finish with the same score, tiebreakers are applied in strict order:

  • 1 Higher score wins. Standard ranking — no tiebreaker needed.
  • 2 Earlier paid_at wins. The bracket whose Bitcoin payment was confirmed first gets the higher rank. Earlier commitment wins. This timestamp is recorded at the moment payment is detected on-chain and is immutable.
  • 3 Identical payment timestamps (to the second) → even split. Extremely rare. The prize for that rank is split evenly across all tied brackets, rounded down to whole sats. Any remainder (dust) is added to the prize for the next rank below.
Example: 3 entries tied for 1st at score 12, same paid_at timestamp
Prize for 1st: 120,000 sats
Each winner: floor(120,000 / 3) = 40,000 sats
Dust: 0 sats → added to 2nd place prize

Example: 2 entries tied for 2nd at score 9, same paid_at timestamp
Prize for 2nd: 50,001 sats
Each winner: floor(50,001 / 2) = 25,000 sats
Dust: 1 sat → added to 3rd place prize

4 Audit Trail

Every tiebreaker decision is recorded in the tournament_payouts table in the tiebreaker_note column. This field is set at payout calculation time and describes exactly how the rank was resolved.

All payouts are settled on-chain (Bitcoin mainnet). Every transaction is verifiable at mempool.space ↗


These rules are code, not policy. The ranking engine in lib/ranking.js and prize calculator in lib/prize_calculator.js implement exactly these rules. There are no overrides, no manual adjustments, and no exceptions. What the code computes is what you receive.