Inspiration

The inspiration for MonsterChain came from a rebellious question: "Why is it always humans hunting monsters? Why can't we flip the script?"

In every RPG, players are heroes slaying monsters. But we asked ourselves — what if YOU were the monster? What if the humans were the enemies, and you were the hunter?

Most Web3 games suffer from:

  • High entry barriers (gas fees, complex wallet setup)
  • Poor user experience (constant transaction confirmations)
  • Lack of real-time multiplayer interaction
  • The same old "hero vs monster" narrative

We wanted to create something different — a game where:

  1. You ARE the monster — Hunt humans, not the other way around
  2. Zero cost entry through sponsored transactions
  3. Real-time multiplayer battles via WebSocket
  4. True ownership of in-game assets as NFTs
  5. Player-driven economy with a decentralized marketplace

The concept of a world where players choose their monster vessel (Warrior, Archer, or Mage) and hunt humans to earn randomized weapon drops felt like the perfect blend of classic RPG mechanics, blockchain innovation, and a fresh perspective on the genre.

What it does

  • Play as a Monster — Hunt humans instead of being hunted
  • Choose Your Vessel — Warrior, Archer, or Mage class with customizable appearance
  • Battle Humans — Enter maps, defeat human enemies, earn random weapon drops
  • Survive — Avoid death or face 10 seconds respawn ("10 seconds feels like 10 years")
  • Own NFT Weapons — 3 types × 3 rarities × 10 levels, fully tradeable
  • Synthesize Weapons — Merge same-class weapons + pay LingStone to upgrade
  • Trade in Marketplace — Buy/sell weapons with other players using LingStone + OCT
  • Team Up — Public hunts with strangers or private rooms with friends
  • Zero Gas Fees — Sponsored transactions cover everything for new players

How we built it

  • Frontend: React 19 + Vite, deployed on Vercel
  • Backend: Node.js + Express + WebSocket, deployed on Render
  • Blockchain: Sui Move smart contracts on OneChain Testnet
  • Wallet: OneWallet integration via @mysten/sui SDK

Smart Contracts

  • player.move — Soulbound Token (non-transferable character)
  • weapon.move — NFT weapons with type, rarity, level
  • lingstone.move — In-game currency (LING, 9 decimals)
  • marketplace.move — P2P trading with escrow
  • random_utils.move — On-chain randomness for drops

Challenges we ran into

  • Flipping the Narrative — Designing game flow from monster's perspective, not just reskinning heroes
  • Sponsored Transactions — Implementing gas-free UX while preventing abuse
  • Real-time Multiplayer — Keeping state consistent across clients with varying network conditions
  • On-chain Randomness — Generating fair random numbers on deterministic blockchain
  • Marketplace Security — Building trustless P2P trades with escrow mechanism
  • Wallet Integration — Supporting OneWallet while staying compatible with Sui ecosystem

Accomplishments that we're proud of

  • Zero barrier entry — Sponsored transactions mean no gas fees for players
  • Unique concept — Players ARE the monsters hunting humans
  • Full on-chain economy — SBT characters, NFT weapons, LING tokens, decentralized marketplace
  • Real-time multiplayer — Smooth WebSocket-based co-op with public/private rooms
  • 7 contract iterations — V1 to V7 to get the design right
  • Live deployment — Running on OneChain Testnet, Vercel, and Render

What we learned

What's next for MonsterChain

Built With

  • css
  • css-**frontend:**-react-19
  • eslint
  • express.js
  • javascript
  • mysten/sui
  • mysten/sui-sdk-**hosting:**-vercel-(frontend)
  • node.js
  • onechain-testnet
  • onewallet
  • react
  • render
  • render-(backend)-**wallet:**-onewallet-**tools:**-sui-cli
  • sui-cli
  • sui-move
  • tiled
  • vercel
  • vite
  • vite-7-**backend:**-node.js
  • websocket
  • websocket-(ws)-**blockchain:**-onechain-testnet
Share this project:

Updates