How Kickstr works

Short version: predict match scores, earn points, climb the leaderboard. Free entry by default — often topped up by sponsors so the top ranks walk away with sats. Paid games settle in sats over Lightning / Cashu. Built on Nostr — your account is a Nostr keypair you own.

How to play

  1. Sign in — three options on /auth:
    • Extension — a browser signer like Alby or nos2x holds your key (NIP-07)
    • Bunker — paste a bunker:// URL from a remote signer (nsec.app, Amber, Alby Hub); your key never leaves the signer (NIP-46)
    • Email — sign up with email + password; a Nostr key is generated and encrypted in your browser (NIP-49)
  2. Open a game from Kickstrs and predict the score for each match (e.g. "2 : 1") before kickoff. Predictions lock a few minutes before each match starts.
  3. Results come in after the match. Points get added to your tally. Open the game tab to watch the leaderboard live during matchdays.
  4. At the end of the tournament the prize pool gets paid out by rank. Pools can come from entry fees, from sponsors, or both — sponsored games list every backer in a "Powered by sponsors" panel on the game page so you can see what's up for grabs before you tip. Free games without sponsors run on bragging rights; everything else settles in sats (see below).

Points

Default scoring (game-creators can override per game):

  • 4 points — exact score (you tipped 2:1, final was 2:1)
  • 3 points — correct goal difference (you tipped 2:1, final was 3:2 — same winner, same delta)
  • 2 points — correct tendency (winner or draw right, but score and difference off)
  • 0 points — wrong tendency

The goal-difference tier is optional — a creator can set it to 0 to fall back to the classic 2-tier (exact / tendency only). Every game's footer shows its active scoring schema, e.g. Scoring: exact 4 · diff 3 · tendency 2 · miss 0.

Penalty shootouts: tendency is awarded for the winning team in the knockout phase, not for the drawn result. The goal-difference tier can't apply in a shootout — the after-extra-time score is level, so only an exact tip (4) or the right winner's tendency (2) scores.

Tipping knockout matches

Knockout matches are scored including extra time and the penalty shootout. Extra-time goals count toward the result — a 104th-minute winner turns 1:1 into 2:1. If it goes to penalties, the shootout decides the WINNER (used for the tendency), while the result itself stays the after-extra-time draw.

Case 1 — decided in regular or extra time. Final score 3:1 (any extra-time goals already included):

Your tip Final score Points Why
3:1 3:1 4 exact score
4:2 3:1 3 same goal difference (+2) and same winner
1:0 3:1 2 tendency only — home win, but the difference is off
1:1 3:1 0 a draw — wrong tendency, the home side won
0:2 3:1 0 wrong winner

Case 2 — penalty shootout. It stays 1:1 after extra time, the home side wins on penalties:

Your tip Final score Points Why
1:1 1:1 · home wins pens 4 exact — matches the after-extra-time score
2:1 1:1 · home wins pens 2 tendency — a home win is the shootout winner
2:2 1:1 · home wins pens 0 a draw tip that misses the exact score scores nothing — the tendency is the winner, not a draw
1:2 1:1 · home wins pens 0 wrong winner

In a shootout the goal-difference tier (3 points) can't occur — the score is always level, so only exact (4), tendency (2) or 0 are possible.

Rule of thumb: a draw tip is all-or-nothing (4 or 0 — no tendency consolation). If you only trust the winner, tip a narrow win for them for a safe 2 points.

Your identity is a Nostr key

Kickstr doesn't run a username DB. Every account is a Nostr keypair — a public part (npub1…) you can share, and a secret part (nsec1…) you keep private. Your tips and profile are signed with your secret key; anyone with the public key can verify them.

If you signed up with email + password: your key was generated client-side and the secret is stored in your browser, encrypted with your password. Kickstr's server only ever sees the encrypted form (NIP-49). Lose the password without backing up the key first → account gone. Back it up on /account — takes 30 seconds.

If you use a Nostr extension (Alby / nos2x): your key stays in the extension. Kickstr never has access. Manage backups there.

If you use a remote bunker (NIP-46 — nsec.app, Amber, Alby Hub): your key lives on the bunker's device. Kickstr asks the bunker to sign each event over a Nostr-relayed channel. Backups happen in the bunker app. Connection state lives in this browser tab (sessionStorage) — close the tab and you'll re-pair on next login.

Your profile (name, avatar, about) is a public NIP-01 kind:0 event signed by your key. Edit it on /account and it appears on every Nostr client — Damus, Primal, Amethyst, snort.social — under the same identity.

Paid games: sats & Cashu

Free games need nothing beyond an account. Paid games are denominated in sats (1 BTC = 100 million sats) and Kickstr accepts them as Cashu tokens — a bearer-token format that starts with cashuA…. You pay the entry fee by pasting a token of the right amount.

Easiest way to get one: fund a Cashu wallet (cashu.space lists current options) and export a token from there.

For the current WM-Game (free entry), nothing to set up.

Privacy

  • Your tips are public. Every prediction is a signed Nostr event — anyone running a Nostr relay can read it. That's by design: a signed tip with a timestamp is cryptographic proof that you predicted that score before kickoff. No one can dispute or rewrite it afterwards.
  • Your profile and chat messages are public Nostr events too.
  • Want privacy? Create a pseudonymous Nostr account just for Kickstr — your tip history then isn't linked to your real-name identity. Sign up with a fresh email or a separate Nostr extension key.
  • Kickstr stores your encrypted key + email (if you used email auth). We don't ship analytics or share data.
  • You can move to a different Nostr client at any time using your key backup. Same identity, same tip history.

🤝 Fair play: the team takes no winnings — and can't rig the game

Everyone who founded or builds Kickstr plays for the fun of it. We voluntarily waive any prize-pool payout from games we take part in — our own tips never take sats out of the pool that belongs to the community.

And we can't quietly rig a game either. Every tip is a Nostr event signed by your own key and witnessed by independent relays — public and verifiable by anyone, including against us. That is Tier 1, live today. Tier 2 (Bitcoin anchor via OpenTimestamps) is live for past matches. Tier 3 (you timestamp your own tips, bypassing us entirely) is planned next.

The three trust tiers — Tier 1 relay witness, Tier 2 Bitcoin anchor, Tier 3 self-timestamping Tier 1 in detail — how Nostr relays witness your tip Tier 2 in detail — the Merkle root anchored into Bitcoin Tier 3 in detail — you stamp to Bitcoin yourself

← swipe or scroll for each tier in detail →

Tier 2's Bitcoin-anchored root rides on the same Nostr relays as your tips — public, not just ours to keep.

Tier 3's full "without us" guarantee needs your key isolated from our code (NIP-07 extension or NIP-46 bunker). Email login (NIP-49) can self-timestamp too, but since our code decrypts your key, you're still trusting us.

How to verify a tip →

🔎 Verifying a tip

Every tip is a BIP-340-signed Nostr event with a stable id. On the verify page you can check:

  • Tier 1 — the signature is valid and independent relays documented the tip;
  • Tier 1.5 — after kickoff the tip is included in a signed Merkle commitment (kind-30221 on Nostr);
  • Tier 2 — the commitment root is anchored in Bitcoin via OpenTimestamps (block link + downloadable .ots proof).

Verify without trusting Kickstr (technical)

  1. Fetch your kind-30211 prediction from any Nostr relay and verify the BIP-340 signature.
  2. Find the kind-30221 commitment for the match (or use our proof bundle) and recompute the Merkle inclusion path from your event id to the published root.
  3. Download the .ots file from the verify page and run `ots verify file.ots` (OpenTimestamps client) — it confirms the root existed before Bitcoin block N. Or paste the file at opentimestamps.org.

Limits: Tier 2 proves the Merkle root existed before a block (upper time bound), not exactly before kickoff. It does not prove the set of tips is complete — for that, Tier 3 (self-stamping) is the stronger model.

FAQ

I forgot my password. Can you reset it?

No. Your password decrypts your Nostr key locally — we never see it. Without it the encrypted backup is useless. Back up the decrypted key (nsec1…) on /account while you're still logged in; store it in a password manager.

Can I use Kickstr from my phone?

Yes — the site is mobile-friendly. For a smoother flow, install Amethyst (Android) or Damus (iOS), import your key, and sign tips on Kickstr by copying your npub from /account and pasting it into the app's profile. For native cross-client sign-in, use the Bunker tab on /auth and paste a bunker:// URL from nsec.app / Amber / Alby — your secret key stays on the signer.

Can I create my own tournament?

Currently game creation is allowlisted to control quality during the WM-2026 launch. Ping us if you want to run a community tournament — Bundesliga, Premier League, etc.

What if a match is decided in extra time or on penalties?

Knockout results use the post-extra-time / penalty-shootout winner for tendency scoring. The after-extra-time score still counts for "exact" and "goal-difference" points. So a 0:0-after-extra-time decided 5:4 on penalties scores as a tendency-only result if you tipped the right winner.

Stuck? Reach out on Nostr — send a DM to the Kickstr Oracle (the same key that signs every game's chat root). Include your npub and what you clicked — we can usually trace it in the logs.