MortalCoin: Trading Simulation Fighting Game – Outtrade Your Opponent to Win

Project Name

MortalCoin: Trading Simulation Fighting Game – Outtrade Your Opponent to Win

Problem Statement

The Web3 space thrives on trading, competition, and game-like experiences - yet these elements remain largely disconnected. Trading is typically solitary and chart-driven, while gaming and meme culture live in separate silos.
We see an opportunity to unify these dimensions into a real-time, skill-based PvP/PvE battleground - where cryptocurrencies come to life as unique, playable characters.
Inspired by the speed of Hyperliquid, the strategic depth of poker, and the intensity of Mortal Kombat, our game turns speculative trading into an engaging, competitive, and entertaining experience.

Solution Overview

MortalCoin transforms crypto trading into a real-time combat game, where players “fight” by outperforming their opponents in simulated market environments using real price feeds. Each cryptocurrency is represented as a unique character, adding personality and emotional attachment to assets.

During the hackathon, we plan to make significant progress on three key fronts:

  • Continue the transition from a MVP Telegram Mini App to a full-featured Web App.
  • Finalize the alpha release of our core PvP and PvE trading game modes, ensuring smooth real-time gameplay.
  • Continue on-chain R&D and deploy our first on-chain logic using Metis’s Hyperion, laying the foundation for trustless game mechanics where key gameplay elements can be cryptographically verified.

Our broader goal is to demonstrate that a fast-paced trading game can operate with minimal latency while preserving the transparency, integrity, and verifiability of Web3 systems.
Our uniqueness lies in blending real-time trading simulation with PvP battle mechanics and on-chain adjudication (TBD) - framed as a meme-powered arena where crypto assets are reimagined as animated, playable characters.

Project Description

MortalCoin is a real-time PvP/PvE crypto trading game where players battle using simulated trades based on live market data. Think Mortal Kombat meets Hyperliquid, with cryptocurrencies personified as unique, playable fighters. Each battle simulates a short trading session where players choose strategies and try to outtrade their opponents.
The simplified gameplay MVP has already launched as a Telegram Mini App (Season 1 started June 1st): @themortalcoin_bot, with around 10000 users played so far. We’re now expanding to web, integrating EVM functionality.

Website: https://mortalcoin.app

Hyperhack Hackathon web version build (wip - you can fight an AFK ghost for now, just click “Start Fight”): https://stage.mortalcoin.app

Gameplay teaser: https://www.youtube.com/shorts/04vbwJzEBio

Whitepaper draft: https://docs.mortalcoin.app

Deck draft: https://www.canva.com/design/DAGsSaY6o4g/jE94ckGrT4ahyOBNykFpFw/edit

Community Engagement Features

We have several features designed to drive virality and user engagement:

  • Leaderboards – We tested time-limited, incentivized leaderboards in the Telegram Mini App, attracting nearly 4,000 players in June. This will be brought to the web version.
  • Referral System – Already live in Telegram and planned for the web version.
  • Missions – Tasks like “Win X fights,” “Win with a specific coin,” “Refer a friend,” and daily/weekly challenges will carry over to web.
  • Daily Free Tickets – Players get free tickets (needed for battles) daily, boosting retention and routine engagement.

We use an internal soft currency called tickets, required to play PvP and PvE battles. Tickets can be earned through missions, referrals, daily claims, or purchases, forming the foundation of our progression system.

Players also earn MortalPoints (MP) by winning fights and completing challenges. MP reflects player skill and activity, and will later be spendable in the in-game store or used in token/NFT-based incentives like tournaments or airdrops.

Looking ahead, we also plan to introduce an ELO rating system with ranked divisions—adding a competitive layer that rewards performance and progression over time.

Getting Involved

Everyone is welcome to join our Telegram chat: Telegram: View @mortalcoin_chat and share suggestions or ideas.
Right now, we’re in the middle of transitioning our backend from Telegram Mini App support to a full web experience. We anticipate a playable web version with engaging gameplay and on-chain mechanics to be ready by the end of July - and we’ll need plenty of help testing and playing! :blush:

2 Likes

This sounds like a really interesting project, Tony! The concept of turning crypto trading into a fighting game with real-time simulation and on-chain verification is quite innovative.

Here are a few thoughts and potential discussion points for you, based on your post:

  • Metis Hyperion Integration: You mentioned deploying your first on-chain logic using Metis’s Hyperion. This is a great way to leverage the speed and security of the Metis L2 network. I’m curious about what specific gameplay elements you plan to make cryptographically verifiable. Are you thinking about verifiable randomness for match outcomes, or perhaps on-chain escrow for in-game assets?
  • Community Engagement: The leaderboards, referral system, and missions are excellent for driving user engagement. Have you considered any tokenomics or NFT integration strategies to further incentivize participation and long-term retention?
  • Technical Challenges: Transitioning from a Telegram Mini App to a full web app while maintaining real-time gameplay and integrating on-chain mechanics sounds technically challenging. What are some of the biggest hurdles you’re anticipating, and how are you planning to address them?

I’d also recommend sharing this project in the #ideation channel on the LazAI Discord. There are a lot of knowledgeable people there who could provide valuable feedback and suggestions.

To find the discord, you can use this search query: LazAI Discord

2 Likes

We started active R&D at the beginning of the week and already have a progress, including initial brainstorm results and implementation planning (game sequence diagram attached)

The current flow idea for on-chain gameplay is as follows:

Concept

We aim to build a secure, manipulation-resistant PvP arena using EVM-compatible smart contracts. All core actions such as betting, creating and joining games, opening/closing positions, and finalizing are performed on-chain. The backend plays a supporting role: validating on-chain activity, relaying messages between players, and tracking game states.

Backend Responsibilities

Event Listener

  • Listens to smart contract events
  • Tracks and syncs game states (pending, active, completed) with a centralized DB
  • Keeps game data fresh for frontend UX (matchmaking, game history, rewards)
  • Removes games if the creator goes offline

Game Status and Matchmaking API

  • /api/game/create validates initGame transactions
  • /games/waiting-for-opponent returns available games to join
  • /api/game/start validates joinGame transactions

Signature Relay

  • /api/position/signature provides backend EIP-712 signature for opening positions
  • WebSocket or long polling is used to relay signature requests:
    Player 2 → Backend → Player 1 → (Signs) → Backend → Player 2

Game Watchdog

  • Tracks whether the game creator (Player 1) is online
  • Hides the game from the list if the creator is offline
  • During joinGame, the contract validates Player 1’s short-TTL signature, proving they were online and approved the join

Frontend Responsibilities

Game Start

  1. User clicks “Start Fight” and selects a fighter
  2. Frontend queries /games/waiting-for-opponent
  3. If a game is found, it requests a join signature from Player 1 via backend
  4. If no game is found, frontend calls initGame(poolAddress, betAmount)
  5. After the transaction is confirmed, backend validates it via /api/game/create

Matchmaking UI

  • Displays a waiting screen with a countdown
  • Optionally subscribes to real-time updates via WebSocket

In-Game Trading

  • openHashedPosition(gameId, directionHash, backendSignature) is used to open a position (direction is hidden initially)
  • Signature is retrieved from /api/position/signature
  • closePosition(gameId, direction, nonce) is used to reveal and close the position

Finalization

  • Once both players have closed their positions, the creator finalizes the game via finalizeGame(gameId)
  • If someone is unresponsive, backend triggers forced finalization after timeout

Smart Contract Core Functions

  • initGame(poolAddress, betAmount) locks the bet and creates a game
  • joinGame(gameId, poolAddress, betAmount, joinSignature) lets the second player join
  • openHashedPosition(gameId, directionHash, backendSignature) opens a hashed position
  • closePosition(gameId, direction, nonce) reveals and settles the position
  • finalizeGame(gameId) settles rewards and closes the game

Game Pool Whitelist

  • The contract stores a whitelist of allowed DEX pools for each network
  • Only the owner can modify the list to prevent use of fake or manipulatable pools
  • The contract uses these whitelisted pools to fetch real-time prices for PnL and trade validation

Open Questions

  1. How to efficiently track intermediate game state (e.g., opponent’s position, PnL) — will likely be handled off-chain via event polling
  2. Fail-safes and abuse prevention:
    • Join TTL signatures required from Player 1
    • First-come, first-serve enforcement on backend and contract
    • Pool whitelist enforced in contract

Security Measures

  • Only whitelisted pools are used
  • All actions require confirmed on-chain transactions
  • TTL-based join signatures ensure liveness and prevent stolen entries
  • Backend signs position hashes to enable forced closure if needed
1 Like