Inspiration
I wanted to create a simple game using the ERC721 standard and explore upgradability in a smart contract game.
What it does
A player can buy numbers (positive integers for now), and then use those numbers to participate in matches. Matches are time limited events where players submit solutions to a problem using their numbers. When the match ends (currently a manual action by the owner of the main game contract) the closest solution wins and gets the prize money. The main game contract can be upgraded using ZeppelinOS, so more game mechanics can be added while preserving players and their owned tokens. Matches can be upgraded to support new types of problems and solutions. Both can benefit from improvements to the deployed on-chain libraries built by Zeppelin.
How I built it
I used ZeppelinOS for upgradability and the ZeppelinOS versions of openzeppelin-soidity contracts for the mintable ERC721 token. Used truffle and the zos-cli tool to develop locally, and web3 + bootstrap for the front end ui.
Challenges I ran into
Deploying to ropsten (I failed).
Accomplishments that I'm proud of
Making an upgradable smart contract game. Getting a playable (although a bit boring for now) game done during the hackathon.
What I learned
Learned a great deal about ethereum, development tools like truffle and Zeppelin's contracts.
What's next for Numbers
Getting it deployed to a test net, supporting negative numbers and then real numbers, better ui and ux for the website interacting with the smart contracts, allowing for easy trading of numbers and more types of matches and game mechanics.
Built With
- html
- javascript
- openzeppelin
- solidity
- web3
- zeppelinos
Log in or sign up for Devpost to join the conversation.