EOS-based Blockchain Gaming Site Case Study

Online Gaming on EOS Network

Gameworks is a large-scale gaming ecosystem with many components. On the technology side, there is an online casino in a web application, as well as a companion app available for iOS and Android. They are both running on the EOS public network using a hybrid architecture, specifically, a combination of data storage on the EOS blockchain as well as an Aurora DB within AWS. Winterwind also created a custom token on the EOS network, "GWX".


Game Central

Game Central is a web-based casino that is the star of the show within the Gameworks ecosystem. It has a beautiful, modern design that was designed by a senior designer in Winterwind. It is a mobile-friendly and fast website built using Laravel 6, SASS, Vue.js and Bootstrap 4. It contains a range of features:

check Game Page
  • Games are available to play in three different sizes, no different than the three different player types available in Youtube.
  • You may switch between playing with the EOS or GWX token with ease.
  • Real-time application with web sockets -- transactions are broadcast to the blockchain immediately and then pushed onto the users page using web sockets.
  • HTML5 games from third-party game providers are embedded within the player using an iFrame, and the users token balance is constantly synced across relational DB and the EOS blockchain.
  • A hybrid system is used where the transaction is first done on a centralized DB and then mirrored on the blockchain. This enables instant feedback for the users without needing to wait for transactions to be mined.
check In-house KYC along with KYC approval area for Gameworks Staff
check Multi-Language Support
check Mobile-friendly (play on a desktop or using your phone's browser)
check Built-in EOS based wallet
  • Stores EOS and GWX tokens
  • Send and receive tokens
  • Show estimated portfolio value in USD or CNY

Mobile Wallet

The Gameworks mobile wallet was done using React Native and is available on iOS and Android. It is a companion app to Game Central and has many of the same features the website has, and some that the website does not;

check Support to store, send and receive not only EOS and GWX tokens, but any token built on EOS that is on their approved tokens list
check Follow tokens page (follow any tokens price, even if you don't own it)
check KYC Application
check Update user details
check Update preferences

The mobile wallet and Game Central use the same wallet. They are just two different windows to access it.


Custom EOS Token Creation

Winterwind was also responsible for creating the custom Gameworks token (symbol: GWX). The interesting thing to note for this however is that there was already an existing GWX token built on the NEM blockchain. Thus, we needed to create a system for migrating the NEM-based GWX tokens to EOS-based GWX tokens. Furthermore, the supply would be reduced from 9 billion on NEM to 90 million on EOS.

What we did was set up a custom listener script on the NEM blockchain, and listen for users submitting their NEM tokens to a specific account (essentially trashing them). Because NEM is a memo supporting blockchain, like EOS, they would input their EOS address with the memo on the NEM transaction. We could then simply divide the amount sent by 100 and then credit the new EOS-based GWX tokens to the EOS account they specified in the memo.


Free Transactions

Every single hand, or pull of the slot machine, is broadcast to the EOS network at no cost to the user, or Gameworks. The way that this is possible is that the house EOS account on Gameworks holds a substantial amount of EOS (3000 EOS+) and it stakes for the CPU and NET that it needs. We also need to monitor the activity of the individual user accounts and ensure they have enough CPU to broadcast their transactions as well. The system is aware of how active each user is on the platform and assigns CPU as needed to them. This is only possible within a hybrid system like what Winterwind designed. In a purely decentralized version, when the user runs out of CPU, their experience has stopped and they need to resolve this before they can continue playing. This is not realistic for the average online gamer who may not be so savvy.