Local-first digital Mao

Mao is a card game played with a regular deck a bit similar to Uno (you win by getting rid of all of your cards) but with a custom rule mechanic: each round, the winner of the round creates a new rule, which applies to future rounds, but which they only reveal by enforcing it (and other players must guess what the rule is). Mao is (subjectively) a really fun game and also a good demonstration of function privacy in practice - hence perhaps a neat application of the Anoma architecture. Mao is also an episodic game and needs only local ordering, which makes it suitable for a local temporary fractal instance (where bets, if placed, could be settled elsewhere after gameplay completes).

Required components:

  • Random deck shuffling and dealing to individual players
  • Iterated gameplay (players playing cards in order)
  • Validity conditions for what cards can be played
  • Specific cards have specific effects, for example:
    • Reversal of direction
    • Next player plays two
    • Changes in validity conditions
  • User-defined rules, for example:
    • Can change validity conditions
    • Can create additional actions which must be taken
    • Can change order of play

Mao only requires local ordering, so the basic flow should be as follows:

  • Counterparty discovery to seek counterparts for a game of Mao.
  • In case of bets taken (with funds transferred from elsewhere), a transaction on the parent fractal instance in order to register the game
    • Players’ public keys
    • Initial ruleset state
    • Number of rounds
  • Creation of a temporary fractal instance between the players to play the game
    • PoA network between players
    • Each round, the winner can create a new rule
      • Private to them, but committed to
  • Gameplay with privacy
  • Game completion & submission of results to parent instance (for bets and/or leaderboard, prizes)
    • Results should consist of
      • Signature by involved players
      • Composed sequence of state transitions (all moves played) which can be validated
    • Mao leaderboard can be updated

This is a pretty sophisticated application and a good demonstration of what kinds of experiences generalized information flow can enable. It’s also a fun game!

/cc @apriori @awa penny for your thoughts


Indeed it is a good example application for a temporary fractal instance and generalized information flow control. The issue is that the game is not well-known outside of our own social circle (mostly influence of Christopher Goes). If it doesn’t require too many resources it could be build as a demo, specially if it helps internally.

We should play this game at the Anoma HH regardless!


This is really cool for a few reasons.

After reading through the wiki a few times I still don’t understand all the rules but, I think that is the point of the game - learning by inference.

Caveat: this is just brain-stomring no serious thought has gone into any of the following assertions aside from a half day of pondering between tasks.

  1. This is a game that people can play anytime with friends all over the world which is particularly relevant to the types of diverse intent authors we will have.
  2. Proof of MAO - you could require that various agents play this game to select the next leader as a sort of “proof of work.” This could also work as a Sybil resistance mechanism in the slow game? Granted the level of tuning would have to be lower difficulty, but this works just like a captcha.
  3. As Nuclear families evolve or die out completely one of my observations is that they don’t have enough quality interaction divorced from reward-punishment interactions. Before the advent of personal computers and mobile phones, it would be much more common for a nuclear family to play a game like “clue” or “monopoly” on a weekday night than everyone watching Netflix or YouTube on their device in isolation. Today, families don’t have many wholesome games they can play together that are fun and interactive. Much of the mobile experience is designed around the concept of an individual - which is a flawed premise to begin with.
  4. As a category of applications this seems like a great one to start with that is unique - not just Poker, 21, or Bridge for example.

Yea, lets test it out. 100%. :brain:

Also, if we have the bandwidth in the future, it could be useful? to hack together some of these application ideas with the Wyvern protocol to test product market fit in the EVM land.

1 Like