---
# System prepended metadata

title: Holochain/EVM art game

---

A collaborative art game where players/artists make "moves" that build upon all the previous moves.

## Life cycle of play

- The first move is made by the creator of the happ (the "gamemaster"). In this move they must submit:
    - The start time and end time. The game is timeboxed, ie it has a fixed beginning and end time, decided on before the game starts.
    - An 1155 contract address they have created onchain on some EVM (this has specific functionality described below).
    - A proof that they own the public key that deployed the contract.
- Players join and make moves. There are no limits for how many moves a player can make within the time limit, however there is a cooldown period between moves (TBD).
    - Players must also submit a proof of ownership for an EVM address as their first entry on their source chain, before they can make any other moves.
    - As a reponse to every move, the gamemaster signs a proof that includes a unique signifier/ID that represents the artwork at that move, as well as the EVM key that made that move. The proofs are all public and players are able to validate that signature, with the assumption that they would stop playing if the gamemaster goes rogue.
- A player may mint the first copy of an ID that represents the state of the artwork at one of their moves. The player must submit the gamemaster's proof when minting, which is verified onchain.
- Once an ID has been minted by the player responsible for that move, anyone else (players and the public) may mint their own copies for a small price.
- When the time for the game has elapsed, the artwork is frozen and no more moves can be made. The gamemaster signs a final proof (or proof) that includes the EVM key of each contributor, as well as the percentage of their contribution to the final artwork.
- The minting period ends 24hrs after the game's completion. After this, contributors can claim their percentage of the total mint fees, using the signed proof of their contribution.

#### Demo Requirements (User perspective)

- App must be installable easily - should feel like any other local install
- Demo facilitators at an event with laptops must be able to run a script on the windows OS devices which deletes the source chain data for only this app - and allow the game app to be reopened with a new agent key being created 
    - this ensures that no wallet is connected and next user cannot inadvertently play with another users source chain
- First time use of app: user opens the app and lands on a lobby with welcome information that contains:
  - game branding 
  - graphic or animated gif that show the game
  - description about participation (this is text that might be on the screen) 
      - play the game by filling cells with patterns and color
      - game creates a series of NFTs with different images based on snapshots of the design
      - snapshot NFTs can only be minted first by a contributor
      - all players of the game will receive a percentage of the sale of any NFT minted during the game
      - Link to see gallery of NFTs available to purchase??
  - call to action button — Connect Wallet to Get Started
      - user is directed to the game canvas as soon as their wallet is connected 
- Returning to app (if installed on own machine)
    - if a wallet is already connected, have button just say 'play the game'
    - if a wallet is already connected, can we show different or additional content in the 'lobby'?
- Playing the Game
    - Can we allow a user to make 10 placements before the cool-down period? Might we call these game play sessions?
    - When a user reaches the end of their game session, they are asked if they want to mint the snapshot of the game.
        - If they say no, this view of the game will likely never be seen again. (unless someone backward engineers from the data in the DHT :)
- Minting an NFT after a play session


### QUESTIONS for @K5n5iV_KTSuL2O1swt7rgg

1. How does an user exit the game? Assuming that there is an exit if they didn't reach the limit of moves for the session or that the limit message could offer opportunity to mint, and then redirect to 'lobby'
2. Can they be directed to the same screen that they would see if they opened the game a second time already with and agent key and their wallet connected?
3. Where/How can the minted NFTs be seen and sold? Can we both display them and sell them in the app?
    - Should we try to connect to a marketplace for any reason?

