Dwight Club
Proof of concept Ethereum turn-based play-to-earn NFT game. Mint a hero character, battle Dwight Schrute, and watch your NFT's on-chain metadata evolve with each fight. Chainlink VRF for verifiable randomness, IPFS for image storage, deployed to Rinkeby testnet.
The Project
We wanted to understand how Web3 play-to-earn games work, so we built one. Dwight Club is a proof of concept turn-based NFT game on Ethereum where a user mints one of three hero characters to battle the evil boss Dwight Schrute.
Once minted, the character NFT lives on-chain with its associated metadata — HP, attack damage, battle history. Image assets are stored on IPFS. Each character comes with different HP and attack damage ratings. Land a punch and Dwight's HP drops. Take a hit and yours does. Every change is recorded on-chain and the NFT's metadata updates accordingly.
Chainlink VRF (Verifiable Random Function) provided provably fair randomness for the turn-based combat — every outcome verifiably random and tamper-proof. The contract was funded with test LINK to pay Chainlink oracle fees.
As a proof of concept, the game was deployed to the Rinkeby testnet rather than Ethereum mainnet — only test ETH needed for gas, and a MetaMask wallet to connect.

Features

Mint Your Hero NFT To Battle Dwight
Choose your hero wisely — Powerpuff Girl, Miyagi Sensei, or Hat Hat. Each has different HP and attack damage ratings.

Prepare For Battle
The battle arena — your hero faces Dwight Schrute. HP bars, attack damage stats, and the leaderboard tracking all fighters.

Wallet Authorisation For Attack On Dwight
Every attack is an on-chain transaction — wallet authorisation required before landing a punch on Dwight.

Success Message And Data Updated On Chain
BAM! Your hit caused double damage. Dwight's HP drops, your stats update — all recorded on-chain via Chainlink VRF.

OpenSea: Minted NFT Hero Metadata
The minted hero NFT on OpenSea — metadata reflects on-chain state: attack damage, damage inflicted, and health points.

Etherscan: Dwight Club Contract
The smart contract on Etherscan — every mint, attack, and Chainlink VRF callback visible on-chain.