Ssteven_copy
case_study · 06 / 06·Web3 · NFT · gaming·discontinued

xGangsters dApp.

Web3 decentralized application on MultiversX (formerly Elrond) blockchain with three mechanics: NFT election system and hidden NFT hunt (shipped to production), and Unreal Engine 5 mobile combat game (advanced beta, not finalized). Project discontinued in 2024 for team-internal reasons.

5
Team members
2
Mechanics shipped to production
1.5yr
Project span (Sep 22 → Mar 24)
MultiversX
Deployment blockchain
Next.jsReactNestJSTypeScriptChakraUITailwind CSSWalletConnectMultiversX SDKSmart Contracts (Rust)Unreal Engine 5AWS S3Firebase

// 01 · the-context

The context

xGangsters was a Web3 project I co-founded and led as CTO from September 2022 to March 2024. The idea: create a living NFT collection with real game mechanics and a community engagement system that goes beyond "mint and hold".

Three planned functional pillars:

  1. An NFT election system where holders vote for active project contributors
  2. A hidden NFT hunt game with daily attempts based on NFT count
  3. A mobile automated combat game on Unreal Engine 5, with NFT stats driving fights

Deployed on MultiversX (formerly Elrond).

// 02 · what-was-actually-shipped

What was actually shipped

Let me be clear on what was actually deployed vs what remained in progress:

Shipped to production

  • NFT election system
  • Hidden NFT hunt game
  • Marketing site
  • Web3 dApp (wallet connect, NFT/token visualization)

Advanced beta, not finalized ⚠️

  • The Unreal Engine 5 mobile combat game — functional but not in a public release state when the project ended

The project ended in March 2024 due to team-internal reasons (health issues affecting a co-founder), not from a technical failure or market rejection.

// 03 · the-solution

The solution

I designed and built the entire web layer (dApp + marketing site) and the blockchain integration on the front/back side, fully autonomously and without AI assistance — back then I was hand-coding everything.

The Web3 dApp

The dApp is built with Next.js + React + ChakraUI, integrating WalletConnect + MultiversX SDK so users can connect their wallet, see their NFTs, view their project token balance, and interact with smart contracts.

// code
// WalletConnect + MultiversX integration pattern (simplified)
async function connectWallet() {
  const provider = await WalletConnectProvider.init({
    chainId: "1", // MultiversX mainnet
    relayUrl: WALLET_CONNECT_RELAY,
  });

  const { address } = await provider.login();

  // Fetch user NFTs on MultiversX
  const userNfts = await multiversXSdk.getNftsForAddress(address, {
    collection: "XGANGSTERS-xxx",
  });

  return { address, nfts: userNfts };
}

The NFT election system

NFT holders vote for candidates during a defined period. Votes are weighted by NFT count. At the end of the period, elected contributors join the project (partial governance).

I built the full voting UI and the monitoring backend (NestJS). The associated smart contracts were written by another team member specialized in blockchain; I handled the dApp-side integration.

The hidden NFT hunt game

An NFT is hidden in a visual grid. Each user has a limited number of daily attempts based on their NFT holdings. First to find it wins a reward.

I built all the game logic on the frontend, the attempts system, state synced via Firebase Realtime Database, and the wallet NFT integration.

The mobile combat game (not finalized)

The Unreal Engine 5 game was developed by an external UE5-specialized freelancer. On my side, I built the interface API between the game and the blockchain: exposing NFT stats, API contracts, on-chain result submission.

The game remained in advanced beta, not finalized when the project ended.

// 04 · technical-challenges

Technical challenges

MultiversX integration in 2023. Back then MultiversX was young (Elrond → MultiversX rebrand in progress), the JavaScript SDKs were evolving fast, docs sometimes thin. I often had to read SDK source code to understand certain behaviors.

Distributed Web3 state. A dApp combines several sources of truth: the user's local wallet, on-chain state (slow to confirm), an off-chain cache layer, and the UI. Keeping all of that coherent without showing inconsistent states requires real thought on optimistic transitions and error rollback.

Coordinating a multidisciplinary team. The team had 5 people: me (web + blockchain integration), a co-founder (strategy + community), a blockchain dev (Rust smart contracts), a UE5 freelancer, a designer. My CTO role involved aligning three codebases (web dApp, smart contracts, mobile game) with three different release cycles — without slowing anyone down.

// 05 · what-im-taking-away

What I'm taking away

xGangsters taught me two essential things about being a CTO:

First, a CTO isn't just the best coder on the team. It's the person who decides what to build, when, and ensures the whole team converges. The best technical decisions I made on xGangsters were often not to build: don't develop in-house what you can delegate, don't chase technical perfection on features the community hasn't validated.

Second, projects sometimes end for human reasons, not technical ones. The tech worked. The concept attracted attention. But a 5-person team is fragile in the face of a human accident. That's a lesson I apply at Klorv today: choose co-founders and team members with as much seriousness as technical choices.

The CTO experience gained on xGangsters directly prepared me to found Klorv two years later, with more maturity on these topics.

// 06 · tech-stack

Tech stack

LayerTechnologies
Frontend dAppNext.js, React, ChakraUI, Tailwind, TypeScript
BackendNestJS, Node.js, Firebase Realtime DB
Web3MultiversX SDK, WalletConnect (dApp-side integration)
Smart ContractsRust (written by a dedicated team dev)
GameUnreal Engine 5 (developed by an external freelancer)
Storage & deployAWS S3, Firebase, Netlify, Vercel