About the Tech

Dungeons & Moles is a fully on-chain game built on Solana. Every aspect of gameplay — combat resolution, map generation, item drops — is deterministic and executed on-chain, making the entire game state verifiable and tamper-proof.

Fully On-Chain & Deterministic

All gameplay logic runs on Solana programs. Combat outcomes, map layouts, enemy placement, and loot tables are resolved deterministically from on-chain seeds. There is no off-chain server making gameplay decisions — the blockchain is the source of truth.

MagicBlock Ephemeral Rollups

To deliver fast, responsive gameplay without the latency of mainnet transactions, Dungeons & Moles uses MagicBlock Ephemeral Rollups. During a session, game state is delegated to an ephemeral rollup where transactions confirm in milliseconds. Once the session ends, the final state is settled back to Solana mainnet.

Note: Ephemeral rollups eliminate wallet popups during gameplay. Players sign once to start a session and never see another transaction prompt until the run is over.

Session-Based Architecture

When a player enters a run, they sign a single transaction that creates a session key. This session key is authorized to submit all in-game transactions (moves, item usage, POI interactions) automatically on the player's behalf. The result is:

Wallet-free gameplay— no transaction signing interruptions during a session.
Gas-less gameplay— session transactions are handled within the ephemeral rollup, so players do not pay individual gas fees for each move.

Seeded Maps & Fog of War

Maps are generated from deterministic seeds stored on-chain. Each run produces a unique tile layout, enemy placement, and POI distribution based on the seed. Fog of war hides unexplored tiles from the player.

Client & Platform

Mobile-first, landscape-only design optimized for handheld play.
React Native + Expo— a single codebase targeting iOS, Android, and Web.
Controller / gamepad support via D-pad input mapping (PSG1 compatible). Touch controls on mobile mirror the same layout.

On-Chain Programs

The game's logic is split across several Solana programs, each responsible for a distinct domain:

ProgramResponsibility
gameplay-stateCore game state, run lifecycle, turn execution
session-managerSession key creation, authorization, and cleanup
poi-systemPoint-of-interest logic (shops, forges, shrines)
map-generatorDeterministic map and tile generation from seeds
player-inventoryItem pool management, equip/unequip, NFT validation
player-profileCampaign progress, unlocks, skins, statistics

Shared Crates

Several Rust crates are shared across programs to keep logic consistent and avoid duplication:

CrateResponsibility
combat-systemTurn-based combat resolution, damage calculation, status effect processing
boss-systemBoss encounter logic, phase transitions, special attacks
field-enemiesField enemy definitions, tier scaling, stat tables, gold drops