projects
  • React
  • Node.js
  • TypeScript
  • CSS
  • JavaScript
  • web3.js
  • Solidity
all-projects
  • Project 1 // _nifty-hands
    Project _nifty-hands image

    Blockchain based rock-paper-scissors game

  • Project 2 // _the-greg
    Project _the-greg image

    Personal website - portfolio

  • Project 3 // _crypto-chapel
    Project _crypto-chapel image

    Metaverse chapel. First blockchain project

  • Project 4 // _run-for-your-lives
    Project _run-for-your-lives image

    Run for your lives landing page

  • Project 5 // _2mr-labs
    Project _2mr-labs image

    2MR Labs website

  • Project 6 // _metaverse_hotel
    Project _metaverse_hotel image

    Virtual hotel in Decentraland metaverse

  • Project 7 // _flowster
    Project _flowster image

    Business workflows automation app

  • Project 8 // _mac-store-demo
    Project _mac-store-demo image

    First demo project made with MERN stack

project-image

Nifty Hands

  • React
  • Node.js
  • TypeScript
  • CSS
  • web3.js
  • Solidity

Project overview

Nifty Hands is a blockchain-powered Rock-Paper-Scrissors game project with a straightforward yet captivating concept.

Users have the ability to mint NFT hands, which can then engage in 3D rock-paper-scissors battles against the hands of other users. These matches include both friendly free battles and high-stakes encounters with wagers.

My role

Originating as a freelance contract, this project involved a collaborative effort. The contractor provided the designs and managed the marketing aspect, while I focused on the technical facets. I independently crafted the entire platform, including backend, frontend, and smart contract development.

Frontend part

Nifty Hands comprises several functional modules: an NFT marketplace, buy/sell interfaces for $CREAM (internal currency), and a fight module. Except for the fight module, all are closely integrated with the Ethereum blockchain.

Hands marketplace

Hands marketplace

User authorization relies on cryptographic signatures via Metamask, and purchases in the marketplace result in direct NFT minting to the user's Metamask wallet.

Fight

Fight

The fight module is constructed using the 3D library Three.js, ensuring a visually engaging experience. In the interest of interaction, security, and preventing cheating, all game moves are processed on the backend. To minimize latency, the fight module employs the websocket protocol for swift communication with the backend.

Web3 work

At its core, the application relies on the Ethereum blockchain for transparency and trust. I created a smart contract to oversee all marketplace operations, including NFT minting, secondary sales, and the implementation of promotional codes.

Opensea collection

Opensea collection

$CREAM transactions are straightforward Ethereum transactions, while the $CREAM balance is maintained in a centralized database. This approach was chosen to minimize gas costs during high-stakes fights with wagers.

Backend logic

The backend acts as the project's core and is crucial for maintaining security. It thoroughly checks each transaction made by users to ensure no one can manipulate the system.

Within the backend, there's a specific websocket module dedicated to managing the fights. This module is equipped with strong anti-cheat system, battle-match system, and it's capable of handling various situations, up to power outages for one or both players.