Lots of thought goes into how to efficiently incentivise people to govern decentralised protocols, but it's very difficult to collect data about governance of the current crop of deployed protocols due to various factors. Voting on blockchain is slow, convoluted and can be daunting if you've never done it before.

Twitch Plays Pokemans on Plasma is a proof of concept for an experiment framework which allows people to investigate the effects that incentives have on self organised governance. Pokemon has a similar "finite decision surface" to decentralised protocols, with 8 possible inputs (Maker's suite of governed contracts has 12).

I wrote a post on the topic here, you should read it if none of this makes sense but you think it might be interesting.


What it does

Every message typed into the chat at pokemon.flexdapps.com or twitch.tv/flexdapps is parsed by a server, and valid gameboy commands are turned into Plasma transactions. These transactions are listened to by a separate server which interprets them and maps them onto emulator inputs.

When the game ends, users of Twitch will be able to authenticate with our service and claim ETH proportional to the amount of inputs they submitted in-game. This is just one example of the type of incentive which could be offered to players. We list a few more at the bottom of this post, but the possibilities are reasonably endless.

How we built it

Solidity, Web3.js, Node.js, Windows Cloud VM, AutoHotKey, OBS, Twitch, Loom Network, Plasma

Challenges we ran into

Getting an appropriate environment to run the game emulator...

Accomplishments that we're proud of

We managed to get the game working in a cloud VM so we don't have to keep a laptop running forever!

Feels good

What we learned

Plasma is pretty simple and adds a lot of flexibility to the type of applications you can build on top of blockchain technology.

What's next for Twitch Plays Pokemans on Plasma

We plan to seek funding to create a more comprehensive version of this framework which will allow people to "ask their own questions." Currently we only support distributing ETH at the completion of the game, but we would like to allow more complex incentivisation scenarios to exist, with a dense amount of configurability, such as:

  • Less ETH reward over time (incentivise people to finish the game faster)
  • Specific game events trigger minor rewards (catching specific pokemon)
  • Custom smart contract to log transactions
  • etc.


Built With

Share this project: