Duelpit — Schedule

The schedule,
published in advance

Team size is drawn from drand, a public randomness beacon nobody here controls. Which round a fixture uses is a function of the time it was scheduled for — not of when we got round to starting it. That is the whole point: you can compute this table yourself, and check afterwards that the round below is the round that was used.

Beacon

If we picked the round at the moment of drafting, we could wait three seconds for a format we preferred and every commitment on chain would still verify perfectly. Deriving it from the slot time removes the choice. There is nothing to grind.

Each fixture uses a second round too: the one published half a minute after its book closes. The match runs on a hash of our secret seed and that round together, so the number that decides the match does not exist while bets can be placed — not for you, and not for us. The secret is committed on chain before the book opens and revealed with the result; the round is drand's, signed, and checked against the network's key by anyone who verifies the replay.

Today

Slot (UTC)LocalFormat round PublishedClose roundMatch id

Check it yourself

  1. Take a slot time from the table. The round is floor((slot − 10 − genesis) / period) + 1 — the ten seconds are lead, so the round is already published when betting opens.
  2. Fetch it: …
  3. The randomness you get back is what the format is drawn from, and sha256(signature) must equal it.
  4. The match id is sha256("pons/slot/" + slot). Nothing else goes in — no counter, no nonce, nothing we choose.

The seed that decides the match itself is a different value and works the opposite way: committed before betting opens, revealed at settlement. Public-but-ungrindable for the format; secret-then-revealed for the outcome.

Times are generated in your browser from the same functions the scheduler runs. Nothing on this page comes from a server, which is why it is worth anything.