← Work

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.

ReactSolidityIPFSChainlinkNetlifyEthereum

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.

Dwight Club landing page — connect wallet to battle Dwight Schrute in this turn-based NFT game
Dwight Club — 1st rule: you do not talk about Dwight Club
ReactSolidityIPFSChainlinkNetlifyEthereum