Search projects, hackathons, sponsors and tech

    ← All projects

    Dungeon Divers

    A turn-based dungeon RPG with dragon summons, verifiable NFT loot, and player-to-player trading.

    Demo

    About

    Dungeon Divers is a browser RPG that connects turn-based dungeon combat with usable, tradable NFT weapons. Players begin with Iron Guard and explore the three-room Mossroot Hollow without connecting a wallet. Completing a dungeon unlocks Ember Mage, who uses her own mana pool for magic and a frame-animated dragon summon. Characters act in speed order, with individual health and resource bars, potions, and saved progress. The five-room Emberdeep Vault adds testnet-paid entry and NFT weapon rewards. MetaMask users play on Base Sepolia; HashPack users have a separate native Hedera testnet payment and reward flow. Chainlink VRF supplies randomness for weapon selection. Players can verify ownership, equip supported NFT weapons, and use purchased Base weapons in subsequent dungeon runs. The Base Sepolia marketplace supports fixed-price listings, purchases, and cancellations. Listing deposits the NFT into escrow. A successful purchase atomically delivers it to the buyer and splits payment: 97.5% to the seller and 2.5% to the platform. Item-level confirmation progress and toast notifications keep trading understandable. The demo is deployed on Vercel with cloud Supabase persistence. Payments and NFT assets use testnets. Combat is server-authoritative rather than fully on-chain, and browser guest saves are separate from wallet ownership. Artwork provenance: selected character, weapon, enemy and environment assets were reused from the creator's earlier BraveLets work, alongside new summon and casting artwork. Sources are recorded in docs/assets.json. Reused assets are not claimed as new hackathon work.

    How it's made

    The frontend uses React for menus and PixiJS for battlefield rendering, modular characters and authored animation frames. Shared TypeScript combat rules and Zod schemas define the command/state boundary. A Fastify backend validates turns, revisions, payment admission, wallet proofs and equipment ownership. PostgreSQL through Supabase and Drizzle persists runs, inventory, payment attempts and reward records in a private RLS-protected schema; the browser cannot write game state directly. Solidity contracts handle Base Sepolia paid admission, Chainlink VRF-backed NFT rewards and marketplace escrow. The marketplace applies a 250-basis-point platform fee. Chainlink price data supplies the USD reference for EVM entry pricing. Historical Ethereum Sepolia rewards remain separate. Native Hedera payments use HashPack/WalletConnect and Blocky402 verification and settlement; native NFT delivery uses the Hedera SDK and a trusted backend applying a pinned Chainlink randomness result. This is not a trustless cross-chain bridge. Vercel serves the frontend and same-origin API. Cloud Supabase uses verified TLS through its session pooler. Authenticated scheduled requests run bounded payment/reward reconciliation jobs, with durable transaction records and advisory locks for recovery across serverless invocations. Secrets and issuer/operator keys stay server-side. NFT artwork and metadata are hosted on IPFS. One challenge was reconciling relayed wallet transactions: confirmation checks use trusted contract events and exact operation details. Purchased weapon discovery combines saved mint records with current on-chain ownership, so buyers do not need to have earned the original reward. ENS integration performs Ethereum mainnet primary-name lookup; dungeondivers.eth resolves to the platform address. This is not an ENSv2 implementation. AI assistance was used extensively through Codex for implementation, tests, debugging, deployment preparation and documentation, and for generated visual assets. Human contributions included product and game-design direction, feature scope, visual and animation review, approval of reused art, and live wallet/payment testing. Existing art sources and hashes are recorded in docs/assets.json. No BraveLets game code was copied.