Abyssal Descent

Dungeon RPG with 6 classes endless floors unique bosses crypto purchases and jackpot for winner

Abyssal Descent

Created At

ETHGlobal Cannes 2026

Project Description

A fast paced dungeon RPG, choose from 6 unique classes, each with 5 distinct spells, and battle through endlessly generated floors with evolving boss mechanics and level design.

Players can purchase in game potions using Uniswap buy and swap, feeding a growing crypto reward pool. The first player to defeat the level 15 boss takes the entire pot.

Designed to be genuinely fun first, with seamless crypto integration and competitive progression, this game rewards true skill.

How it's Made

Abyssal Descent is a real-time browser dungeon crawler built with Phaser 3 and a Node.js WebSocket server. The crypto layer is entirely optional —> the game is fully playable without a wallet.

Uniswap Integration: "Swap & Pay" via the Uniswap Trading API. Players can buy in-game potions with any token in their wallet, not just ETH or USDC. We fetch all wallet tokens dynamically via Blockscout, get real-time swap quotes from Uniswap, and execute through a Permit2 sign + swap + EIP-5792 batched vault purchase flow. The Uniswap API is proxied server-side (CORS + key security).
For wallets supporting EIP-5792 (wallet_sendCalls), the post-swap approve + purchase is batched into one popup. Fallback to sequential with exact-amount approvals for wallets that don't.

The smart contract is UUPS-upgradeable on Base mainnet, handling potion purchases with a 75/25 reward pool split and server-signed attestations for reward claims.

Notable technical choices: setTimeout game loop with real deltaTime measurement instead of setInterval (eliminates tick drift), dirty-flag rendering on the client (only re-renders on state change, not every frame), frame-rate independent sprite interpolation, and delta state sync reducing network payloads from 10KB to ~500 bytes per tick.

background image mobile

Join the mailing list

Get the latest news and updates