Inspiration

Tug of war games. We wanted to create something that would allow us to develop for the Ethereum blockchain but that would be a fun project to work on during the hackathon to keep that hackathon spirit around. Also, we wanted to do something that in the future could have IoT applications (having a real-life train).

What it does

Users buy a ticket to join the train. Trains depart from a station and users can vote in one of two destinations. Users that pick the winning destination keep their ticket and win an NFT of the station. Users that fail are kicked from the train but keep the NFTs they won. Anyone can pay to blow the train horn.

How we built it

We created a smart contract and a frontend web client with:

  • Solidity
  • Ether.js
  • TheGraph
  • Metamask
  • Gnosis safe
  • React
  • React-spring
  • ThreeJS
  • React-Three-Fiber
  • GraphQL
  • Typescript

Challenges we ran into

  • Keeping the scope to a minimum
  • Handling finicky OpenGL issues
  • Writing the smart contract
  • Pixel art

Accomplishments that we're proud of

  • Functioning 3D train that interacts with the blockchain
  • Interesting concept
  • Build an international community around the metaverse

What we learned

  • Solidity programming experience
  • Web3 concepts such as NFTs, DAOs, L2, gas restrictions and improvements
  • Web3 ecosystem (wallet connect, nexus mutual, gnosis safe)

What's next for The Metaverse Train

  • Fairness and transparency improvements
  • Commit-reveal?
  • Gas optimizations
  • Self-generated NFTs with different properties (city and train pixel art)
  • Self-generated tracks and stations
  • Evolving 8-bit train-related music
  • Mainnet release
  • Community events
  • Real-life train

Built With

Share this project:

Updates