Demo Rock Paper Scissors

Project Overview

One wallet creates a game and locks in rock, paper, or scissors. A second wallet can join any open game and submit its move. Before execution, the other player should not see your move in the wallet UI. Once executed, both moves are revealed and the winner is shown.

Core Functionality

Create Game

Start a new game and lock your move immediately when the transaction is created.

Join Open Game

Any other wallet can browse open games and join one with its own move.

Hidden Until Execute

The wallet keeps the opponent move hidden in the UI until the game is executed.

Winner Reveal

After execution, the wallet shows both moves and the final result clearly.

Flow Summary

  1. Player 1 creates a new game and picks rock, paper, or scissors.
  2. Player 2 finds that open game and joins it with a move from another wallet.
  3. Neither side sees the other move in the wallet UI before execution.
  4. The game is executed and the wallet reveals both moves and the winner.

Test the Extension

  1. Clone the wallet repository to your machine.
  2. Run npm install and build it, for example with npm run build:chrome.
  3. Open your browser extension page and enable Developer mode.
  4. Choose Load unpacked and import the built extension folder from dist/.
  5. Open the wallet, go to Rock Paper Scissors, and test it with two browser profiles.