Video: https://drive.proton.me/urls/FQNXXDXB00#G7MxnxlLhXvM
DefeatTheMeme is a gasless, on‑chain arcade shooter deployed on Zircuit where players blast waves of meme coins (inspired by Solana memes) using adorable Zircuit‑Cats‑styled graphics. Gameplay is verifiable on‑chain, transactions are sponsored via meta‑transactions, and global leaderboards are backed by GolemDB. We creatively combine RedStone price feeds with chain data to derive per‑session randomness on Zircuit.
What we built
- Fast, skill‑based shooter with waves of enemies and per‑session seeded schedules.
- Planet NFT gate: one per wallet; game results update daily and lifetime stats on the NFT.
- Gasless UX: EIP‑2771 meta‑transactions via MinimalForwarder so players don’t pay gas.
- Leaderboards + player stats persisted with GolemDB.
- Oracle‑assisted randomness: RedStone ETH/BTC/pufETH feeds blended with blockhash, prevrandao, player address, nonce, and timestamp.
Why it matters
- Removes onboarding friction—anyone can play without gas.
- Transparent, reproducible session generation on a network without native VRF.
- Durable, decentralized score storage for competitive play.
Technical highlights
- Contracts (Solidity, Hardhat):
• GameEngine (ERC2771Context, Ownable): session lifecycle, schedule generation, result submission, daily defeat tallies, optional daily settlement/payouts.
• PlanetNFT (ERC721, ERC2771Context): access pass storing per‑day and lifetime defeats; only GameEngine can record results.
• MinimalForwarder for trusted relaying of meta‑txs.
• RedStone AggregatorV3Interface price feeds (ETH/BTC/pufETH) used as entropy inputs.
- Frontend: Next.js + Scaffold‑ETH 2 + Wagmi/Viem; canvas shooter, wallet + gasless relay flow, leaderboard UI.
- Data: GolemDB service for submitting/fetching high scores and player statistics.
Stack
Scaffold‑ETH 2, Hardhat, Solidity, OpenZeppelin, Next.js/TypeScript, Wagmi/Viem, RedStone, GolemDB.
Links
Video: https://drive.proton.me/urls/FQNXXDXB00#G7MxnxlLhXvM
Repo: https://github.com/romispectrum/defeatmeme
Demo: https://defeatmeme.com/