side-quest: /side-quest:signup — generate a keypair, register a display name, enroll in the leaderboard #2
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Companion to #1 (public XP leaderboard). Before a player can appear on the leaderboard they need an identity: a keypair whose public half the leaderboard verifies against, and a display name.
/side-quest:signupflow~/.claude/side-quest/id_ed25519— not the user's main~/.ssh/id_ed25519; keep the game's signing key separate and single-purpose.ssh-keygen -t ed25519 -N "" -f ~/.claude/side-quest/id_ed25519 -C "side-quest:<name>".POST /signupwith{name, pubkey}plus a signature over that payload by the new private key (proof of key possession). Server stores name -> pubkey and returns a player id.~/.claude/side-quest/identity.json={player_id, name, pubkey_path}.xp.sh leaderboard-submitreads this.leaderboard-submitis authenticated by signature. "Sign in to the server" == the one-time registration; after that the key is the credential.Open questions
https://git.trtmn.io/<user>.keys, which assumes every player has a Forgejo account.<user>.keysis the trust source; signup verifies you control a Forgejo account and registers the game key against your username. Closed to the Forgejo org.~/.claude/side-quest/id_ed25519(recommended) vs. reuse~/.ssh/id_ed25519.matt,matt#2)?identity.json+ the key to the others (or re-run signup pointing at the existing key). Document this.commands/signup.mdinvoking anxp.sh signupsubcommand that does the keygen, name prompt, signed registration POST, and local persistence.Scope
commands/signup.md+xp.sh signup, the server-side/signupendpoint (shared infra with #1), local identity persistence, and docs. Depends on #1's hosting decision.Related: #1.