Skip to content
Log in

New here?

  1. Log inLog in with Nostr or Google
  2. Play chessPlay a casual chess game
  3. Join a clanJoin a clan

Open protocol

Results, ladders and tournaments are signed Nostr events. Anyone can read them from the relays and check every signature, without asking the league.

What the league publishes

The league’s own event kinds, as the NIP defines them.

  • 2150 Challenge acting captain of the challenger lineup, or the challenging player (solo game); rev. 8.1: the league key for the pairing of a tournament whose players report regular
  • 2151 Challenge Answer the challenged side (accepted, declined) or the challenger side (withdrawn): an acting captain, or the player in a solo game regular
  • 2152 Result Report acting captain of either lineup regular
  • 2153 Result Response acting captain of the lineup that did not author the report (series only: a chess game has none, see Game Record) regular
  • 2154 League Attestation league key; rev. 9.24 (draft): also a Hyperbitcoinization result, of its own shape regular
  • 2155 Tournament Draw (optional) league key regular
  • 64 Game Record, reused from NIP-64 (chess) league key (the record, rev. 9.4; before, a player); a player of the game (their own post of it, rev. 9.4) regular
  • 12150 Clan Membership the player replaceable
  • 32150 Clan clan owner addressable
  • 32151 Lineup clan owner (rev. 5; before: the owner or a clan captain) addressable
  • 32152 Ladder league key addressable
  • 2156 Season Genesis, Block 0 (rev. 5) league key regular
  • 2157 Payout (rev. 5) league key regular
  • 2158 Parameter Change (rev. 5) league key regular
  • 22150 Tournament Consent (rev. 7), never published the entering player (solo), an acting captain of the entered lineup ephemeral

Kinds from other NIPs

Kinds of other NIPs the league reads or writes, with the meaning the league gives them.

  • 0, 10002 league profile and relay list, so clients find the league league key NIP-01, 65
  • 31923 tournament (time-based calendar event); rev. 5 also a bounty (d = bounty/<slug>) league key NIP-52
  • 31924 the league's tournament calendar league key NIP-52
  • 30000 opponent list, d = esports/<league key> the player NIP-51
  • 30000 anchor list, d = esports/<league key>/anchors trust key NIP-51
  • 14 in 13 in 1059 private chat between players; notifications a player; the notification key NIP-17, 59
  • 10050 a player's DM relays the player NIP-17
  • 9734, 9735 zaps to a pot: bounty, reserve (rev. 5, see Pots and zap targets); rev. 9.1: never a tournament's pot; rev. 9.19: a tournament's pot again, in the league wallet the zapper; the league's LNURL server key NIP-57
  • 9041 rev. 5: the league reserve as a zap goal league key NIP-75
  • 30000 rev. 5: the admin list, d = esports/<league key>/admins league key NIP-51
  • 1985 rev. 5: release of Block 0 (release-block-0); correction of the season review (void-block) a listed admin; the league key NIP-32
  • 30382 trust rank of a player; rev. 5 also the anchor subtree (anchor) trust key NIP-85
  • 0 description of the trust algorithm trust key NIP-01, 85
  • 1984 report with the league's label namespace any player NIP-56, 32
  • 3 read only: opponent suggestions, mutual contacts the player NIP-02
  • 30009, 8 rev. 5: rank badge definition per player, game and mode; its single award badge key NIP-58
  • 10008 rev. 5: the player's profile badges, with the rank badges the player chose to show the player NIP-58, 51
  • 1 rev. 8: share post, a note with a share card of the league (rank up, block, tournament win, season) the player NIP-01, 92
  • 1111 rev. 9.9: comment on a tournament (31923), a rated game's record (64) or a rated series' challenge (2150) the player NIP-22
  • 7 rev. 9.9: like (+) of the same the player NIP-25
  • 31925 rev. 9.9: RSVP to a tournament, accepted or declined; never a sign-up the player NIP-52
  • 10000 rev. 9.21: the league's mute list, one public p per key muted or banned on the site, no reasons, carried over onto the key's own list league key NIP-51
  • 40, 41 rev. 9.3: a game channel with fixed fields and its metadata, one per game; rev. 9.15: the board games' too, while the league runs them (see Game channels) league key (the channel creator) NIP-28
  • 42 rev. 9.3: a message in a game channel anyone NIP-28
  • 43, 44 rev. 9.3: the creator's moderation of the game channels (hide a message, mute a pubkey) league key NIP-28
  • 1068, 1018 rev. 9.3: a poll in a game channel and a vote on it; shown and counted for members and players with a result in the league only anyone NIP-88
  • 40, 42, 7 rev. 9.24 (draft): a Hyperbitcoinization match's table chat (its kind 40 computed, never signed), its messages and reactions anyone (the channel's creator is the league key) NIP-28, 25
  • 1068, 1018 rev. 9.24 (draft): a Hyperbitcoinization match's spectator poll "Who wins?" and a spectator's vote league key (the poll); a spectator (the vote) NIP-88
  • 14 in 13 in 1059 rev. 9.24 (draft): a Hyperbitcoinization team chat, match hyper:<match id> a player of the team NIP-17, 59

The league’s keys

Each key signs one kind of thing. Only the league key can sign a result, a ladder or a tournament.

  • League key ladders, tournaments and their calendar, attestations and chess game records of every result, the season chain npub1mapwq05fcwe2qk5ftd7qeerwpswwzpgcjfkum8w23csruj2dyjwq6lu3y5 Profile
  • Trust key trust ranks and the anchor list npub1vln5ty4su48exenjdznrp9jag4jqqzva0v4hrnu2ht9ump3744hs3ehc5v Profile
  • Badge key rank badges and their awards npub1mapwq05fcwe2qk5ftd7qeerwpswwzpgcjfkum8w23csruj2dyjwq6lu3y5 Profile
  • Notification key the encrypted notifications sent to players npub1mapwq05fcwe2qk5ftd7qeerwpswwzpgcjfkum8w23csruj2dyjwq6lu3y5 Profile
  • Stream key the 24/7 stream and its live events npub1mapwq05fcwe2qk5ftd7qeerwpswwzpgcjfkum8w23csruj2dyjwq6lu3y5 Profile
  • Stream bot chat lines and tournament notes on the stream npub1mapwq05fcwe2qk5ftd7qeerwpswwzpgcjfkum8w23csruj2dyjwq6lu3y5 Profile

Relays

League events go to
  • wss://relay.primal.net
  • wss://nostr.mom
  • wss://relay.damus.io
  • wss://nos.lol
  • wss://relay.snort.social
  • wss://offchain.pub
  • wss://nostr.bitcoiner.social
  • wss://nostr.oxtr.dev
Encrypted chats and notifications use
  • wss://nos.lol
  • wss://relay.primal.net
  • wss://nostr.mom

The two sets are separate on purpose: a relay chosen for encrypted chats is not a place for league events, and the other way round.

Check it yourself

With nak, a command-line Nostr tool, you read the league’s events straight from a relay and check their signatures.

  1. The tournaments as calendar events nak req -k 31923 -a npub1mapwq05fcwe2qk5ftd7qeerwpswwzpgcjfkum8w23csruj2dyjwq6lu3y5 wss://relay.primal.net
  2. The ladders of the current season nak req -k 32152 -a npub1mapwq05fcwe2qk5ftd7qeerwpswwzpgcjfkum8w23csruj2dyjwq6lu3y5 wss://relay.primal.net
  3. The latest attestations of results nak req -k 2154 -a npub1mapwq05fcwe2qk5ftd7qeerwpswwzpgcjfkum8w23csruj2dyjwq6lu3y5 -l 5 wss://relay.primal.net
  4. Check every signature of what came back nak req -k 2154 -a npub1mapwq05fcwe2qk5ftd7qeerwpswwzpgcjfkum8w23csruj2dyjwq6lu3y5 -l 5 wss://relay.primal.net | nak verify

nak verify prints nothing when every signature holds, and names the event that fails. Get nak

The full protocol

The NIP describes every event, tag and rule, and how a client checks them. It lives in the league’s open source repository, with its full history.

Read the NIP The league on Nostr Tournaments Rules

LIVE 0